Helm upgrade not working when upgrading from 2.10.0 to 3.1.0

6/8/2021

I was running the older 2.16.0 version of ChartMuseum Helm Chart. I am trying to update it to use newer 3.1.0. When I try to upgrade using helm upgrade <release> <name> -n <namespace>, the upgradation fails with the following error:

Error: UPGRADE FAILED: cannot patch "..." with kind Deployment: Deployment.apps "..." is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"chart-rep", "app.kubernetes.io/name":"chartmuseum"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

I am not sure but I believe this is because of helm v3? I was going through this page where I found helm v3 is a prerequisite. The change from 2.16.0 to 3.1.0 requires helm v3.

I also have a pv bound to older version and ideally I want it to bind to the newer one. I am also using rollingupdate strategy. What steps do I need to take so that the upgrade works?

-- ray an
kubernetes
kubernetes-helm

1 Answer

6/8/2021

That's not from Helm, that's a Kubernetes error. This chart does not support clean upgrades or your values are not matching what you had before. If you can take the downtime, delete the offending deployment and let Helm recreate it. Otherwise you have to look up the right dance of orphan deletes and whatnot.

-- coderanger
Source: StackOverflow