Files
argocd/apps/applicationset-longhorn.yaml
2026-01-13 00:13:28 +01:00

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