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,
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
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:
|OS version||Image project||Image family||Built by||End of support||Release notes|
|COS 89 LTS||
||March 2023||milestone 89|
|COS 85 LTS||
||December 2021||milestone 85|
|COS 81 LTS||
||September 20211||milestone 81|
|COS 77 LTS||
||April 20211||milestone 77|
|OS version||Image project||Image family||Built by||Deprecation date||Release Notes|
|COS 73 LTS||
||June 2020||milestone 73|
|COS 69 LTS||
||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
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:
|Development||4 months||Active development during which the milestone receives major package upgrades, new features.
Released monthly or as needed on
|Stabilization||2 months||Features are frozen and the focus is on expanded testing, bug fixing and stabilizing the
Released as needed on
|Production||15 months||Active maintenance of milestone by addressing production issues and security fixes with
Released as needed on
|Deprecation||N/A||All images on the milestone are marked deprecated and the
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
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|
||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.|
||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.|
||This family follows our next major release in stabilization phase.||Use for continuous testing to validate new features and OS upgrades.|
||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.