Kubernetes actualiza secretos usando comandos imperativos

CorePress2024-01-25  10

Estoy creando secretos de Kubernetes usando el siguiente comando

kubectl create secret generic test-secret --save-config --dry-run=client --from-literal=a=data1 --from-literal=a=data2 -o yaml | kubectl apply -f -

Ahora, necesito agregar nuevos literales usando el comando imperativo kubectl, ¿cómo hacerlo? diga por ejemplo:

kubectl apply secret generic test-secret  --from-literal=c=data3 -o yaml | kubectl apply -f - 

pero dio el siguiente error

Error: indicador desconocido: --from-literal Consulte 'kubectl apply --help' para conocer su uso. error: no se pasaron objetos para aplicar

Se agradece cualquier ayuda rápida



------------------------------------

agregar nuevos literales usando el comando imperativo kubectl

Cuando se trabaja con comandos imperativos, normalmente significa que no se guarda el cambio en un lugar fuera del clúster. Puedes editar un secreto en el clúster directamente:

kubectl edit secret test-secret

Pero si desea automatizar su "adición", lo más probable es que guarde su secreto en otro lugar antes de aplicarlo al clúster. Cómo hacerlo depende de cómo gestiones los secretos. Una forma de hacerlo es agregándolo, por ejemplo. Vault y luego inyectarlo automáticamente. Cuando se trabaja de forma automatizada, es más fácil practicar secretos inmutables y crear secretos nuevos en lugar de mutar, porque normalmente también es necesario volver a implementar la aplicación para asegurarse de que utilice la nueva. Usar Kustomize con secretGenerator puede ser una buena opción si trabajas con secretos inmutables.

3

Gracias Jonas, estoy planeando usar secretos sellados... github.com/bitnami-labs/sealed-secrets. Pensando en una forma de automatizar los literales de los secretos existentes.

- magia

28 de marzo de 2021 a las 9:34

Tienen documentación en github.com/bitnami-labs/sealed-secrets#update-existing-secrets

- Jonás

28 de marzo de 2021 a las 9:54

sí "--fusionarse en" opción haz el truco. Gracias

- magia

28/03/2021 a las 13:31



------------------------------------

Puede utilizar el comando imperativo del parche kubectl

ejemplo

    root@controlplane:~# kubectl patch secrets test-secret --type='json' -p='[{"op" : "replace" ,"path" : "/data/newkey" ,"value" : "bmV3VmFsCg=="}]'
    secret/test-secret patched
    root@controlplane:~# kubectl describe secrets test-secret 
    Name:         test-secret
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>

    Type:  Opaque

    Data
    ====
    a:       5 bytes
    b:       5 bytes
    newkey:  7 bytes

necesitas pasar el valor codificado, para codificar/decodificar el nuevo valor de la clave puedes usar el siguiente comando

root@controlplane:~# echo "newValue" | base64
bmV3VmFsdWUK
root@controlplane:~# echo bmV3VmFsdWUK | base64 -d
newValue

otra opción es usar kubectl edit pero si automatizas tu código no puedes usar la opción de edición

kubectl edit secret test-secret

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare