Est-il possible de partager des secrets sur des espaces de noms dans Kubernetes?
Mon cas d'utilisation est le suivant: j'ai le même registre privé pour tous mes espaces-noms et je veux éviter de créer le même secret pour chacun.
Merci de votre aide.
Les objets de l'API secret résident dans un espace de noms. Ils ne peuvent être référencés que par des pods situés dans le même espace de noms. Fondamentalement, vous devrez créer le secret pour chaque espace de noms.
https://kubernetes.io/docs/concepts/configuration/secret/#details
Ils ne peuvent être référencés que par des pods situés dans le même espace de noms. Mais vous pouvez simplement copier le secret d'un espace de noms à un autre. Voici un exemple de copie de localdockerreg
secret de default
espace de noms dans dev
:
kubectl get secret localdockerreg --namespace=default --export -o yaml | kubectl apply --namespace=dev -f -
Dans Kubernetes v1.14 --export
Le drapeau est obsolète . Donc, la commande suivante avec -oymal
flag fonctionnera sans avertissement dans les prochaines versions.
kubectl get secret localdockerreg --namespace=default -oyaml | kubectl apply --namespace=dev -f -
Comme l'a répondu Innocent Anigbo, vous devez avoir le secret dans le même espace de noms. Si vous devez prendre en charge cette dynamique ou éviter d’oublier la création de secrets, vous pouvez éventuellement créer un initialiseur pour l’objet d’espace de nom https://kubernetes.io/docs/admin/extensible-admission-controllers/ ( ne l'ai pas fait moi-même, alors je ne peux pas le dire à coup sûr)
kubectl obtenir le secret gitlab-registry --namespace = revsys-com --export -o yaml |\kubectl apply --namespace = devspectrum-dev -f -