Kubernetes est livré avec un ConfigMap
appelé coredns
qui vous permet de spécifier les paramètres DNS. Je souhaite modifier ou patcher un petit morceau de cette configuration en ajoutant:
apiVersion: v1
kind: ConfigMap
data:
upstreamNameservers: |
["1.1.1.1", "1.0.0.1"]
Je sais que je peux utiliser kubectrl edit
pour modifier le coredns
ConfigMap
existe-t-il un moyen de prendre le fichier ci-dessus contenant uniquement les paramètres que je veux insérer ou mettre à jour et de le fusionner par-dessus ou de corriger sur l'existant ConfigMap
?
La raison en est que je veux que mon déploiement soit reproductible à l'aide de CI/CD. Donc, même si j'ai exécuté mon graphique Helm sur un tout nouveau cluster Kubernetes, les paramètres ci-dessus seraient appliqués.
Comme ConfigMaps est utilisé pour monter des fichiers de configuration sur Pod, il semble que this soit ce que vous recherchez. Les ConfigMaps à l'intérieur des conteneurs seront mis à jour automatiquement si le ConfigMap ou le Secret sous-jacent est modifié.
Vous pouvez spécifier l'emplacement de configMap:
configMapVolume(mountPath: '/etc/mount3', configMapName: 'my-config'),
Mise à jour:
Ok, je suppose que cela ne résout pas votre problème. Une autre chose qui me vient à l'esprit est kubectl create configmap
avec un tuyau vers kubectl replace
Donc, la commande entière ressemblerait à ceci:
kubectl create configmap NAME --from-file file.name -o yaml --dry-run | kubectl replace -f -
Notez que cela remplace tout le fichier, donc juste replace
devrait aussi fonctionner.