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 upgrade 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][3] 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 rolling-update strategy.

What steps do I need to take so that the upgrade works?

1 Answer 1


This is not a Helm issue. You are probably trying to update the LabelSelector fields which are immutable. This is expected behaviour as per the kubernetes.

  • 7
    This is not helpful at all, yes, it is obvious that it is kubernetes, but how do you suggest to go with production deployments? The whole point of helm is to update/replace pods without downtime.
    – Aram
    Commented Dec 3, 2021 at 10:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.