Eu criei um segredo usando kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt
.
Se eu gostaria de atualizar os valores - como posso fazer isso?
kubernetes
kubectl
Chris Stryczynski
fonte
fonte
--save-config
aokubectl create secret
para evitar um aviso de CLI.kubectl create secret tls my-domain-tls --namespace=default --key=./tls.key --cert=./tls.crt --dry-run -o yaml | kubectl apply -f -
os certificados estavam em texto simples.Você pode excluir e recriar imediatamente o segredo:
Coloquei esses comandos em um script, na primeira chamada você recebe um aviso sobre o segredo (ainda não) existente, mas funciona.
fonte
apply
faz muito mais sentido, obrigado!--namespace=kube-system
Como alternativa, você também pode usar
jq
o operador 's=
ou|=
para atualizar os segredos rapidamente.Embora possa não ser tão elegante ou simples quanto a
kubectl create secret generic --dry-run
abordagem, tecnicamente, esta abordagem está realmente atualizando os valores em vez de excluí-los / recriá-los. Você também precisará dos comandosjq
andbase64
(ouopenssl enc -base64
) disponíveis,tr
é um utilitário Linux comumente disponível para aparar novas linhas finais.Veja aqui mais detalhes sobre a
jq
atualização do operador|=
.fonte
Como não fui capaz de responder à resposta de Devy acima, eu gosto porque preservará a Propriedade, onde excluir e recriar tem o potencial de perder qualquer informação extra no registro. Estou adicionando isso para as pessoas mais novas que podem não entender imediatamente o soro de que suas variáveis não estão sendo interpoladas.
Isso me levou a tentar usar o método 'patch' de kubectl, que também parece funcionar.
Obrigado Devy pela resposta que melhor atendeu às minhas necessidades.
fonte
Para casos mais específicos, você pode precisar especificar seu namespace de que o certificado precisa ser renovado e excluir o antigo.
fonte
Eu usei este e funcionou como um encanto:
docker-server = https://index.docker.io/v1/ (para DockerHub)
Para mais detalhes: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line
fonte