apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: minio
  finalizers:
  - resources-finalizer.argocd.argoproj.io
spec:
  project: default
  source:
    repoURL: 'registry-1.docker.io/bitnamicharts'
    path: minio
    targetRevision: 16.*.*
    chart: minio
    helm:
      parameters:
        - name: auth.rootPassword
          value: 'InnoHubMINIO_2024!'
        - name: ingress.enabled
          value: 'true'
        - name: ingress.hostname
          value: 's3.innovation-hub-niedersachsen.de'
        - name: ingress.tls
          value: 'true'
        - name: ingress.annotations.kubernetes\.io\/ingress\.class
          value: traefik
        - name: ingress.annotations.traefik\.ingress\.kubernetes\.io\/router\.tls
          value: 'true'
          forceString: true
        - name: ingress.annotations.cert-manager\.io\/cluster-issuer
          value: 'lets-encrypt'
        - name: ingress.annotations.ingress\.secrets
          value: 's3.innovation-hub-niedersachsen.de-tls'
        - name: ingress.annotations.traefik\.ingress\.kubernetes\.io\/router\.entrypoints
          value: websecure
        - name: apiIngress.enabled
          value: 'true'
        - name: apiIngress.hostname
          value: 'api-s3.innovation-hub-niedersachsen.de'
        - name: apiIngress.tls
          value: 'true'
        - name: apiIngress.annotations.traefik\.ingress\.kubernetes\.io\/router\.entrypoints
          value: 'websecure'
        - name: apiIngress.annotations.kubernetes\.io\/ingress\.class
          value: traefik
        - name: apiIngress.annotations.traefik\.ingress\.kubernetes\.io\/router\.tls
          value: 'true'
          forceString: true
        - name: apiIngress.annotations.cert-manager\.io\/cluster-issuer
          value: 'lets-encrypt'
        - name: apiIngress.annotations.ingress\.secrets
          value: 'api-s3.innovation-hub-niedersachsen.de-tls'  
  destination:
    server: 'https://kubernetes.default.svc'
    namespace: minio
  syncPolicy:
    managedNamespaceMetadata:
      labels: 
        pod-security.kubernetes.io/enforce: "privileged"
    automated:
      selfHeal: true
      prune: true
    syncOptions:
      - CreateNamespace=true
      - RespectIgnoreDifferences=true