Versioning scheme

Milestones and Build Numbers

Major versions of Container-Optimized OS images are identified using what we call milestones. Container-Optimized OS milestones are monotonically increasing integers. Each new milestone indicates the start of a new development cycle (a branch in our code) and may introduce new features and other major changes.

Over the lifetime of a Container-Optimized OS milestone, we may release several updates containing bug fixes, security fixes and other changes. These incremental releases on a milestone can be identified using the build number.

The milestone and build number of the Container-Optimized OS you are using can be identified by inspecting the /etc/os-release file. In this file, the value of the VERSION_ID (for example, VERSION_ID=81) represents the milestone and the value of the BUILD_ID field (for example, BUILD_ID=12871.1160.0) represents the build number. The milestone and build number are also present as part of the Container-Optimized OS image name. For example, image cos-81-12871-1160-0 has milestone 81 and build number 12871-1160-0.

Long Term Supported (LTS) milestones

Milestones that are intended for production use and supported for longer duration are labelled as LTS (for Long Term Supported). On Compute Engine, we use the image families feature to label and identify our LTS releases.

The following table provides a summary of Container-Optimized OS releases available on Compute Engine:

Active Milestones

OS version Image project Image family Built by Deprecation date Release notes
COS 85 LTS cos-cloud cos-85-lts Google December 2021 milestone 85
COS 81 LTS cos-cloud cos-81-lts Google June 2021 milestone 81
COS 77 LTS cos-cloud cos-77-lts Google December 2020 milestone 77

Past Milestones

OS version Image project Image family Built by Deprecation date Release Notes
COS 73 LTS cos-cloud cos-73-lts Google June 2020 milestone 73
COS 69 LTS cos-cloud cos-69-lts Google December 2019 milestone 69

There may be multiple active LTS milestones at any time. For example, the following command shows currently active LTS image families:

$ gcloud compute images list --no-standard-images --project=cos-cloud | grep lts
# NAME                      PROJECT    FAMILY      DEPRECATED  STATUS
cos-77-12371-1079-0         cos-cloud  cos-77-lts              READY
cos-81-12871-1200-0         cos-cloud  cos-81-lts              READY
cos-85-13310-1041-9         cos-cloud  cos-85-lts              READY

Lifecycle of an LTS milestone

A new Container-Optimized OS LTS milestone is introduced approximately every 6 months on its own image family named cos-[MILESTONE]-lts. Before being labeled as LTS, the milestone undergoes approximately 4 months of feature development and 2 months of extensive testing and stabiliztion.

The lifecycle of a Container-Optimized OS LTS milestone looks as follows:

Stage Duration Description
Development 4 months Active development during which the milestone receives major package upgrades, new features.
Released monthly or as needed on cos-dev family.
Stabilization 2 months Features are frozen and the focus is on expanded testing, bug fixing and stabilizing the release.
Released as needed on cos-beta family.
Production 15 months Active maintenance of milestone by addressing production issues and security fixes with priority.
Released as needed on cos-[MILESTONE]-lts family.
Deprecation N/A All images on the milestone are marked deprecated and the cos-[MILESTONE]-lts is removed. Users may still refer to the deprecated images, but will not receive any bug fixes or security updates.

Once promoted to the LTS family, the LTS milestone provides the following benefits:

  • A support duration of 15 months
  • Security fixes for the entire support duration
  • Fixes for any production issues
  • A dedicated release notes page listing every change going into the image.

For all of your production deployments, we recommend that you use an image from one of the LTS families.

After the LTS support duration is over for a LTS milestone, the corresponding image family will no longer receive any security or bug fixes. In addition, the corresponding cos-[MILESTONE]-lts image family will be marked as deprecated.

Please refer to the Support Policy to learn more about support commitments for these families.

Choosing the right Container-Optimized OS version

On Compute Engine, the image families for Container-Optimized OS can guide you in selecting the correct image for your intended purpose. We strongly recommend that you set up tiered testing alongside your production environment utilizing the convenience offered by the image family api.

Image family Description Suggested use
cos-[MILESTONE]-lts This family follows releases for a particular production-ready milestone. Images on this family receive only security and stability fixes. Suitable for running all production workloads. Start with the highest milestone to maximize support duration.
cos-stable This family follows our latest production-ready milestone. Images on this family receive all security and stability fixes. Every 6 months, the latest LTS milestone containing new features is also released on this family. Create one-off instances that you plan to configure and maintain manually.
cos-beta This family follows our next major release in stabilization phase. Use for continuous testing to validate new features and OS upgrades.
cos-dev This family follows our latest in-development release. Images on this family receive major changes and potentially unstable features. Use for experimentation and one-off testing.

A tiered testing setup like this should help to minimize issues when rolling out newer major versions of Container-Optimized OS images to your production environment.