apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: o11y-external-secrets-operator-tcds
spec:
  syncPolicy:
    preserveResourcesOnDeletion: true
  generators:
    - list:
        elements:
          # o11y regional prod
          - env: prod-o11y-regional-ap-east-1
            cluster: o11y-prod-regional-ap-east-1
  template:
    metadata:
      name: "{{env}}-external-secrets-operator"
    spec:
      project: default # Use default project as a start
      source:
        chart: external-secrets 
        repoURL: https://charts.external-secrets.io
        targetRevision: 0.8.3
        helm:
          releaseName: external-secrets
          values: |
            nodeSelector:
              node_type: worker
            resources:
              limits:
                cpu: 500m
                memory: 256Mi
              requests:
                cpu: 100m
                memory: 128Mi
            webhook:
              nodeSelector:
                node_type: worker
              resources:
                limits:
                  cpu: 500m
                  memory: 256Mi
                requests:
                  cpu: 100m
                  memory: 128Mi
            certController:
              nodeSelector:
                node_type: worker
              resources:
                limits:
                  cpu: 500m
                  memory: 256Mi
                requests:
                  cpu: 100m
                  memory: 128Mi
      destination:
        name: "{{cluster}}"
        namespace: external-secrets
      syncPolicy:
        automated: {}
        syncOptions:
        - CreateNamespace=true
        retry:
          limit: 5
          backoff:
            duration: 5s
            factor: 2
            maxDuration: 3m
