---
# yaml-language-server: $schema=https://ks.hsn.dev/operator.victoriametrics.com/vmagent_v1beta1.json
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAgent
metadata:
  name: victoria
spec:
  scrapeInterval: 60s
  selectAllByDefault: true
  statefulMode: true
  useStrictSecurity: true
  vmAgentExternalLabelName: prometheus
  externalLabels:
    cluster: theshire
  extraArgs:
    promscrape.maxScrapeSize: "33554432" # 32MiB
    promscrape.streamParse: "true"
    # Do not store original labels in vmagent's memory by default. This reduces the amount of memory used by vmagent
    # but makes vmagent debugging UI less informative. See: https://docs.victoriametrics.com/vmagent/#relabel-debug
    promscrape.dropOriginalLabels: "true"
  remoteWrite:
    - url: http://vmsingle-victoria.observability.svc:8429/api/v1/write
  resources:
    requests:
      cpu: 3m
    limits:
      memory: 512Mi
  statefulStorage:
    volumeClaimTemplate:
      spec:
        storageClassName: openebs-hostpath
        resources:
          requests:
            storage: 1Gi
  securityContext:
    runAsUser: 65534
    runAsGroup: 65534
    runAsNonRoot: true
    fsGroup: 65534
  topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: kubernetes.io/hostname
      whenUnsatisfiable: DoNotSchedule
      labelSelector:
        matchLabels:
          app.kubernetes.io/instance: stack
          app.kubernetes.io/name: vmagent