Search code examples
kubernetescloudkubernetes-helmcluster-computinghelm3

Does helm upgrade reinstall entire chart or only altered manifests


When running helm upgrade, does helm reinstall all manifests in the chart, or only the manifests that have been changed?

I cannot seem to find any documentation regarding this. Any reference or documentation is welcome.

Thanks in advance.


Solution

  • Depends on a resource type of objects which you updating.

    Helm itself never make any decision about what should be updated. It just generates objects from templates based on your configuration and apply them to a Kubernetes.

    Now, let's talk about how Kubernetes working with objects. Each object has parameters which can be updated in-place and which cannot.

    For example, in a Deployment you can update it's annotations or labels, but if you will update the same values in a spec (which is actually a template for a ReplicSet), it will create new RS with that values and that new RS will create new Pods.

    So, if you call helm upgrade and, for example, one resulting object has some new values which cannot be updated on existing object (in-place), then Kubernetes will create a new object to replace the old one.

    That is independent process for each object you are creating during upgrade process, so some of objects will be replaced (re-created) and some - no.