Coverage

150 published upgrade pairs across 28 of 30 add-ons. Each row says how it was verified.

Human-reviewed
A person checked the runbook against its sources and signed it.
Claims tested
A suite written for this add-on tested specific claims from the runbook on a live kubeadm cluster.
Upgrade path verified
helm upgrade from the old chart version to the new one converged on a self-managed kubeadm cluster, not EKS, and the health checks passed after the install and after the upgrade: no add-on pod in a crash or image-pull state, and for network plugins every node Ready with pod-to-pod traffic flowing. It shows the chart upgrade completes with test-harness values; it does not test the runbook's specific claims or your own values.

Cluster runs use kubeadm clusters on EC2, not EKS. EKS-specific guidance in a runbook comes from its cited sources.

Ingress NGINX Controller

ingress

UpgradeSeverityEvidence
1.9 → 1.10breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.9: HELM_CONVERGED
  • @1.9: PODS_HEALTHY(1)
  • @1.10: HELM_CONVERGED
  • @1.10: PODS_HEALTHY(2)
1.10 → 1.11breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.10: HELM_CONVERGED
  • @1.10: PODS_HEALTHY(1)
  • @1.11: HELM_CONVERGED
  • @1.11: PODS_HEALTHY(2)
1.12 → 1.13breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.12: HELM_CONVERGED
  • @1.12: PODS_HEALTHY(1)
  • @1.13: HELM_CONVERGED
  • @1.13: PODS_HEALTHY(2)
1.13 → 1.14breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.13: HELM_CONVERGED
  • @1.13: PODS_HEALTHY(1)
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(2)
1.14 → 1.15breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(1)
  • @1.15: HELM_CONVERGED
  • @1.15: PODS_HEALTHY(2)

cert-manager

certificates

UpgradeSeverityEvidence
1.16 → 1.17cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.16: HELM_CONVERGED
  • @1.16: PODS_HEALTHY(3)
  • @1.17: HELM_CONVERGED
  • @1.17: PODS_HEALTHY(3)
1.17 → 1.18breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.17: HELM_CONVERGED
  • @1.17: PODS_HEALTHY(3)
  • @1.18: HELM_CONVERGED
  • @1.18: PODS_HEALTHY(3)
1.18 → 1.19breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.18: HELM_CONVERGED
  • @1.18: PODS_HEALTHY(3)
  • @1.19: HELM_CONVERGED
  • @1.19: PODS_HEALTHY(3)
1.19 → 1.20breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.19: HELM_CONVERGED
  • @1.19: PODS_HEALTHY(3)
  • @1.20: HELM_CONVERGED
  • @1.20: PODS_HEALTHY(3)
1.20 → 1.21breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.20: HELM_CONVERGED
  • @1.20: PODS_HEALTHY(3)
  • @1.21: HELM_CONVERGED
  • @1.21: PODS_HEALTHY(3)

ExternalDNS

dns

UpgradeSeverityEvidence
0.17 → 0.18breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.17: HELM_CONVERGED
  • @0.17: PODS_HEALTHY(1)
  • @0.18: HELM_CONVERGED
  • @0.18: PODS_HEALTHY(1)
0.18 → 0.19breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.18: HELM_CONVERGED
  • @0.18: PODS_HEALTHY(1)
  • @0.19: HELM_CONVERGED
  • @0.19: PODS_HEALTHY(1)
0.19 → 0.20cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @0.19: HELM_CONVERGED
  • @0.19: PODS_HEALTHY(1)
  • @0.20: HELM_CONVERGED
  • @0.20: PODS_HEALTHY(1)
0.20 → 0.21breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @0.20: HELM_CONVERGED
  • @0.20: PODS_HEALTHY(1)
  • @0.21: HELM_CONVERGED
  • @0.21: PODS_HEALTHY(1)
0.21 → 0.22criticalUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.21: HELM_CONVERGED
  • @0.21: PODS_HEALTHY(1)
  • @0.22: HELM_CONVERGED
  • @0.22: PODS_HEALTHY(1)
0.22 → 0.23breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.22: HELM_CONVERGED
  • @0.22: PODS_HEALTHY(1)
  • @0.23: HELM_CONVERGED
  • @0.23: PODS_HEALTHY(1)

Cluster Autoscaler

autoscaling

No published runbooks yet.

Karpenter

autoscaling

UpgradeSeverityEvidence
1.8 → 1.9cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.8: HELM_CONVERGED
  • @1.8: PODS_HEALTHY(1)
  • @1.8: IRSA_INJECTED
  • @1.9: HELM_CONVERGED
  • @1.9: PODS_HEALTHY(1)
  • @1.9: IRSA_INJECTED
1.9 → 1.10cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.9: HELM_CONVERGED
  • @1.9: PODS_HEALTHY(1)
  • @1.9: IRSA_INJECTED
  • @1.10: HELM_CONVERGED
  • @1.10: PODS_HEALTHY(1)
  • @1.10: IRSA_INJECTED
1.10 → 1.11safeUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.10: HELM_CONVERGED
  • @1.10: PODS_HEALTHY(1)
  • @1.10: IRSA_INJECTED
  • @1.11: HELM_CONVERGED
  • @1.11: PODS_HEALTHY(1)
  • @1.11: IRSA_INJECTED
1.11 → 1.12breakingUpgrade path verifiedrun 2026-10-11
6 observations
  • @1.11: HELM_CONVERGED
  • @1.11: PODS_HEALTHY(1)
  • @1.11: IRSA_INJECTED
  • @1.12: HELM_CONVERGED
  • @1.12: PODS_HEALTHY(1)
  • @1.12: IRSA_INJECTED
1.12 → 1.13cautionUpgrade path verifiedrun 2026-10-10
6 observations
  • @1.12: HELM_CONVERGED
  • @1.12: PODS_HEALTHY(1)
  • @1.12: IRSA_INJECTED
  • @1.13: HELM_CONVERGED
  • @1.13: PODS_HEALTHY(1)
  • @1.13: IRSA_INJECTED
1.13 → 1.14cautionUpgrade path verifiedrun 2026-10-10
6 observations
  • @1.13: HELM_CONVERGED
  • @1.13: PODS_HEALTHY(1)
  • @1.13: IRSA_INJECTED
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(1)
  • @1.14: IRSA_INJECTED
1.14 → 1.15breakingUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(1)
  • @1.14: IRSA_INJECTED
  • @1.15: HELM_CONVERGED
  • @1.15: PODS_HEALTHY(1)
  • @1.15: IRSA_INJECTED

Metrics Server

observability

UpgradeSeverityEvidence
0.5 → 0.6breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.5: HELM_CONVERGED
  • @0.5: PODS_HEALTHY(1)
  • @0.6: HELM_CONVERGED
  • @0.6: PODS_HEALTHY(1)
0.6 → 0.7breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.6: HELM_CONVERGED
  • @0.6: PODS_HEALTHY(1)
  • @0.7: HELM_CONVERGED
  • @0.7: PODS_HEALTHY(1)
0.7 → 0.8breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @0.7: HELM_CONVERGED
  • @0.7: PODS_HEALTHY(1)
  • @0.8: HELM_CONVERGED
  • @0.8: PODS_HEALTHY(1)
0.8 → 0.9breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @0.8: HELM_CONVERGED
  • @0.8: PODS_HEALTHY(1)
  • @0.9: HELM_CONVERGED
  • @0.9: PODS_HEALTHY(1)

AWS Load Balancer Controller

ingress

UpgradeSeverityEvidence
3.0 → 3.1cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @3.0: HELM_CONVERGED
  • @3.0: PODS_HEALTHY(2)
  • @3.0: IRSA_INJECTED
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(2)
  • @3.1: IRSA_INJECTED
3.1 → 3.2breakingUpgrade path verifiedrun 2026-10-21
6 observations
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(2)
  • @3.1: IRSA_INJECTED
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(2)
  • @3.2: IRSA_INJECTED
3.2 → 3.3cautionUpgrade path verifiedrun 2026-10-10
6 observations
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(2)
  • @3.2: IRSA_INJECTED
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(2)
  • @3.3: IRSA_INJECTED
3.3 → 3.4breakingUpgrade path verifiedrun 2026-10-10
6 observations
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(2)
  • @3.3: IRSA_INJECTED
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(2)
  • @3.4: IRSA_INJECTED
3.4 → 3.5breakingUpgrade path verifiedrun 2026-10-17
6 observations
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(2)
  • @3.4: IRSA_INJECTED
  • @3.5: HELM_CONVERGED
  • @3.5: PODS_HEALTHY(2)
  • @3.5: IRSA_INJECTED
3.5 → 3.6cautionUpgrade path verifiedrun 2026-10-21
6 observations
  • @3.5: HELM_CONVERGED
  • @3.5: PODS_HEALTHY(2)
  • @3.5: IRSA_INJECTED
  • @3.6: HELM_CONVERGED
  • @3.6: PODS_HEALTHY(2)
  • @3.6: IRSA_INJECTED

Amazon VPC CNI

networking

No published runbooks yet.

AWS EBS CSI Driver

storage

UpgradeSeverityEvidence
1.61 → 1.62breakingUpgrade path verifiedrun 2026-10-10
6 observations
  • @1.61: HELM_CONVERGED
  • @1.61: PODS_HEALTHY(5)
  • @1.61: IRSA_INJECTED
  • @1.62: HELM_CONVERGED
  • @1.62: PODS_HEALTHY(5)
  • @1.62: IRSA_INJECTED
1.62 → 1.63cautionUpgrade path verifiedrun 2026-10-10
6 observations
  • @1.62: HELM_CONVERGED
  • @1.62: PODS_HEALTHY(5)
  • @1.62: IRSA_INJECTED
  • @1.63: HELM_CONVERGED
  • @1.63: PODS_HEALTHY(5)
  • @1.63: IRSA_INJECTED
1.63 → 1.64safeUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.63: HELM_CONVERGED
  • @1.63: PODS_HEALTHY(5)
  • @1.63: IRSA_INJECTED
  • @1.64: HELM_CONVERGED
  • @1.64: PODS_HEALTHY(5)
  • @1.64: IRSA_INJECTED
1.64 → 1.65cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.64: HELM_CONVERGED
  • @1.64: PODS_HEALTHY(5)
  • @1.64: IRSA_INJECTED
  • @1.65: HELM_CONVERGED
  • @1.65: PODS_HEALTHY(5)
  • @1.65: IRSA_INJECTED
1.65 → 1.66cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.65: HELM_CONVERGED
  • @1.65: PODS_HEALTHY(5)
  • @1.65: IRSA_INJECTED
  • @1.66: HELM_CONVERGED
  • @1.66: PODS_HEALTHY(5)
  • @1.66: IRSA_INJECTED
1.66 → 1.67breakingUpgrade path verifiedrun 2026-10-17
6 observations
  • @1.66: HELM_CONVERGED
  • @1.66: PODS_HEALTHY(5)
  • @1.66: IRSA_INJECTED
  • @1.67: HELM_CONVERGED
  • @1.67: PODS_HEALTHY(5)
  • @1.67: IRSA_INJECTED

CoreDNS

dns

UpgradeSeverityEvidence
1.8 → 1.9breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.8: HELM_CONVERGED
  • @1.8: PODS_HEALTHY(1)
  • @1.9: HELM_CONVERGED
  • @1.9: PODS_HEALTHY(2)
1.9 → 1.10cautionUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.9: HELM_CONVERGED
  • @1.9: PODS_HEALTHY(1)
  • @1.10: HELM_CONVERGED
  • @1.10: PODS_HEALTHY(2)
1.11 → 1.12breakingClaims testedrun 2026-10-23
2 observations

coredns suite: Checks how each version treats the forward plugin's failover option.

  • [coredns] failover-option @1.11: OPTION_REJECTED
  • [coredns] failover-option @1.12: OPTION_REJECTED
1.12 → 1.13cautionClaims testedrun 2026-10-23
2 observations

coredns suite: Checks how each version treats the forward plugin's failover option.

  • [coredns] failover-option @1.12: OPTION_REJECTED
  • [coredns] failover-option @1.13: FAILOVER_OK
1.13 → 1.14breakingClaims testedrun 2026-10-23
2 observations

coredns suite: Checks how each version treats the forward plugin's failover option.

  • [coredns] failover-option @1.13: FAILOVER_OK
  • [coredns] failover-option @1.14: FAILOVER_OK

Argo CD

gitops

UpgradeSeverityEvidence
2.14 → 3.0breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.14: HELM_CONVERGED
  • @2.14: PODS_HEALTHY(8)
  • @3.0: HELM_CONVERGED
  • @3.0: PODS_HEALTHY(8)
3.0 → 3.1breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.0: HELM_CONVERGED
  • @3.0: PODS_HEALTHY(8)
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(8)
3.1 → 3.2breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(8)
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(8)
3.2 → 3.3breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(8)
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(8)
3.3 → 3.4breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(8)
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(8)
3.4 → 3.5breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(8)
  • @3.5: HELM_CONVERGED
  • @3.5: PODS_HEALTHY(8)

External Secrets Operator

secrets

UpgradeSeverityEvidence
2.7 → 2.8breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @2.7: HELM_CONVERGED
  • @2.7: PODS_HEALTHY(3)
  • @2.8: HELM_CONVERGED
  • @2.8: PODS_HEALTHY(3)
2.8 → 2.9cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.8: HELM_CONVERGED
  • @2.8: PODS_HEALTHY(3)
  • @2.9: HELM_CONVERGED
  • @2.9: PODS_HEALTHY(3)
2.9 → 2.10breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.9: HELM_CONVERGED
  • @2.9: PODS_HEALTHY(3)
  • @2.10: HELM_CONVERGED
  • @2.10: PODS_HEALTHY(3)
2.10 → 2.11cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.10: HELM_CONVERGED
  • @2.10: PODS_HEALTHY(3)
  • @2.11: HELM_CONVERGED
  • @2.11: PODS_HEALTHY(3)
2.11 → 2.12cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.11: HELM_CONVERGED
  • @2.11: PODS_HEALTHY(3)
  • @2.12: HELM_CONVERGED
  • @2.12: PODS_HEALTHY(3)
2.12 → 2.13cautionUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.12: HELM_CONVERGED
  • @2.12: PODS_HEALTHY(3)
  • @2.13: HELM_CONVERGED
  • @2.13: PODS_HEALTHY(3)

AWS EFS CSI Driver

storage

UpgradeSeverityEvidence
2.3 → 3.0breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.3: HELM_CONVERGED
  • @2.3: PODS_HEALTHY(4)
  • @3.0: HELM_CONVERGED
  • @3.0: PODS_HEALTHY(4)
3.0 → 3.1cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.0: HELM_CONVERGED
  • @3.0: PODS_HEALTHY(4)
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(4)
3.1 → 3.2safeUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(4)
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(4)
3.2 → 3.3cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(5)
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(6)
3.3 → 3.4cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(5)
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(5)
3.4 → 3.5cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(4)
  • @3.5: HELM_CONVERGED
  • @3.5: PODS_HEALTHY(4)

Prometheus Operator

observability

UpgradeSeverityEvidence
0.88 → 0.89cautionUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.88: HELM_CONVERGED
  • @0.88: PODS_HEALTHY(8)
  • @0.89: HELM_CONVERGED
  • @0.89: PODS_HEALTHY(8)
0.89 → 0.90cautionUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.89: HELM_CONVERGED
  • @0.89: PODS_HEALTHY(8)
  • @0.90: HELM_CONVERGED
  • @0.90: PODS_HEALTHY(8)
0.90 → 0.91breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.90: HELM_CONVERGED
  • @0.90: PODS_HEALTHY(8)
  • @0.91: HELM_CONVERGED
  • @0.91: PODS_HEALTHY(8)
0.91 → 0.92breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @0.91: HELM_CONVERGED
  • @0.91: PODS_HEALTHY(8)
  • @0.92: HELM_CONVERGED
  • @0.92: PODS_HEALTHY(8)
0.92 → 0.93breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.92: HELM_CONVERGED
  • @0.92: PODS_HEALTHY(8)
  • @0.93: HELM_CONVERGED
  • @0.93: PODS_HEALTHY(8)
0.93 → 0.94breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.93: HELM_CONVERGED
  • @0.93: PODS_HEALTHY(8)
  • @0.94: HELM_CONVERGED
  • @0.94: PODS_HEALTHY(8)

Prometheus

observability

UpgradeSeverityEvidence
3.9 → 3.10cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.9: HELM_CONVERGED
  • @3.9: PODS_HEALTHY(7)
  • @3.10: HELM_CONVERGED
  • @3.10: PODS_HEALTHY(7)
3.10 → 3.11breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.10: HELM_CONVERGED
  • @3.10: PODS_HEALTHY(7)
  • @3.11: HELM_CONVERGED
  • @3.11: PODS_HEALTHY(7)
3.11 → 3.12cautionClaims testedrun 2026-10-10
2 observations

prometheus suite: Downgrades and replays the write-ahead log with the st-storage flag on and off; with it on, data loss is the expected result.

  • [prometheus] st-storage=ON 3.12->3.11 WAL replay: REPLAY_DATA_LOSS
  • [prometheus] st-storage=OFF 3.12->3.11 WAL replay: REPLAY_CLEAN
3.12 → 3.13cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.12: HELM_CONVERGED
  • @3.12: PODS_HEALTHY(7)
  • @3.13: HELM_CONVERGED
  • @3.13: PODS_HEALTHY(7)
3.13 → 3.14cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.13: HELM_CONVERGED
  • @3.13: PODS_HEALTHY(7)
  • @3.14: HELM_CONVERGED
  • @3.14: PODS_HEALTHY(7)
3.14 → 3.15cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.14: HELM_CONVERGED
  • @3.14: PODS_HEALTHY(7)
  • @3.15: HELM_CONVERGED
  • @3.15: PODS_HEALTHY(7)

kube-state-metrics

observability

UpgradeSeverityEvidence
2.14 → 2.15cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.14: HELM_CONVERGED
  • @2.14: PODS_HEALTHY(1)
  • @2.15: HELM_CONVERGED
  • @2.15: PODS_HEALTHY(1)
2.15 → 2.16cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.15: HELM_CONVERGED
  • @2.15: PODS_HEALTHY(1)
  • @2.16: HELM_CONVERGED
  • @2.16: PODS_HEALTHY(1)
2.16 → 2.17breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @2.16: HELM_CONVERGED
  • @2.16: PODS_HEALTHY(1)
  • @2.17: HELM_CONVERGED
  • @2.17: PODS_HEALTHY(1)
2.17 → 2.18breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @2.17: HELM_CONVERGED
  • @2.17: PODS_HEALTHY(1)
  • @2.18: HELM_CONVERGED
  • @2.18: PODS_HEALTHY(1)
2.18 → 2.19breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @2.18: HELM_CONVERGED
  • @2.18: PODS_HEALTHY(1)
  • @2.19: HELM_CONVERGED
  • @2.19: PODS_HEALTHY(1)

Grafana

observability

UpgradeSeverityEvidence
12.4 → 13.0breakingClaims testedrun 2026-10-17
6 observations

grafana suite: Seeds dashboards, then upgrades three releases: plain emptyDir (the control, expected to lose them), emptyDir moved to persistence by the runbook procedure, and a snapshotted PVC.

Some suites run a control arm built to fail, such as grafana's plain emptyDir upgrade (ARM=ctl). A DATA_LOST line on that arm is the expected result; it is what makes the other arms meaningful.

  • [grafana] ARM=emp STAGE=restore-on-12.4 RESULT=DATA_INTACT present=6/6
  • [grafana] ARM=ctl RESULT=DATA_LOST present=0/6 on 13.0.2
  • [grafana] ARM=emp RESULT=DATA_INTACT present=6/6 on 13.0.2
  • [grafana] ARM=pvc replicas after upgrade: REPLICAS_RESTORED
  • [grafana] ARM=pvc RESULT=DATA_INTACT present=6/6 on 13.0.2
  • [grafana] ARM=pvc snapshot: SNAPSHOT_RESTORABLE
13.0 → 13.1breakingClaims testedrun 2026-10-17
6 observations

grafana suite: Seeds dashboards, then upgrades three releases: plain emptyDir (the control, expected to lose them), emptyDir moved to persistence by the runbook procedure, and a snapshotted PVC.

Some suites run a control arm built to fail, such as grafana's plain emptyDir upgrade (ARM=ctl). A DATA_LOST line on that arm is the expected result; it is what makes the other arms meaningful.

  • [grafana] ARM=emp STAGE=restore-on-13.0 RESULT=DATA_INTACT present=6/6
  • [grafana] ARM=ctl RESULT=DATA_LOST present=0/6 on 13.1.3
  • [grafana] ARM=emp RESULT=DATA_INTACT present=6/6 on 13.1.3
  • [grafana] ARM=pvc replicas after upgrade: REPLICAS_RESTORED
  • [grafana] ARM=pvc RESULT=DATA_INTACT present=6/6 on 13.1.3
  • [grafana] ARM=pvc snapshot: SNAPSHOT_RESTORABLE
13.1 → 13.2breakingClaims testedrun 2026-10-17
6 observations

grafana suite: Seeds dashboards, then upgrades three releases: plain emptyDir (the control, expected to lose them), emptyDir moved to persistence by the runbook procedure, and a snapshotted PVC.

Some suites run a control arm built to fail, such as grafana's plain emptyDir upgrade (ARM=ctl). A DATA_LOST line on that arm is the expected result; it is what makes the other arms meaningful.

  • [grafana] ARM=emp STAGE=restore-on-13.1 RESULT=DATA_INTACT present=6/6
  • [grafana] ARM=ctl RESULT=DATA_LOST present=0/6 on 13.2.4
  • [grafana] ARM=emp RESULT=DATA_INTACT present=6/6 on 13.2.4
  • [grafana] ARM=pvc replicas after upgrade: REPLICAS_RESTORED
  • [grafana] ARM=pvc RESULT=DATA_INTACT present=6/6 on 13.2.4
  • [grafana] ARM=pvc snapshot: SNAPSHOT_RESTORABLE

Grafana Loki

observability

UpgradeSeverityEvidence
3.6 → 3.7breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @3.6: HELM_CONVERGED
  • @3.6: PODS_HEALTHY(4)
  • @3.7: HELM_CONVERGED
  • @3.7: PODS_HEALTHY(4)

Fluent Bit

observability

UpgradeSeverityEvidence
3.1 → 3.2cautionUpgrade path verifiedrun 2026-10-23
4 observations
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(2)
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(2)
3.2 → 4.0breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(2)
  • @4.0: HELM_CONVERGED
  • @4.0: PODS_HEALTHY(2)
4.0 → 4.1breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @4.0: HELM_CONVERGED
  • @4.0: PODS_HEALTHY(0)
  • @4.1: HELM_CONVERGED
  • @4.1: PODS_HEALTHY(2)
4.1 → 4.2cautionUpgrade path verifiedrun 2026-10-23
4 observations
  • @4.1: HELM_CONVERGED
  • @4.1: PODS_HEALTHY(2)
  • @4.2: HELM_CONVERGED
  • @4.2: PODS_HEALTHY(2)
4.2 → 5.0breakingClaims testedrun 2026-10-10
2 observations

fluent-bit suite: Replays filesystem buffer chunks across a downgrade, against a same-version control.

  • [fluent-bit] chunk-downgrade control 4.2->4.2: REPLAY_CLEAN
  • [fluent-bit] chunk-downgrade treatment 5.0->4.2: REPLAY_CLEAN
5.0 → 5.1breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @5.0: HELM_CONVERGED
  • @5.0: PODS_HEALTHY(2)
  • @5.1: HELM_CONVERGED
  • @5.1: PODS_HEALTHY(2)

OpenTelemetry Operator

observability

UpgradeSeverityEvidence
0.157 → 0.158breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.157: HELM_CONVERGED
  • @0.157: PODS_HEALTHY(1)
  • @0.158: HELM_CONVERGED
  • @0.158: PODS_HEALTHY(1)
0.159 → 0.160breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.159: HELM_CONVERGED
  • @0.159: PODS_HEALTHY(1)
  • @0.160: HELM_CONVERGED
  • @0.160: PODS_HEALTHY(1)
0.160 → 0.161breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @0.160: HELM_CONVERGED
  • @0.160: PODS_HEALTHY(1)
  • @0.161: HELM_CONVERGED
  • @0.161: PODS_HEALTHY(1)

Velero

backup

UpgradeSeverityEvidence
1.13 → 1.14breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.13: HELM_CONVERGED
  • @1.13: PODS_HEALTHY(1)
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(1)
1.14 → 1.15breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(1)
  • @1.15: HELM_CONVERGED
  • @1.15: PODS_HEALTHY(1)
1.15 → 1.16breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.15: HELM_CONVERGED
  • @1.15: PODS_HEALTHY(1)
  • @1.16: HELM_CONVERGED
  • @1.16: PODS_HEALTHY(1)
1.16 → 1.17breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.16: HELM_CONVERGED
  • @1.16: PODS_HEALTHY(1)
  • @1.17: HELM_CONVERGED
  • @1.17: PODS_HEALTHY(1)
1.17 → 1.18breakingUpgrade path verifiedrun 2026-10-11
4 observations
  • @1.17: HELM_CONVERGED
  • @1.17: PODS_HEALTHY(1)
  • @1.18: HELM_CONVERGED
  • @1.18: PODS_HEALTHY(1)

KEDA

autoscaling

UpgradeSeverityEvidence
2.16 → 2.17breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.16: HELM_CONVERGED
  • @2.16: PODS_HEALTHY(3)
  • @2.17: HELM_CONVERGED
  • @2.17: PODS_HEALTHY(3)
2.17 → 2.18breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.17: HELM_CONVERGED
  • @2.17: PODS_HEALTHY(3)
  • @2.18: HELM_CONVERGED
  • @2.18: PODS_HEALTHY(3)
2.18 → 2.19breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.18: HELM_CONVERGED
  • @2.18: PODS_HEALTHY(3)
  • @2.19: HELM_CONVERGED
  • @2.19: PODS_HEALTHY(3)
2.19 → 2.20breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.19: HELM_CONVERGED
  • @2.19: PODS_HEALTHY(3)
  • @2.20: HELM_CONVERGED
  • @2.20: PODS_HEALTHY(3)
2.20 → 2.21criticalUpgrade path verifiedrun 2026-10-23
4 observations
  • @2.20: HELM_CONVERGED
  • @2.20: PODS_HEALTHY(3)
  • @2.21: HELM_CONVERGED
  • @2.21: PODS_HEALTHY(3)

Kyverno

policy

UpgradeSeverityEvidence
1.13 → 1.14breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.13: HELM_CONVERGED
  • @1.13: PODS_HEALTHY(4)
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(4)
1.14 → 1.15breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.14: HELM_CONVERGED
  • @1.14: PODS_HEALTHY(4)
  • @1.15: HELM_CONVERGED
  • @1.15: PODS_HEALTHY(4)
1.15 → 1.16breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.15: HELM_CONVERGED
  • @1.15: PODS_HEALTHY(4)
  • @1.16: HELM_CONVERGED
  • @1.16: PODS_HEALTHY(5)
1.16 → 1.17breakingUpgrade path verifiedrun 2026-10-11
4 observations
  • @1.16: HELM_CONVERGED
  • @1.16: PODS_HEALTHY(4)
  • @1.17: HELM_CONVERGED
  • @1.17: PODS_HEALTHY(5)
1.17 → 1.18breakingUpgrade path verifiedrun 2026-10-11
4 observations
  • @1.17: HELM_CONVERGED
  • @1.17: PODS_HEALTHY(4)
  • @1.18: HELM_CONVERGED
  • @1.18: PODS_HEALTHY(5)
1.18 → 1.19breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.18: HELM_CONVERGED
  • @1.18: PODS_HEALTHY(4)
  • @1.19: HELM_CONVERGED
  • @1.19: PODS_HEALTHY(5)

OPA Gatekeeper

policy

UpgradeSeverityEvidence
3.17 → 3.18breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.17: HELM_CONVERGED
  • @3.17: PODS_HEALTHY(4)
  • @3.18: HELM_CONVERGED
  • @3.18: PODS_HEALTHY(4)
3.18 → 3.19breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.18: HELM_CONVERGED
  • @3.18: PODS_HEALTHY(4)
  • @3.19: HELM_CONVERGED
  • @3.19: PODS_HEALTHY(4)
3.19 → 3.20breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.19: HELM_CONVERGED
  • @3.19: PODS_HEALTHY(4)
  • @3.20: HELM_CONVERGED
  • @3.20: PODS_HEALTHY(4)
3.20 → 3.21cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.20: HELM_CONVERGED
  • @3.20: PODS_HEALTHY(4)
  • @3.21: HELM_CONVERGED
  • @3.21: PODS_HEALTHY(8)
3.21 → 3.22breakingUpgrade path verifiedrun 2026-10-11
4 observations
  • @3.21: HELM_CONVERGED
  • @3.21: PODS_HEALTHY(4)
  • @3.22: HELM_CONVERGED
  • @3.22: PODS_HEALTHY(8)
3.22 → 3.23cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.22: HELM_CONVERGED
  • @3.22: PODS_HEALTHY(4)
  • @3.23: HELM_CONVERGED
  • @3.23: PODS_HEALTHY(5)

Sealed Secrets

secrets

UpgradeSeverityEvidence
0.34 → 0.35cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.34: HELM_CONVERGED
  • @0.34: PODS_HEALTHY(1)
  • @0.35: HELM_CONVERGED
  • @0.35: PODS_HEALTHY(1)
0.35 → 0.36cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.35: HELM_CONVERGED
  • @0.35: PODS_HEALTHY(1)
  • @0.36: HELM_CONVERGED
  • @0.36: PODS_HEALTHY(1)
0.36 → 0.37cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @0.36: HELM_CONVERGED
  • @0.36: PODS_HEALTHY(1)
  • @0.37: HELM_CONVERGED
  • @0.37: PODS_HEALTHY(1)
0.37 → 0.38cautionUpgrade path verifiedrun 2026-10-11
4 observations
  • @0.37: HELM_CONVERGED
  • @0.37: PODS_HEALTHY(1)
  • @0.38: HELM_CONVERGED
  • @0.38: PODS_HEALTHY(1)
0.38 → 0.39cautionUpgrade path verifiedrun 2026-10-21
4 observations
  • @0.38: HELM_CONVERGED
  • @0.38: PODS_HEALTHY(1)
  • @0.39: HELM_CONVERGED
  • @0.39: PODS_HEALTHY(1)
0.39 → 0.40cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @0.39: HELM_CONVERGED
  • @0.39: PODS_HEALTHY(1)
  • @0.40: HELM_CONVERGED
  • @0.40: PODS_HEALTHY(1)

Secrets Store CSI Driver

secrets

UpgradeSeverityEvidence
1.2 → 1.3breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.2: HELM_CONVERGED
  • @1.2: PODS_HEALTHY(2)
  • @1.3: HELM_CONVERGED
  • @1.3: PODS_HEALTHY(3)
1.3 → 1.4breakingUpgrade path verifiedrun 2026-10-23
4 observations
  • @1.3: HELM_CONVERGED
  • @1.3: PODS_HEALTHY(3)
  • @1.4: HELM_CONVERGED
  • @1.4: PODS_HEALTHY(3)
1.4 → 1.5cautionUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.4: HELM_CONVERGED
  • @1.4: PODS_HEALTHY(3)
  • @1.5: HELM_CONVERGED
  • @1.5: PODS_HEALTHY(3)
1.5 → 1.6breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.5: HELM_CONVERGED
  • @1.5: PODS_HEALTHY(3)
  • @1.6: HELM_CONVERGED
  • @1.6: PODS_HEALTHY(3)

Cilium

networking

UpgradeSeverityEvidence
1.14 → 1.15breakingUpgrade path verifiedrun 2026-10-23
6 observations
  • @1.14: HELM_CONVERGED
  • @1.14: NODES_READY(3)
  • @1.14: POD_CONNECTIVITY_OK
  • @1.15: HELM_CONVERGED
  • @1.15: NODES_READY(3)
  • @1.15: POD_CONNECTIVITY_OK
1.15 → 1.16breakingUpgrade path verifiedrun 2026-10-23
6 observations
  • @1.15: HELM_CONVERGED
  • @1.15: NODES_READY(3)
  • @1.15: POD_CONNECTIVITY_OK
  • @1.16: HELM_CONVERGED
  • @1.16: NODES_READY(3)
  • @1.16: POD_CONNECTIVITY_OK
1.16 → 1.17breakingUpgrade path verifiedrun 2026-10-23
6 observations
  • @1.16: HELM_CONVERGED
  • @1.16: NODES_READY(3)
  • @1.16: POD_CONNECTIVITY_OK
  • @1.17: HELM_CONVERGED
  • @1.17: NODES_READY(3)
  • @1.17: POD_CONNECTIVITY_OK
1.17 → 1.18breakingHuman-reviewedsigned 2026-09-19
6 observations
  • @1.17: HELM_CONVERGED
  • @1.17: NODES_READY(3)
  • @1.17: POD_CONNECTIVITY_OK
  • @1.18: HELM_CONVERGED
  • @1.18: NODES_READY(3)
  • @1.18: POD_CONNECTIVITY_OK
1.18 → 1.19breakingUpgrade path verifiedrun 2026-10-23
6 observations
  • @1.18: HELM_CONVERGED
  • @1.18: NODES_READY(3)
  • @1.18: POD_CONNECTIVITY_OK
  • @1.19: HELM_CONVERGED
  • @1.19: NODES_READY(3)
  • @1.19: POD_CONNECTIVITY_OK
1.19 → 1.20breakingUpgrade path verifiedrun 2026-10-23
6 observations
  • @1.19: HELM_CONVERGED
  • @1.19: NODES_READY(3)
  • @1.19: POD_CONNECTIVITY_OK
  • @1.20: HELM_CONVERGED
  • @1.20: NODES_READY(3)
  • @1.20: POD_CONNECTIVITY_OK

Calico

networking

UpgradeSeverityEvidence
3.28 → 3.29cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @3.28: HELM_CONVERGED
  • @3.28: NODES_READY(3)
  • @3.28: POD_CONNECTIVITY_OK
  • @3.29: HELM_CONVERGED
  • @3.29: NODES_READY(3)
  • @3.29: POD_CONNECTIVITY_OK
3.29 → 3.30cautionUpgrade path verifiedrun 2026-10-17
6 observations
  • @3.29: HELM_CONVERGED
  • @3.29: NODES_READY(3)
  • @3.29: POD_CONNECTIVITY_OK
  • @3.30: HELM_CONVERGED
  • @3.30: NODES_READY(3)
  • @3.30: POD_CONNECTIVITY_OK
3.30 → 3.31breakingUpgrade path verifiedrun 2026-10-17
6 observations
  • @3.30: HELM_CONVERGED
  • @3.30: NODES_READY(3)
  • @3.30: POD_CONNECTIVITY_OK
  • @3.31: HELM_CONVERGED
  • @3.31: NODES_READY(3)
  • @3.31: POD_CONNECTIVITY_OK
3.31 → 3.32breakingUpgrade path verifiedrun 2026-10-10
6 observations
  • @3.31: HELM_CONVERGED
  • @3.31: NODES_READY(3)
  • @3.31: POD_CONNECTIVITY_OK
  • @3.32: HELM_CONVERGED
  • @3.32: NODES_READY(3)
  • @3.32: POD_CONNECTIVITY_OK
3.32 → 3.33breakingUpgrade path verifiedrun 2026-10-17
6 observations
  • @3.32: HELM_CONVERGED
  • @3.32: NODES_READY(3)
  • @3.32: POD_CONNECTIVITY_OK
  • @3.33: HELM_CONVERGED
  • @3.33: NODES_READY(3)
  • @3.33: POD_CONNECTIVITY_OK

Istio

service-mesh

UpgradeSeverityEvidence
1.21 → 1.22breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.21: HELM_CONVERGED
  • @1.21: PODS_HEALTHY(1)
  • @1.22: HELM_CONVERGED
  • @1.22: PODS_HEALTHY(1)
1.22 → 1.23cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.22: HELM_CONVERGED
  • @1.22: PODS_HEALTHY(1)
  • @1.23: HELM_CONVERGED
  • @1.23: PODS_HEALTHY(1)
1.23 → 1.24breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.23: HELM_CONVERGED
  • @1.23: PODS_HEALTHY(1)
  • @1.24: HELM_CONVERGED
  • @1.24: PODS_HEALTHY(1)
1.24 → 1.25cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @1.24: HELM_CONVERGED
  • @1.24: PODS_HEALTHY(1)
  • @1.25: HELM_CONVERGED
  • @1.25: PODS_HEALTHY(1)
1.25 → 1.26breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.25: HELM_CONVERGED
  • @1.25: PODS_HEALTHY(1)
  • @1.26: HELM_CONVERGED
  • @1.26: PODS_HEALTHY(1)
1.26 → 1.27breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.26: HELM_CONVERGED
  • @1.26: PODS_HEALTHY(1)
  • @1.27: HELM_CONVERGED
  • @1.27: PODS_HEALTHY(1)
1.27 → 1.28breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.27: HELM_CONVERGED
  • @1.27: PODS_HEALTHY(1)
  • @1.28: HELM_CONVERGED
  • @1.28: PODS_HEALTHY(1)
1.28 → 1.29breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.28: HELM_CONVERGED
  • @1.28: PODS_HEALTHY(1)
  • @1.29: HELM_CONVERGED
  • @1.29: PODS_HEALTHY(1)
1.29 → 1.30breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @1.29: HELM_CONVERGED
  • @1.29: PODS_HEALTHY(1)
  • @1.30: HELM_CONVERGED
  • @1.30: PODS_HEALTHY(1)

Traefik

ingress

UpgradeSeverityEvidence
3.1 → 3.2breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.1: HELM_CONVERGED
  • @3.1: PODS_HEALTHY(1)
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(1)
3.2 → 3.3breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.2: HELM_CONVERGED
  • @3.2: PODS_HEALTHY(1)
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(1)
3.3 → 3.4cautionUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.3: HELM_CONVERGED
  • @3.3: PODS_HEALTHY(1)
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(1)
3.4 → 3.5breakingUpgrade path verifiedrun 2026-10-17
4 observations
  • @3.4: HELM_CONVERGED
  • @3.4: PODS_HEALTHY(1)
  • @3.5: HELM_CONVERGED
  • @3.5: PODS_HEALTHY(1)
3.5 → 3.6breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.5: HELM_CONVERGED
  • @3.5: PODS_HEALTHY(1)
  • @3.6: HELM_CONVERGED
  • @3.6: PODS_HEALTHY(1)
3.6 → 3.7breakingUpgrade path verifiedrun 2026-10-10
4 observations
  • @3.6: HELM_CONVERGED
  • @3.6: PODS_HEALTHY(1)
  • @3.7: HELM_CONVERGED
  • @3.7: PODS_HEALTHY(1)