Change namespace certificates

This commit is contained in:
2026-01-20 06:05:03 +01:00
parent 0badab1ecb
commit ae1844616d
14 changed files with 392 additions and 2 deletions

View 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 ==="

View 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 ==="