Change namespace certificates
This commit is contained in:
26
scripts/sync-all-tls-secrets.sh
Normal file
26
scripts/sync-all-tls-secrets.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
# Script pour synchroniser tous les secrets TLS depuis OPS vers les autres clusters
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Synchronisation de tous les secrets TLS ==="
|
||||
echo ""
|
||||
|
||||
# Liste des secrets à synchroniser
|
||||
# Format: secret_name:source_ns:target_cluster:target_ns
|
||||
SECRETS=(
|
||||
"homarr-dev-tls:certificates-ops:cluster-dev:homarr-dev"
|
||||
# Ajoutez d'autres secrets ici
|
||||
# "nextcloud-dev-tls:certificates-ops:cluster-dev:nextcloud-dev"
|
||||
)
|
||||
|
||||
for secret_config in "${SECRETS[@]}"; do
|
||||
IFS=':' read -r secret_name source_ns target_cluster target_ns <<< "$secret_config"
|
||||
|
||||
echo "Synchronisation de $secret_name vers $target_cluster..."
|
||||
./scripts/sync-tls-secret.sh "$secret_name" "cluster-ops" "$source_ns" "$target_cluster" "$target_ns"
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "=== Toutes les synchronisations terminées ==="
|
||||
|
||||
60
scripts/sync-tls-secret.sh
Normal file
60
scripts/sync-tls-secret.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# Script pour synchroniser un secret TLS depuis OPS vers un autre cluster
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
SECRET_NAME="${1:-homarr-dev-tls}"
|
||||
SOURCE_CLUSTER="${2:-cluster-ops}"
|
||||
SOURCE_NS="${3:-certificates-ops}"
|
||||
TARGET_CLUSTER="${4:-cluster-dev}"
|
||||
TARGET_NS="${5:-homarr-dev}"
|
||||
|
||||
echo "=== Synchronisation du secret TLS ==="
|
||||
echo "Secret: $SECRET_NAME"
|
||||
echo "Source: $SOURCE_CLUSTER (namespace: $SOURCE_NS)"
|
||||
echo "Destination: $TARGET_CLUSTER (namespace: $TARGET_NS)"
|
||||
echo ""
|
||||
|
||||
# Vérifier que le secret existe dans la source
|
||||
echo "1. Vérification du secret source..."
|
||||
if ! kubectl get secret "$SECRET_NAME" -n "$SOURCE_NS" --context="$SOURCE_CLUSTER" &>/dev/null; then
|
||||
echo "❌ Erreur: Le secret $SECRET_NAME n'existe pas dans $SOURCE_NS sur $SOURCE_CLUSTER"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Récupérer le secret
|
||||
echo "2. Récupération du secret depuis $SOURCE_CLUSTER..."
|
||||
kubectl get secret "$SECRET_NAME" -n "$SOURCE_NS" --context="$SOURCE_CLUSTER" -o yaml > /tmp/secret-sync.yaml
|
||||
|
||||
# Modifier les métadonnées
|
||||
echo "3. Préparation du secret pour $TARGET_CLUSTER..."
|
||||
sed -i.bak '/^ uid:/d' /tmp/secret-sync.yaml
|
||||
sed -i.bak '/^ resourceVersion:/d' /tmp/secret-sync.yaml
|
||||
sed -i.bak '/^ selfLink:/d' /tmp/secret-sync.yaml
|
||||
sed -i.bak '/^ creationTimestamp:/d' /tmp/secret-sync.yaml
|
||||
sed -i.bak "s/namespace: $SOURCE_NS/namespace: $TARGET_NS/" /tmp/secret-sync.yaml
|
||||
|
||||
# Créer le namespace s'il n'existe pas
|
||||
echo "4. Vérification/création du namespace $TARGET_NS sur $TARGET_CLUSTER..."
|
||||
kubectl create namespace "$TARGET_NS" --context="$TARGET_CLUSTER" --dry-run=client -o yaml | kubectl apply --context="$TARGET_CLUSTER" -f -
|
||||
|
||||
# Appliquer le secret
|
||||
echo "5. Application du secret sur $TARGET_CLUSTER..."
|
||||
kubectl apply -f /tmp/secret-sync.yaml --context="$TARGET_CLUSTER"
|
||||
|
||||
# Vérification
|
||||
echo "6. Vérification..."
|
||||
if kubectl get secret "$SECRET_NAME" -n "$TARGET_NS" --context="$TARGET_CLUSTER" &>/dev/null; then
|
||||
echo "✅ Secret $SECRET_NAME synchronisé avec succès vers $TARGET_CLUSTER"
|
||||
else
|
||||
echo "❌ Erreur: Le secret n'a pas été créé sur $TARGET_CLUSTER"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Nettoyage
|
||||
rm -f /tmp/secret-sync.yaml /tmp/secret-sync.yaml.bak
|
||||
|
||||
echo ""
|
||||
echo "=== Synchronisation terminée ==="
|
||||
|
||||
Reference in New Issue
Block a user