Release notes¶
COS 3.0 and COS Lite 3.0¶
Released July 2026, long-term support (LTS).
These release notes cover both COS 3.0 and COS Lite 3.0. COS and COS Lite are distinct products with separate Terraform modules and different component sets; sections below apply to both unless noted otherwise, via a Scope column or an Applies to note.
Both tracks are LTS releases. They receive security updates and critical bug fixes for the same support window as Ubuntu 26.04 LTS. If you have COS 2 or COS Lite 2 installed, plan to upgrade before July 2026. See the release policy for the full support window and cadence.
Note
COS 3.0 is a product version, not a single Charmhub track shared by every component. Some charms use 3.0 as their track, but most retain their own versioning; see Component versions for the exact track each charm uses in this release.
Compatibility. COS 3.0 and COS Lite 3.0 require Juju v3.6+. See system requirements for the full compatibility matrix.
Upgrade
What’s new¶
Reproducibility and lifecycle¶
Strict reproducibility¶
Applies to: cos, cos-lite.
Previously only charm revisions could be pinned. In COS 3.0 you can also constrain the Terraform module version, limiting the deployment variance of the Terraform and Juju layers, so that a re-deploy converges on the same result. See Configure strict reproducibility.
Smooth cross-track upgrades¶
Applies to: cos, cos-lite.
Upgrading from track 2 previously required a Juju admin to manually refresh every component. In COS 3.0 the upgrade path is product-managed via Terraform lifecycle definitions, so a single terraform apply moves the deployment to the new track. See How to upgrade.
Deployment topology¶
Module-managed Juju model¶
Applies to: cos, cos-lite.
model_uuid is no longer required as input. By default the module manages its own Juju model; pass model = { uuid = "<uuid>" } to target an existing one. See Configure the Juju model.
Granular Traefik ingress¶
Applies to: cos, cos-lite.
Previously all components were ingressed unconditionally. You can now select which components are exposed, or opt out of Traefik entirely. See Configure granular ingress.
Configurable Grafana database¶
Applies to: cos, cos-lite.
Grafana was previously limited to a single unit backed by local Juju storage. Supplying a postgresql_offer_url now backs Grafana with an external PostgreSQL, enabling multi-unit high availability. See Configure the Grafana database.
Telemetry pipelines¶
OpenTelemetry Collector pinned to v0.130¶
Applies to: cos.
The opentelemetry-collector charm workload is pinned to v0.130 because upstream opentelemetry-collector-contrib dropped the Loki exporter in v0.131.0, directing users to the OTLP exporters instead.
The logging integration relies on lokiexporter to send logs to Loki push API endpoints. Loki only recently gained an upstream OTLP endpoint, and the migration to an OTLP-first ecosystem began in 26.04. The plan is:
26.10: OTLP support ecosystem-wide.
27.04: the Loki Push API feature (
loggingendpoint) is dropped and theopentelemetry-collectorcharms are unpinned fromv0.130.
Breaking changes¶
The following changes apply when upgrading from COS 2 or COS Lite 2.
Terraform inputs¶
Change |
Scope |
Details |
|---|---|---|
|
|
Replaced by a new |
|
|
No longer configurable per-component; controlled by |
|
|
No longer configurable per-component; controlled by |
|
|
No longer configurable per-component; controlled by |
|
|
Replaced by the |
|
|
Single |
|
|
Split into 3 per-role storage directives. |
|
|
Split into 6 per-role storage directives. |
Terraform outputs¶
Change |
Scope |
Details |
|---|---|---|
|
|
Now |
|
|
Now |
Peripheral charms¶
Promtail is no longer maintained by Grafana Labs. LogProxyConsumer relied on Promtail to scrape logs from files and forward them to Loki. Since March 2026, Promtail is no longer under active development.
Starting with COS 3.0, use Pebble log forwarding from Kubernetes workloads. The LogForwarder object in the loki_push_api charm library automates the Pebble setup. This requires the workload to emit logs to stdout (standard practice in Kubernetes).
Non-breaking additions¶
Terraform inputs¶
Change |
Scope |
Details |
|---|---|---|
|
|
New structured object to toggle ingress per component. |
|
|
New structured object to configure the Juju model. |
Deprecations¶
Charmed Grafana Agent: end-of-life July 2026, upstream vendor announced end-of-life. Plan to migrate to charmed OpenTelemetry Collector.
Loki Push API in
opentelemetry-collector: theloggingendpoint is planned for removal in the 27.04 release. Migrate telemetry pipelines to OTLP as OTLP support lands ecosystem-wide in 26.10.
Component versions¶
For the full list of charms bundled in this release, along with each charm’s LTS status and Charmhub track, see COS components.