storageClass:
  enabled: true
  name: vmcluster-storage
  provisioner: disk.csi.azure.com
  parameters:
    kind: Managed
    fsType: ext4
    skuName: PremiumV2_LRS
    DiskIOPSReadWrite: '3000'
    DiskMBpsReadWrite: '125'
  reclaimPolicy: Delete
  volumeBindingMode: WaitForFirstConsumer
  allowVolumeExpansion: true
serviceAccount:
  annotations:
    azure.workload.identity/client-id: TMPL_VMCLUSTER_ROLE
vmbackup:
  enabled: true
  mode: manager
  image: TMPL_IMAGE_REGISTRY/observability/vmbackupmanager:f82e69ce98fb871f5996a1f9ea92e4480943b68c
  resources:
    requests:
      cpu: '0.05'
      memory: 32Mi
    limits:
      cpu: '0.5'
      memory: 512Mi
  imagePullPolicy: Always
  vendor: azure
  dst: azblob://TMPL_VMCLUSTER_BUCKET_NAME/1/vmcluster/$(MY_POD_NAME)
  backupRetention: 1y
  maxBytesPerSecond: '262144000'
  extraEnv:
  - name: AZURE_STORAGE_ACCOUNT_NAME
    value: TMPL_STORAGE_ACCOUNT_NAME
  - name: AZURE_USE_DEFAULT_CREDENTIAL
    value: 'true'
vmcluster:
  name: vmcluster
  namespace: observability
  spec:
    replicationFactor: 2
    retentionPeriod: '1'
    vminsert:
      extraArgs:
        maxLabelsPerTimeseries: '100'
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app.kubernetes.io/name
                  operator: In
                  values:
                  - vminsert
              topologyKey: kubernetes.io/hostname
            weight: 3
      image: {}
      podMetadata:
        labels:
          owner: infra
      replicaCount: 2
      nodeSelector:
        node_type: worker
    vmselect:
      persistentVolumeClaimRetentionPolicy:
        whenDeleted: Delete
        whenScaled: Delete
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app.kubernetes.io/name
                  operator: In
                  values:
                  - vmselect
              topologyKey: kubernetes.io/hostname
            weight: 2
      cacheMountPath: /select-cache
      image: {}
      podMetadata:
        labels:
          owner: infra
      replicaCount: 2
      resources:
        requests:
          cpu: '0.05'
          memory: 64Mi
        limits:
          cpu: '0.2'
          memory: 256Mi
      storage:
        volumeClaimTemplate:
          metadata: {}
          spec:
            resources:
              requests:
                storage: 10Gi
          status: {}
      nodeSelector:
        node_type: worker
    vmstorage:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app.kubernetes.io/name
                  operator: In
                  values:
                  - vmstorage
              topologyKey: kubernetes.io/hostname
            weight: 1
      image: {}
      podMetadata:
        labels:
          owner: infra
          azure.workload.identity/use: 'true'
      replicaCount: 2
      resources:
        requests:
          cpu: '0.5'
          memory: 2Gi
        limits:
          cpu: '1'
          memory: 4Gi
      storage:
        volumeClaimTemplate:
          metadata: {}
          spec:
            resources:
              requests:
                storage: 10Gi
          status: {}
      storageDataPath: /vm-data
      nodeSelector:
        node_type: worker
      containers: []
ingress:
  dataplaneMetricsRead:
    enabled: true
    name: dataplane-metrics-read
    namespace: observability
    annotations:
      nginx.ingress.kubernetes.io/cors-allow-methods: GET,POST
      nginx.ingress.kubernetes.io/cors-allow-origin: "*"
      nginx.ingress.kubernetes.io/enable-cors: "true"
      nginx.ingress.kubernetes.io/use-regex: "true"
      nginx.ingress.kubernetes.io/configuration-snippet: |
        access_by_lua_block {
          local dynamic_route = require("dynamic_route")
          dynamic_route.rewrite_url("useO11yID")
        }
    ingressClassName: TMPL_NGINX_READ_INGRESS_CLASS
    rules:
      - http:
          paths:
            - backend:
                service:
                  name: vmselect-vmcluster
                  port:
                    number: 8481
              path: /([0-9a-fA-F-]{36})/metrics/(api/v1/.+)
              pathType: ImplementationSpecific
  dataplaneInsert:
    enabled: true
    name: o11y-dataplane-insert
    namespace: observability
    annotations:
      nginx.ingress.kubernetes.io/rewrite-target: /insert/multitenant/prometheus/$2
      nginx.ingress.kubernetes.io/use-regex: "true"
    ingressClassName: TMPL_NGINX_WRITE_INGRESS_CLASS
    rules:
      - http:
          paths:
            - backend:
                service:
                  name: vminsert-vmcluster
                  port:
                    number: 8480
              path: /multitenant(/|$)(.*)
              pathType: ImplementationSpecific
  dataplaneReadInternal:
    enabled: true
    name: dataplane-read-internal
    namespace: observability
    annotations:
      nginx.ingress.kubernetes.io/use-regex: "true"
      nginx.ingress.kubernetes.io/configuration-snippet: |
        access_by_lua_block {
          local dynamic_route = require("dynamic_route")
          dynamic_route.rewrite_url("useO11yID")
        }
    ingressClassName: TMPL_NGINX_READ_INGRESS_CLASS
    rules:
      - http:
          paths:
            - backend:
                service:
                  name: vmselect-vmcluster
                  port:
                    number: 8481
              path: /internal/v2/metrics/(.*)/(api/v1/.*)
              pathType: ImplementationSpecific
  dataplaneReadClinicMultitenantInternal:
    enabled: true
    name: dataplane-read-clinic-multitenant-internal
    namespace: observability
    annotations:
      nginx.ingress.kubernetes.io/use-regex: "true"
      nginx.ingress.kubernetes.io/rewrite-target: /select/multitenant/prometheus/$1
    ingressClassName: TMPL_NGINX_READ_INGRESS_CLASS
    rules:
      - http:
          paths:
            - backend:
                service:
                  name: vmselect-vmcluster
                  port:
                    number: 8481
              path: /internal/v2/metrics/multitenant/(.*)
              pathType: ImplementationSpecific
