OpsCanary
kubernetesupgradesPractitioner

Building a Self-Healing Kubernetes Upgrade Pipeline with Kairos

5 min read CNCF BlogAug 14, 2026Reviewed for accuracy
Share
PractitionerHands-on experience recommended

In the world of Kubernetes, upgrade failures can lead to significant downtime and operational headaches. A self-healing upgrade pipeline addresses this issue by automating the upgrade process while ensuring that any failures are quickly rectified. This is where Kairos shines, offering an immutable Linux distribution designed for seamless A/B partition upgrades and cosign-signed images. By implementing a self-healing pipeline, you can ensure that your cluster remains stable and resilient during upgrades.

The pipeline operates using six essential tools: Gitea for managing manifests, Renovate for monitoring image tags, Kyverno for policy enforcement, Cosign for image signature verification, ArgoCD for applying changes, and kairos-operator for executing upgrades. The process begins when Renovate watches for new tags on quay.io/kairos/hadron and opens a pull request (PR) to bump the image tag. Once the PR is merged, ArgoCD detects the drift and applies the new manifest. The kairos-operator then takes over, managing the upgrade process by cordoning nodes, pulling the new images, and handling reboots. You can configure the concurrency parameter to specify how many nodes to upgrade simultaneously, with the default set to one.

In practice, you need to be aware of some common pitfalls. For instance, the pipeline may appear broken if it’s only half-executed, which underscores the importance of a human review step in the process. Always keep an eye on the version you are upgrading to; for example, Hadron v0.4.0 is the target version in this setup. Understanding these nuances can save you from unnecessary headaches during upgrades.

Key takeaways

  • Implement a self-healing pipeline to automate Kubernetes upgrades and reduce downtime.
  • Use Renovate to monitor quay.io/kairos/hadron for new image tags and automate PR creation.
  • Leverage ArgoCD to detect drift and apply new manifests seamlessly.
  • Configure the concurrency parameter to control the number of nodes upgraded simultaneously.
  • Be vigilant about upgrade execution; half-executed pipelines can lead to confusion.

Why it matters

A self-healing upgrade pipeline minimizes the risk of downtime during Kubernetes upgrades, ensuring that your applications remain available and your infrastructure is resilient. This can significantly enhance operational efficiency and reliability.

Code examples

YAML
1--- a/upgrades/mgmt/hadron-upgrade.yaml
2+++ b/upgrades/mgmt/hadron-upgrade.yaml
3@@ -11,7 +11,7 @@ metadata:
4-  name: hadron-mgmt-v0-3-0
5+  name: hadron-mgmt-v0-4-0
6 spec:
7-  image: quay.io/kairos/hadron:v0.3.0-standard-amd64-generic-v4.1.1-k3s-v1.35.5-k3s1
8+  image: quay.io/kairos/hadron:v0.4.0-standard-amd64-generic-v4.1.2-k3s-v1.35.5-k3s1

When NOT to use this

The official docs don't call out specific anti-patterns here. Use your judgment based on your scale and requirements.

Want the complete reference?

Read official docs

Test what you just learned

Quiz questions written from this article

Take the quiz →
Linux FoundationSponsor

Industry-standard certifications built by the people behind Linux and Kubernetes. Earn the CKA — the gold standard Kubernetes administrator cert. OpsCanary readers get 30% off year-round with code OPSCANARY3.

Get CKA certified →

Get the daily digest

One email. 5 articles. Every morning.

No spam. Unsubscribe anytime.