apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: certificates-apps
  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/certificates/*"
          # Deuxième générateur : lit la config OPS uniquement
          - git:
              repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
              revision: main
              files:
                - path: "configs/ops/config.json"
        mergeKeys:
          - path.basename
  template:
    metadata:
      name: 'certificates-{{path.basename}}'
    spec:
      project: default
      source:
        repoURL: '{{repository}}'
        targetRevision: '{{targetRevision}}'
        path: '{{helmPath}}/certificates/{{path.basename}}'
      destination:
        # Déploie uniquement sur le cluster OPS
        name: '{{name}}'
        namespace: certificates-{{path.basename}}
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
        syncOptions:
          - CreateNamespace=true
