apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: monitoring
  namespace: argocd
spec:
  project: default
  destination:
    server: https://kubernetes.default.svc
    namespace: monitoring
  source:
    repoURL: ghcr.io/purisev
    chart: universal-helm-chart
    targetRevision: 3.3.0
    helm:
      releaseName: monitoring
      values: |
        integrations:
          monitoring:
            defaults:
              enabled: true
              provider: prometheus
              discovery: crd
              type: service
              port: metrics
              path: /metrics
              interval: 30s
              scrapeTimeout: 10s
              exposeService:
                enabled: true
                port: 9090
                targetPort: 9090
        deployments:
          api:
            enabled: true
            replicaCount: 2
            image:
              repository: ghcr.io/example/api
              tag: v1.4.2
            service:
              enabled: true
              ports:
                http:
                  port: 80
                  targetPort: 8080
            metrics:
              enabled: true
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                memory: 256Mi
          worker:
            enabled: true
            replicaCount: 3
            image:
              repository: ghcr.io/example/worker
              tag: v0.9.0
            service:
              enabled: false
            metrics:
              enabled: true
              type: pod
            resources:
              requests:
                cpu: 100m
                memory: 256Mi
              limits:
                memory: 512Mi
          legacy:
            enabled: true
            replicaCount: 1
            image:
              repository: ghcr.io/example/legacy
              tag: v2.1.0
            service:
              enabled: true
              ports:
                http:
                  port: 80
                  targetPort: 8080
                metrics:
                  port: 9091
                  targetPort: 9091
            metrics:
              enabled: true
              discovery: annotations
              port: 9091
            resources:
              requests:
                cpu: 50m
                memory: 128Mi
              limits:
                memory: 256Mi
          vm-flavoured:
            enabled: true
            replicaCount: 1
            image:
              repository: ghcr.io/example/vm-app
              tag: v1.0.0
            service:
              enabled: true
              ports:
                http:
                  port: 80
                  targetPort: 8080
            metrics:
              enabled: true
              provider: victoriametrics
            resources:
              requests:
                cpu: 50m
                memory: 128Mi
              limits:
                memory: 256Mi
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true
      - ServerSideApply=true
