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 x86 image family Arm image family Built by End of support Release notes
COS 121 DEV cos-cloud cos-dev cos-arm64-dev Google TBD dev
COS 117 LTS cos-cloud cos-117-lts cos-arm64-117-lts Google Sept 2026 milestone 117
COS 113 LTS cos-cloud cos-113-lts cos-arm64-113-lts Google March 2026 milestone 113
COS 109 LTS cos-cloud cos-109-lts cos-arm64-109-lts Google Sept 2025 milestone 109
COS 105 LTS cos-cloud cos-105-lts cos-arm64-105-lts Google March 2025 milestone 105

Deprecated Milestones

OS version Image project x86 image family Arm image family Built by Deprecation date Release notes
COS 101 LTS cos-cloud cos-101-lts N/A Google Oct 2024 milestone 101
COS 97 LTS cos-cloud cos-97-lts N/A Google April 2024 milestone 97
COS 93 LTS cos-cloud cos-93-lts N/A Google October 2023 milestone 93
COS 89 LTS cos-cloud cos-89-lts N/A Google March 2023 milestone 89
COS 85 LTS cos-cloud cos-85-lts N/A Google September 2022 milestone 85
COS 81 LTS cos-cloud cos-81-lts N/A Google September 20211 milestone 81
COS 77 LTS cos-cloud cos-77-lts N/A Google April 20211 milestone 77
COS 73 LTS cos-cloud cos-73-lts N/A Google June 2020 milestone 73
COS 69 LTS cos-cloud cos-69-lts N/A 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
cos-101-17162-40-16               cos-cloud  cos-101-lts                    READY
cos-89-16108-766-3                cos-cloud  cos-89-lts                     READY
cos-93-16623-295-5                cos-cloud  cos-93-lts                     READY
cos-97-16919-189-3                cos-cloud  cos-97-lts                     READY
cos-arm64-101-17162-40-16         cos-cloud  cos-arm64-101-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 (x86) and cos-arm64-[MILESTONE]-lts (Arm). Before being labeled as LTS, the milestone undergoes approximately 6 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 6 months Active development during which the milestone receives major package upgrades, new features.
Released monthly or as needed on cos-dev and cos-arm64-dev families.
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 and cos-arm64-beta families.
Production 2 years Active maintenance of milestone by addressing production issues and security fixes with priority.
Released as needed on cos-[MILESTONE]-lts and cos-arm64-[MILESTONE]-lts families.
Deprecation N/A All images on the milestone are marked deprecated and the cos-[MILESTONE]-lts and cos-arm64-[MILESTONE]-lts are 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 and cos-arm64-[MILESTONE]-lts image families 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.

x86 image family Arm image family Description Suggested use
cos-[MILESTONE]-lts cos-arm64-[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 cos-arm64-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 cos-arm64-beta This family follows our next major release in stabilization phase. Use for continuous testing to validate new features and OS upgrades.
cos-dev cos-arm64-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.