apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: cert-manager-webhook-ovh
  namespace: argocd-ops
spec:
  generators:
    # Le webhook OVH est déployé UNIQUEMENT sur le cluster OPS
    - merge:
        generators:
          # Premier générateur : scanne les répertoires Helm pour le webhook OVH
          - git:
              repoURL: https://git.gkdomaine.fr/kubernetes/argocd.git
              revision: main
              directories:
                - path: "helm/cert-manager-webhook-ovh/*"
          # 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: 'cert-manager-webhook-ovh-{{path.basename}}'
    spec:
      project: default
      source:
        repoURL: '{{repository}}'
        targetRevision: '{{targetRevision}}'
        path: '{{helmPath}}/cert-manager-webhook-ovh/{{path.basename}}'
        helm:
          valueFiles:
            - values.yaml
      destination:
        # Déploie uniquement sur le cluster OPS
        name: '{{name}}'
        namespace: cert-manager-{{path.basename}}
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
        syncOptions:
          - CreateNamespace=true

