add merge generator
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user