Helm chart restart pods when configmap changes

it worked for me, below is the code snippet from my deployment.yaml file, make sure your configmap and secret yaml file are same as what referred in the annotations:

spec:
  template:
    metadata:
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/my-configmap.yaml") . | sha256sum }}
        checksum/secret: {{ include (print $.Template.BasePath "/my-secret.yaml") . | sha256sum }}

Neither Helm nor Kubernetes provide a specific rolling update for a ConfigMap change. The workaround has been for a while is to just patch the deployment which triggers the rolling update:

kubectl patch deployment your-deployment -n your-namespace -p '{"spec":{"template":{"metadata":{"annotations":{"date":"$(date)"}}}}}'

And you can see the status:

kubectl rollout status deployment your-deployment

Note this works on a nix machine. This is until this feature is added.

Update 05/05/2021

Helm and kubectl provide this now:

Helm: https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments

kubectl: kubectl rollout restart deploy WORKLOAD_NAME


https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments Helm3 has this feature now. deployments are rolled out when there is change in configmap template file.