add merge generator

This commit is contained in:
2026-01-11 06:36:01 +01:00
parent 372676745d
commit ab296592e4
2 changed files with 54 additions and 18 deletions

View File

@@ -5,28 +5,45 @@ metadata:
namespace: argocd-ops namespace: argocd-ops
spec: spec:
generators: generators:
- git: # Utilise un générateur merge pour combiner :
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git # 1. Les répertoires Helm existants (détermine quels environnements sont disponibles pour headlamp)
revision: main # 2. Les fichiers de config partagés (pour obtenir name et server)
files: - merge:
- path: "configs/*/config.json" # Il lit le fichier de config generators:
# - path: "headlamp/*/config-dev.json" # Il lit le fichier de config # 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: template:
metadata: metadata:
# {{path.basename}} sera remplacé par "dev" ou "prd"
name: 'headlamp-{{path.basename}}' name: 'headlamp-{{path.basename}}'
spec: spec:
project: '{{path.basename}}' project: '{{path.basename}}'
source: source:
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
targetRevision: main 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: helm:
valueFiles: valueFiles:
- values.yaml - values.yaml
destination: destination:
name: '{{name}}' # Il utilise la variable définie dans config.json # Les variables {{name}} et {{server}} viennent du fichier config.json
# server: '{{server}}' # Il utilise la variable définie dans config.json # Il utilise la variable définie dans config.json # (deuxième générateur du merge)
name: '{{name}}'
server: '{{server}}'
namespace: 'headlamp-{{path.basename}}' namespace: 'headlamp-{{path.basename}}'
syncPolicy: syncPolicy:
automated: automated:

View File

@@ -5,26 +5,45 @@ metadata:
namespace: argocd-ops namespace: argocd-ops
spec: spec:
generators: generators:
- git: # Utilise un générateur merge pour combiner :
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git # 1. Les répertoires Helm existants (détermine quels environnements sont disponibles pour nextcloud)
revision: main # 2. Les fichiers de config partagés (pour obtenir name et server)
files: - merge:
- path: "nextcloud/*/config.json" # Il lit le fichier de config 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: template:
metadata: metadata:
# {{path.basename}} sera remplacé par "dev" ou "prd"
name: 'nextcloud-{{path.basename}}' name: 'nextcloud-{{path.basename}}'
spec: spec:
project: '{{path.basename}}' project: '{{path.basename}}'
source: source:
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
targetRevision: main targetRevision: main
path: '{{path}}' # Utilise le chemin du dossier trouvé # Utilise le chemin du répertoire Helm (premier générateur)
path: '{{path}}'
helm: helm:
valueFiles: valueFiles:
- values.yaml - values.yaml
destination: 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}}' namespace: 'nextcloud-{{path.basename}}'
syncPolicy: syncPolicy:
automated: automated: