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 End of support Release notes
COS 93 LTS cos-cloud cos-93-lts Google October 2023 milestone 93
COS 89 LTS cos-cloud cos-89-lts Google March 2023 milestone 89
COS 85 LTS cos-cloud cos-85-lts Google December 2021 milestone 85
COS 81 LTS cos-cloud cos-81-lts Google September 20211 milestone 81

Deprecated Milestones

OS version Image project Image family Built by Deprecation date Release notes
COS 77 LTS cos-cloud cos-77-lts Google April 20211 milestone 77
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
  1. COS 77 LTS and COS 81 LTS, when bundled with GKE, have slightly longer support durations. GKE users should consult the GKE release schedule for details.

Development Release Notes

For release notes related to the milestone under development, see the Development Release Notes page.
For release notes related to cos-dev before M93, see the Legacy Release Notes page.

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 stabilization.

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 2 years 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 2 years
  • 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.

LTS Refresh releases

On-demand releases are made on LTS milestones in response to high priority bug and security fixes. Every three months, a release is made that includes medium and low priority bug and security fixes. We call these releases "LTS Refresh" releases. These releases are made less frequently to help users manage update risks.

The release notes page for the milestone will indicate which releases are LTS Refresh releases. Users should take extra care when rolling out these releases, because medium and low priority bug and security fixes might introduce regressions.

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.