67 lines
2.6 KiB
YAML
67 lines
2.6 KiB
YAML
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: sync-tls-secret-homarr-dev
|
|
namespace: certificates-ops
|
|
annotations:
|
|
argocd.argoproj.io/hook: Sync
|
|
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
|
|
spec:
|
|
template:
|
|
spec:
|
|
serviceAccountName: secret-sync-sa
|
|
containers:
|
|
- name: kubectl
|
|
image: bitnami/kubectl:latest
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
set -e
|
|
echo "=== Synchronisation du secret TLS homarr-dev-tls ==="
|
|
echo "Source: cluster-ops, namespace: certificates-ops"
|
|
echo "Destination: cluster-dev, namespace: homarr-dev"
|
|
|
|
# Récupérer le secret depuis OPS (cluster actuel)
|
|
echo "1. Récupération du secret depuis OPS..."
|
|
kubectl get secret homarr-dev-tls -n certificates-ops -o yaml > /tmp/secret-source.yaml
|
|
|
|
if [ ! -s /tmp/secret-source.yaml ]; then
|
|
echo "❌ Erreur: Le secret homarr-dev-tls n'existe pas dans certificates-ops sur OPS"
|
|
exit 1
|
|
fi
|
|
|
|
# Modifier les métadonnées pour la destination
|
|
echo "2. Préparation du secret pour DEV..."
|
|
cat /tmp/secret-source.yaml | \
|
|
sed '/^ uid:/d' | \
|
|
sed '/^ resourceVersion:/d' | \
|
|
sed '/^ selfLink:/d' | \
|
|
sed '/^ creationTimestamp:/d' | \
|
|
sed 's/namespace: certificates-ops/namespace: homarr-dev/' > /tmp/secret-dest.yaml
|
|
|
|
# Appliquer le secret sur DEV
|
|
# Note: Cela nécessite que kubectl soit configuré avec les contextes des clusters
|
|
echo "3. Application du secret sur DEV..."
|
|
|
|
# Vérifier si le contexte cluster-dev existe
|
|
if kubectl config get-contexts cluster-dev &>/dev/null; then
|
|
# Créer le namespace s'il n'existe pas
|
|
kubectl create namespace homarr-dev --context=cluster-dev --dry-run=client -o yaml | kubectl apply --context=cluster-dev -f - || true
|
|
|
|
# Appliquer le secret
|
|
kubectl apply -f /tmp/secret-dest.yaml --context=cluster-dev
|
|
|
|
echo "✅ Secret synchronisé vers cluster-dev"
|
|
else
|
|
echo "⚠️ Le contexte cluster-dev n'est pas configuré dans kubectl"
|
|
echo " Pour synchroniser manuellement, exécutez :"
|
|
echo " kubectl apply -f /tmp/secret-dest.yaml --context=cluster-dev"
|
|
echo ""
|
|
echo " Ou utilisez le script :"
|
|
echo " ./scripts/sync-tls-secret.sh homarr-dev-tls cluster-ops certificates-ops cluster-dev homarr-dev"
|
|
fi
|
|
restartPolicy: Never
|
|
backoffLimit: 3
|
|
|