diff --git a/apps/applicationset-headlamp.yaml b/apps/applicationset-headlamp.yaml index 310a635..c75574c 100644 --- a/apps/applicationset-headlamp.yaml +++ b/apps/applicationset-headlamp.yaml @@ -5,28 +5,45 @@ metadata: namespace: argocd-ops spec: generators: - - git: - repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git - revision: main - files: - - path: "configs/*/config.json" # Il lit le fichier de config - # - path: "headlamp/*/config-dev.json" # Il lit le fichier de config + # Utilise un générateur merge pour combiner : + # 1. Les répertoires Helm existants (détermine quels environnements sont disponibles pour headlamp) + # 2. Les fichiers de config partagés (pour obtenir name et server) + - merge: + generators: + # Premier générateur : scanne uniquement les répertoires Helm qui existent pour headlamp + - git: + repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git + revision: main + directories: + - path: "helm/headlamp/*" + # Deuxième générateur : lit les fichiers de config partagés + # ApplicationSet utilisera seulement les fichiers config.json dont le basename + # correspond à un répertoire Helm trouvé + - git: + repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git + revision: main + files: + - path: "configs/*/config.json" + mergeKeys: + - path.basename template: metadata: - # {{path.basename}} sera remplacé par "dev" ou "prd" name: 'headlamp-{{path.basename}}' spec: project: '{{path.basename}}' source: repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git targetRevision: main - path: 'helm/headlamp/{{path.basename}}' # Pointe vers le répertoire Helm contenant Chart.yaml + # Utilise le chemin du répertoire Helm (premier générateur) + path: '{{path}}' helm: valueFiles: - values.yaml destination: - name: '{{name}}' # Il utilise la variable définie dans config.json - # server: '{{server}}' # Il utilise la variable définie dans config.json # Il utilise la variable définie dans config.json + # Les variables {{name}} et {{server}} viennent du fichier config.json + # (deuxième générateur du merge) + name: '{{name}}' + server: '{{server}}' namespace: 'headlamp-{{path.basename}}' syncPolicy: automated: diff --git a/apps/applicationset-nextcloud.yaml.disable b/apps/applicationset-nextcloud.yaml.disable index 1e153bc..b8c5762 100644 --- a/apps/applicationset-nextcloud.yaml.disable +++ b/apps/applicationset-nextcloud.yaml.disable @@ -5,26 +5,45 @@ metadata: namespace: argocd-ops spec: generators: - - git: - repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git - revision: main - files: - - path: "nextcloud/*/config.json" # Il lit le fichier de config + # Utilise un générateur merge pour combiner : + # 1. Les répertoires Helm existants (détermine quels environnements sont disponibles pour nextcloud) + # 2. Les fichiers de config partagés (pour obtenir name et server) + - merge: + generators: + # Premier générateur : scanne uniquement les répertoires Helm qui existent pour nextcloud + - git: + repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git + revision: main + directories: + - path: "helm/nextcloud/*" + # Deuxième générateur : lit les fichiers de config partagés + # ApplicationSet utilisera seulement les fichiers config.json dont le basename + # correspond à un répertoire Helm trouvé + - git: + repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git + revision: main + files: + - path: "configs/*/config.json" + mergeKeys: + - path.basename template: metadata: - # {{path.basename}} sera remplacé par "dev" ou "prd" name: 'nextcloud-{{path.basename}}' spec: project: '{{path.basename}}' source: repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git targetRevision: main - path: '{{path}}' # Utilise le chemin du dossier trouvé + # Utilise le chemin du répertoire Helm (premier générateur) + path: '{{path}}' helm: valueFiles: - values.yaml destination: - server: '{{server}}' # Il utilise la variable définie dans config.json + # Les variables {{name}} et {{server}} viennent du fichier config.json + # (deuxième générateur du merge) + name: '{{name}}' + server: '{{server}}' namespace: 'nextcloud-{{path.basename}}' syncPolicy: automated: