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 |
TBD | dev | |
COS 117 LTS | cos-cloud |
cos-117-lts |
cos-arm64-117-lts |
Sept 2026 | milestone 117 | |
COS 113 LTS | cos-cloud |
cos-113-lts |
cos-arm64-113-lts |
March 2026 | milestone 113 | |
COS 109 LTS | cos-cloud |
cos-109-lts |
cos-arm64-109-lts |
Sept 2025 | milestone 109 | |
COS 105 LTS | cos-cloud |
cos-105-lts |
cos-arm64-105-lts |
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 |
Oct 2024 | milestone 101 | |
COS 97 LTS | cos-cloud |
cos-97-lts |
N/A |
April 2024 | milestone 97 | |
COS 93 LTS | cos-cloud |
cos-93-lts |
N/A |
October 2023 | milestone 93 | |
COS 89 LTS | cos-cloud |
cos-89-lts |
N/A |
March 2023 | milestone 89 | |
COS 85 LTS | cos-cloud |
cos-85-lts |
N/A |
September 2022 | milestone 85 | |
COS 81 LTS | cos-cloud |
cos-81-lts |
N/A |
September 20211 | milestone 81 | |
COS 77 LTS | cos-cloud |
cos-77-lts |
N/A |
April 20211 | milestone 77 | |
COS 73 LTS | cos-cloud |
cos-73-lts |
N/A |
June 2020 | milestone 73 | |
COS 69 LTS | cos-cloud |
cos-69-lts |
N/A |
December 2019 | milestone 69 |
-
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
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.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-10-30 UTC.