Files
argocd/apps/applicationset-external-devices.yaml
2026-01-23 00:01:39 +01:00

53 lines
1.6 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: external-devices
namespace: argocd-ops
spec:
generators:
# Les certificats sont créés UNIQUEMENT dans le cluster OPS
# qui a cert-manager installé et accès à Internet pour Let's Encrypt
- merge:
generators:
# Premier générateur : scanne les répertoires Helm pour les certificats
- git:
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
revision: main
directories:
- path: "helm/external-devices/*"
# Deuxième générateur : lit la config OPS uniquement
- git:
repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
revision: main
files:
- path: "configs/*/config.json"
mergeKeys:
- path.basename
template:
metadata:
name: external-devices-{{path.basename}}
annotations:
# Forcer ArgoCD à gérer les Endpoints
argocd.argoproj.io/sync-options: "ServerSideApply=true"
spec:
project: '{{path.basename}}'
source:
repoURL: '{{repository}}'
targetRevision: '{{targetRevision}}'
path: '{{helmPath}}/external-devices/{{path.basename}}'
helm:
valueFiles:
- values.yaml
destination:
name: '{{name}}'
namespace: 'traefik-{{path.basename}}'
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
# ServerSideApply pour mieux gérer les Endpoints
- ServerSideApply=true