59 lines
2.3 KiB
YAML
59 lines
2.3 KiB
YAML
apiVersion: argoproj.io/v1alpha1
|
|
kind: ApplicationSet
|
|
metadata:
|
|
name: longhorn-apps
|
|
namespace: argocd-ops
|
|
spec:
|
|
generators:
|
|
# Utilise un générateur merge pour combiner :
|
|
# 1. Les répertoires Helm existants (détermine quels environnements sont disponibles pour longhorn)
|
|
# 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 longhorn
|
|
- git:
|
|
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
|
|
revision: main
|
|
directories:
|
|
- path: "helm/longhorn/*"
|
|
# 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:
|
|
# Utilise path.basename qui vient du générateur git (plus fiable que environment du JSON)
|
|
name: 'longhorn-{{path.basename}}'
|
|
spec:
|
|
# Utilise path.basename pour le projet (ou {{environment}} si disponible dans le JSON)
|
|
project: '{{path.basename}}'
|
|
source:
|
|
repoURL: '{{repository}}'
|
|
targetRevision: '{{targetRevision}}'
|
|
# Construit explicitement le chemin Helm à partir du basename
|
|
path: '{{helmPath}}/longhorn/{{path.basename}}'
|
|
helm:
|
|
valueFiles:
|
|
- values.yaml
|
|
destination:
|
|
# Les variables {{name}} et {{server}} viennent du fichier config.json
|
|
# (deuxième générateur du merge)
|
|
name: '{{name}}'
|
|
# server: '{{server}}'
|
|
namespace: 'longhorn-{{path.basename}}'
|
|
syncPolicy:
|
|
automated:
|
|
prune: true
|
|
selfHeal: true
|
|
syncOptions:
|
|
- CreateNamespace=true
|
|
# Si le hook pre-upgrade est bloqué, décommentez la ligne suivante pour l'ignorer :
|
|
- SkipHooks=true
|
|
# Note: Les hooks de pré-upgrade Longhorn peuvent être importants,
|
|
# vérifiez d'abord pourquoi le Job est bloqué avant de les ignorer |