This episode covers the latest Cilium releases: 1.19, which brings stable Multi-Pool IPAM and ztunnel transparent encryption, and 1.20 with the stable MCS API and dataplane refinements. You will also learn how to safely upgrade between minor versions.

Cilium moves fast. The two releases that just came out — 1.19 in February 2026 and 1.20 in July 2026 — bring a number of features directly relevant to the earlier episodes of this series. Episode 20 summarizes what changed and why it matters.
More than just a feature list, this episode also covers how to upgrade safely between minor versions. Versions 1.19.6 and 1.18.12 are still on the maintenance track, but older branches are already EOL — so understanding the upgrade path is part of day-to-day operations.
Before diving into the feature list, a reminder about version numbering. Cilium uses time-based releases with semver: minor releases appear periodically, and each release brings new features along with fixes. Understanding this rhythm helps you plan upgrades — for example, waiting one release after a big one if you want to avoid early bugs.
Release 1.19 marks an important milestone: Multi-Pool IPAM became stable. The feature we learned in episode 9 — allocating IPs from several different pools at the same time — is now guaranteed stable for production, complete with the mature CiliumPodIPPool CRD.
It is also worth remembering that 1.19 is the foundation for 1.20: many features stabilized in 1.19 (such as Multi-Pool IPAM) became the stepping stone for what came in 1.20. Following releases in sequence makes version transitions far smoother than jumping far ahead.
Other 1.19 improvements worth noting:
Besides those three items, 1.19 brings many small improvements that add up operationally: reliability fixes for the agent on busy nodes, memory optimizations for large clusters, and improvements to the Cilium CLI user experience. Small features like these rarely make headlines, but they are often the reason teams decide to upgrade on time.
Release 1.20 is a big leap for multi-cluster: the MCS API (Multi-Cluster Services) became stable. The feature we discussed in episode 17 — ServiceExport and ServiceImport — is now guaranteed stable, making ClusterMesh a truly production-ready multi-cluster solution.
One important detail of 1.20 for multi-cluster teams: the stability of the MCS API means ServiceExport and ServiceImport no longer require experimental features. This significantly lowers the barrier to adopting ClusterMesh — a major reason many multi-region architectures target Cilium 1.20 as their baseline.
Other 1.20 updates:
For version context, here is the support map at the time this series was written:
1.20.0 - latest stable release (Jul 2026)
1.19.6 - maintenance
1.18.12 - maintenance
< 1.18 - EOL1.20.0 is the most recommended version for new installations; you should be using this number in the install command from episode 3.
A healthy general policy: install the latest version for new clusters, and upgrade older versions one minor at a time. Avoid jumping three minors ahead at once, because each jump carries configuration changes that can pile up.
For production, there is real value in using a version that has been "settling" for a few weeks: early bugs in a new release are usually found and fixed by the community. A critical cluster should not be the testing ground for a just-released version.
Upgrading between minor versions is safe in principle, as long as you follow the rules: never jump more than one minor at a time, and always verify after the upgrade. For a cluster installed via Helm:
helm upgrade cilium cilium/cilium \
--namespace kube-system \
--version 1.20.0
cilium connectivity testhelm upgrade cilium cilium/cilium --version 1.20.0 bumps the chart version, then cilium connectivity test makes sure all traffic paths stay healthy. If the cluster was installed via the Cilium CLI, the equivalent command is:
cilium upgrade --version v1.20.0cilium upgrade --version v1.20.0 performs the upgrade with the existing configuration. Before upgrading in production, read the official Upgrade Guide for the target version and check the release notes for breaking changes — especially for features that changed status from alpha to stable.
Before the upgrade, take a configuration snapshot: helm get values cilium -n kube-system > before-upgrade.yaml. Keep this file as a rollback reference. If the upgrade causes a problem you cannot solve, you can return to the previous values while comparing the configuration differences before and after.
During the upgrade, note that Cilium agents are upgraded in a rolling fashion by the DaemonSet update mechanism. Network traffic does not stop completely, but a few nodes will run mixed versions for a short period. This is normal, as long as the old and new versions are compatible — which is guaranteed if you only jump one minor.
A good upgrade starts with planning, not with a command. Before touching a production cluster, do the following:
helm repo update
helm search repo cilium/cilium | head -5
cilium version
cilium connectivity testhelm repo update refreshes the Helm repository index. helm search repo cilium/cilium | head -5 shows the available versions along with their chart numbers. cilium version confirms the current version is recorded, and cilium connectivity test proves the baseline before the upgrade is healthy — important because after the upgrade, comparing against this baseline is what indicates whether there is a regression.
Then perform the upgrade across environments step by step:
helm upgrade cilium cilium/cilium --namespace kube-system --version 1.20.0 --context dev
cilium connectivity test --context dev
helm upgrade cilium cilium/cilium --namespace kube-system --version 1.20.0 --context staging
cilium connectivity test --context staginghelm upgrade cilium cilium/cilium --namespace kube-system --version 1.20.0 is repeated per environment, from dev to staging, with cilium connectivity test between each step. This pattern ensures problems are detected as early as possible in environments that do not affect end users.
An additional practice that is often overlooked: schedule a maintenance window outside peak hours, and inform the application teams before the upgrade. Even though Cilium is designed for smooth upgrades, some applications with very long-lived connections can be briefly disconnected during the agent's rolling restart. Good communication turns an upgrade from an "incident waiting to happen" into a "planned routine activity".
Warning
Note that branches older than 1.18 are already EOL, meaning they no longer receive security patches. Clusters still running those versions must be upgraded soon — this is why a routine upgrade path (for example, every two minors) is safer than piling up large upgrades.
Key takeaways:
helm upgrade or cilium upgrade.cilium connectivity test and check the official Upgrade Guide.In the next episode 21, we will cover production-ready architecture — IPAM planning, kube-proxy replacement, encryption, observability with Hubble and Prometheus, upgrade strategy, a CI/CD pipeline with connectivity tests, GitOps policies, node sizing, and an incident runbook. This consolidates all previous lessons into a blueprint for production.