<p>When issuing a helm upgrade on a running pod, my configmap is updated, but will the pod know about the configmap updated values automatically or is there another step that I need to take to inject new configmap values into the pod?</p>

<p>My overall goal is to avoid having to interact with the running pod such as a delete or restart / reinstall.</p>

<p>I've seen a lot of info about changing sha1sum and doing some workarounds, but my question is more basic - do pods automatically become aware of new configmap items?</p>

<p>---- UPDATE --- so what we ended up doing was:</p>

<p>helm upgrade -n release -f release/values.yaml <strong>--recreate-pods</strong>  </p>

<p>although this terminates the existing pod, another one is instantly started upon issuing the command, meaning "near zero" downtime.</p>

<p>If your Helm chart creates a ConfigMap, and that ConfigMap is mounted as a volume into a pod, then when the ConfigMap updates, <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#mounted-configmaps-are-updated-automatically" rel="nofollow noreferrer">the container filesystem also updates</a>.  It's then up to the application to notice that the files have changed.</p>
<p>Tricks like <a href="https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments" rel="nofollow noreferrer">setting a hash of the file contents as a pod annotation</a> are specifically there to cause a Deployment to update in a way that will delete and recreate existing Pods.  This is okay!  Pods in Kubernetes are very disposable, and if you delete a Pod managed by a Deployment it will get automatically recreated.  If your application only reads the ConfigMap contents at startup time (this is very typical) then you need to do something like this to cause the Pod to restart on its own (copied out of the linked documentation):</p>
<pre><code>kind: Deployment
spec:
  template:
    metadata:
      annotations:
        checksum/config: {{ include (print $.Template.BasePath &quot;/configmap.yaml&quot;) . | sha256sum }}
</code></pre>
