#!/usr/bin/env bash # ============================================================================= # Application des secrets chiffres SOPS sur le cluster # ============================================================================= # export KUBECONFIG=~/.kube/xpeditis-prod.yaml # bash scripts/secrets-apply.sh # # Le contenu dechiffre ne touche JAMAIS le disque : sops ecrit sur la sortie # standard, kubectl lit sur l'entree standard. Rien a nettoyer, rien a oublier. set -euo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SECRETS_FILE="${HERE}/../k8s/base/03-secrets.sops.yaml" command -v sops >/dev/null || { echo "sops n'est pas installe." >&2; exit 1; } [[ -f "$SECRETS_FILE" ]] || { cat >&2 < k8s/base/03-secrets.sops.yaml shred -u /tmp/secrets.yaml MSG exit 1 } # Refuse d'appliquer un fichier qui ne serait pas reellement chiffre : c'est le # genre d'erreur qui ne se voit qu'une fois le secret pousse sur GitHub. grep -q 'sops:' "$SECRETS_FILE" || { echo "ERREUR: $SECRETS_FILE ne semble pas chiffre par SOPS. Abandon." >&2 exit 1 } echo ">>> Application des secrets sur $(kubectl config current-context)" sops -d "$SECRETS_FILE" | kubectl apply -f - echo echo ">>> Secrets presents :" kubectl -n xpeditis-prod get secrets kubectl -n monitoring get secrets 2>/dev/null || true kubectl -n cert-manager get secret cloudflare-api-token 2>/dev/null || true cat <<'NEXT' Rappel : modifier un Secret ne redemarre PAS les pods qui l'utilisent. Pour que la nouvelle valeur soit prise en compte : kubectl -n xpeditis-prod rollout restart deploy/xpeditis-backend NEXT