what run node create kubernetes kubectl

kubernetes - run - minikube



¿Cómo puedo actualizar un secreto en Kubernetes cuando se genera a partir de un archivo? (3)

He creado un secreto usando kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt .

Si me gustaría actualizar los valores, ¿cómo puedo hacer esto?


Alternativamente, también puede usar el operador jq ''s = or |= para actualizar secretos sobre la marcha.

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 -

Aunque puede que no sea tan elegante o simple como el kubectl create secret generic --dry-run , técnicamente, este enfoque realmente actualiza los valores en lugar de eliminarlos / recrearlos. También necesitará los comandos jq y base64 (o openssl enc -base64 ) disponibles, tr es una utilidad de Linux comúnmente disponible para recortar nuevas líneas finales.

Consulte here para obtener más detalles sobre jq update operator |= .


Esto debería funcionar:

kubectl create secret generic production-tls / --from-file=./tls.key --from-file=./tls.crt --dry-run -o yaml | kubectl apply -f -


Puede eliminar e inmediatamente recrear el secreto:

kubectl delete secret production-tls kubectl create secret generic production-tls --from-file=./tls.key --from-file=./tls.crt

Puse estos comandos en un script, en la primera llamada recibes una advertencia sobre el secreto existente (aún no), pero esto funciona.