Pod isn't restarted when configMaps or secrets change

Ouverte Adaptée aux débutants
#202 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
helm, kubernetes
Domaine
devops

Piste de recherche

La charge utile nomme les templates ConfigMap et Secret (configmap.yaml, secret.yaml) ainsi que le template de pod du Deployment du chart, où iraient les annotations. Lis comment les métadonnées du template de pod du Deployment sont rendues et comment configMaps et secrets sont montés avec subPath. C'est terminé lorsque le rendu du chart avec une valeur configMaps ou secrets modifiée produit une annotation différente sur le template de pod, de sorte que le pod soit redéployé lors de la mise à niveau.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Changing only a configMaps (or secrets) entry in values doesn't restart the pod. The deployment's pod template doesn't change, so helm upgrade updates the ConfigMap but leaves the old pod running. Since the chart mounts these with subPath, the running pod never sees the new content either: it keeps the old file until something else restarts it.

For example, changing an Rspamd override in configMaps and upgrading leaves Rspamd on the old config until a manual kubectl rollout restart.

The usual fix is a checksum annotation on the pod template, so any config change rolls the pod:

template:
  metadata:
    annotations:
      checksum/configmaps: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
      checksum/secrets: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}
Langage dominant
Mustache
Étoiles
157
Forks
82
Merge moyen
22 min
PR mergées (30 j)
3

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de docker-mailserver/docker-mailserver-helm

Toutes les issues de docker-mailserver/docker-mailserver-helm

Issues similaires

Plus d'issues DevOps

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.