J'ai créé un secret en utilisant kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt
.
Si je souhaite mettre à jour les valeurs, comment puis-je faire cela?
kubernetes
kubectl
Chris Stryczynski
la source
la source
--save-config
aukubectl create secret
afin d'éviter un avertissement CLI.kubectl create secret tls my-domain-tls --namespace=default --key=./tls.key --cert=./tls.crt --dry-run -o yaml | kubectl apply -f -
les certificats étaient en texte brut.Vous pouvez supprimer et recréer immédiatement le secret:
J'ai mis ces commandes dans un script, au premier appel, vous recevez un avertissement concernant le secret existant (pas encore), mais cela fonctionne.
la source
apply
beaucoup plus de sens, merci!--namespace=kube-system
Vous pouvez également utiliser l
jq
' opérateur=
ou|=
pour mettre à jour les secrets à la volée.Bien qu'elle ne soit pas aussi élégante ou simple que l'
kubectl create secret generic --dry-run
approche, techniquement, cette approche met réellement à jour les valeurs plutôt que de les supprimer / recréer. Vous aurez également besoinjq
etbase64
(ouopenssl enc -base64
) des commandes disponibles,tr
est un utilitaire Linux couramment disponible pour couper les nouvelles lignes de fin.Voir ici pour plus de détails sur l'
jq
opérateur de mise à jour|=
.la source
Comme je n'ai pas pu répondre à la réponse de Devy ci-dessus, ce que j'aime parce que cela préservera la propriété où la suppression et la recréation risquent de perdre des informations supplémentaires dans le dossier. J'ajoute ceci pour les nouvelles personnes qui peuvent ne pas comprendre immédiatement que leurs variables ne sont pas interpolées.
Cela m'a conduit à essayer d'utiliser la méthode «patch» de kubectl, qui semble également fonctionner.
Merci Devy pour la réponse qui a le mieux répondu à mes besoins.
la source
Pour des cas plus spécifiques, vous devrez peut-être spécifier votre espace de noms que le certificat doit être renouvelé et supprimer l'ancien.
la source
J'ai utilisé celui-ci et cela a fonctionné comme un charme:
docker-server = https://index.docker.io/v1/ (pour DockerHub)
Pour plus de détails: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line
la source