You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
etcd-operator upgrade fails on 1.5.x→1.6.0-rc.1: Deployment spec.selector is immutable #3242
Upgrading from 1.5.x to v1.6.0-rc.1, the etcd-operator HelmRelease fails to upgrade:
cannot patch "etcd-operator-controller-manager" with kind Deployment: Deployment.apps
"etcd-operator-controller-manager" is invalid: spec.selector: Invalid value:
{"matchLabels":{"app.kubernetes.io/name":"etcd-operator","control-plane":"controller-manager"}}: field is immutable
1.6 replaces the upstream etcd-operator chart with the cozystack-authored one (#2859), which changes the controller Deployment's spec.selector.matchLabels:
spec.selector is immutable, so helm upgrade cannot patch it. The etcd-operator (and the new etcd-operator.cozystack.io v1alpha2 CRDs) never come up, which in turn blocks the etcd v1alpha2 adoption.
Impact
Every 1.5 → 1.6 upgrade. Fresh installs are unaffected, so fresh-install CI does not catch it.
then reconcile the HelmRelease — it recreates the Deployment with the new selector and goes Ready.
Suggested fix
Ship a pre-upgrade hook / migration that deletes the old Deployment before the chart upgrade (or keep the Deployment selector labels stable across the chart swap).
Found via a 1.5.0 → 1.6.0-rc.1 upgrade test on a 3-node cluster.
Activity
fix(etcd): fix etcd-operator 1.5->1.6 upgrade (immutable selector + O…
fix(etcd): fix etcd-operator 1.5->1.6 upgrade (immutable selector + O…
fix(etcd): complete v1alpha2 transition for in-cluster 1.5→1.6 upgrad…
myasnikovdaniil commentedon Jul 21, 2026
Completed in #3270