J'ai créé un secret avec kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt
.
Si je souhaite mettre à jour les valeurs, comment puis-je procéder?
J'ai créé un secret avec kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt
.
Si je souhaite mettre à jour les valeurs, comment puis-je procéder?
Vous pouvez supprimer et recréer immédiatement le secret:
kubectl delete secret production-tls
kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt
J'ai mis ces commandes dans un script, au premier appel, vous recevez un avertissement concernant le secret (pas encore) existant, mais cela fonctionne.
Alternativement, vous pouvez également utiliser jq
s' =
ou |=
de l'opérateur de mettre à jour les secrets à la volée.
TLS_KEY=$(base64 < "./tls.key" | tr -d '\n')
TLS_CRT=$(base64 < "./tls.crt" | tr -d '\n')
kubectl get secrets production-tls -o json \
| jq '.data["tls.key"] |= "$TLS_KEY"' \
| jq '.data["tls.crt"] |= "$TLS_CRT"' \
| kubectl apply -f -
Bien qu'il pourrait ne pas être élégant, simple ou que l' kubectl create secret generic --dry-run
approche, techniquement, cette approche est véritablement mise à jour des valeurs plutôt que de les supprimer/recréer. Vous aurez également besoin d' jq
et base64
(ou openssl enc -base64
) des commandes disponibles, tr
, qui est communément disponible Linux utilitaire pour la coupe de fuite des retours à la ligne.
Voir ici pour plus de détails sur jq
mise à jour opérateur |=
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.