# Default values for victoria-metrics-agent.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
  # -- Image pull secrets, that can be shared across multiple helm charts
  imagePullSecrets: []
  image:
    # -- Image registry, that can be shared across multiple helm charts
    registry: "registry.cn-shenzhen.aliyuncs.com/shuhui"
  # -- Openshift security context compatibility configuration
  compatibility:
    openshift:
      adaptSecurityContext: "auto"
  cluster:
    # -- K8s cluster domain suffix, uses for building storage pods' FQDN. Details are [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
    dnsDomain: cluster.local.

# -- Override chart name
nameOverride: "vm-agent"

# -- Override resources fullname
fullnameOverride: "vm-agent"

# -- Replica count     
replicaCount: 1

# -- Specify pod lifecycle
lifecycle: {}

# -- Use an alternate scheduler, e.g. "stork". Check details [here](https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/)
schedulerName: ""

# -- VMAgent mode: daemonSet, deployment, statefulSet
mode: deployment

# -- [K8s DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) specific variables
daemonSet:
  spec: {}

# -- [K8s Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) specific variables
deployment:
  spec:
    # -- Deployment strategy. Check [here](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy) for details
    strategy: {}
     # rollingUpdate:
     #  maxSurge: 25%
     #  maxUnavailable: 25%
     # type: RollingUpdate

# -- [K8s StatefulSet](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) specific variables
statefulSet:
  # -- create cluster of vmagents. Check [here](https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-big-number-of-targets)
  # available since [v1.77.2](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.77.2)
  clusterMode: true
  # -- replication factor for vmagent in cluster mode
  replicationFactor: 1
  spec:
    # -- StatefulSet update strategy. Check [here](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies) for details.
    updateStrategy: {}
      # type: RollingUpdate

image:
  # -- Image registry
  registry: ""
  # -- Image repository
  repository: vmagent
  # -- Image tag, set to `Chart.AppVersion` by default
  tag: "" # rewrites Chart.AppVersion
  # -- Variant of the image to use.
  # e.g. enterprise, scratch
  variant: ""
  # -- Image pull policy
  pullPolicy: IfNotPresent

# -- Image pull secrets
imagePullSecrets: []

# -- Add additional DNS entries to pods hosts file. Check [official documentation](https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/)
hostAliases: []
#  - ip: 192.168.1.1
#    hostNames:
#      - test.example.com
#      - another.example.net

# -- Container working directory
containerWorkingDir: "/"

rbac:
  # -- Enables Role/RoleBinding creation
  create: true

  # -- Role/RoleBinding annotations
  annotations: {}

  # -- Role/RoleBinding labels
  extraLabels: {}

  # -- If true and `rbac.enabled`, will deploy a Role/RoleBinding instead of a ClusterRole/ClusterRoleBinding
  namespaced: false

  # -- additional rules for a role
  extraRules: []

serviceAccount:
  # -- Specifies whether a service account should be created
  create: true
  # -- Annotations to add to the service account
  annotations: {}
  # -- The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name:
  # -- mount API token to pod directly
  automountToken: true

# -- See `kubectl explain poddisruptionbudget.spec` for more or check [official documentation](https://kubernetes.io/docs/tasks/run-application/configure-pdb/)
podDisruptionBudget:
  enabled: false
  # -- min number or percentage of pods that can be unavailable
  minAvailable: 0
  # -- max number or percentage of pods that can be unavailable
  maxUnavailable: 0
  # -- Defines criteria when unhealthy pods should be considered for eviction
  unhealthyPodEvictionPolicy:
  labels: {}

# -- Generates `remoteWrite.*` flags and config maps with value content for values, that are of type list of map.
# Each item should contain `url` param to pass validation.
remoteWrite:
# - url: http://vm-insert:8480/insert/0/prometheus
 - url: http://vmcluster-victoria-metrics-cluster-vminsert.monitoring.svc.cluster.local.:8480/insert/0/prometheus/
#   urlRelabelConfig:
#     - action: keep
#       source_labels: [env]
#       regex: "dev"
# - url: http://prometheus:8480/insert/0/prometheus

# -- VMAgent extra command line arguments
extraArgs:
  envflag.enable: true
  envflag.prefix: VM_
  loggerFormat: json
  httpListenAddr: :8429
  # Enable IPv6 support. Useful for running in IPv6-only Kubernetes clusters
  # enableTCP6: true
  # promscrape.maxScrapeSize: "167772160"

  # Uncomment and specify the port if you want to support any of the protocols:
  # https://docs.victoriametrics.com/victoriametrics/vmagent/#features
  # graphiteListenAddr: ":2003"
  # influxListenAddr: ":8189"
  # opentsdbHTTPListenAddr: ":4242"
  # opentsdbListenAddr: ":4242"

# -- Additional environment variables (ex.: secret tokens, flags). Check [here](https://docs.victoriametrics.com/victoriametrics/#environment-variables) for more details.
env:
  []
  # - name: VM_remoteWrite_basicAuth_password
  #   valueFrom:
  #     secretKeyRef:
  #       name: auth-secret
  #       key: password

# -- Specify alternative source for env variables
envFrom:
  []
  #- configMapRef:
  #    name: special-config

# -- Extra labels for Deployment and Statefulset
extraLabels: {}

# -- Extra labels for Pods only
podLabels: {}

# -- Extra selector labels common for pod and service
selectorLabels: {}

# -- Additional hostPath mounts
extraHostPathMounts:
  []
  # - name: certs-dir
  #   mountPath: /etc/kubernetes/certs
  #   subPath: ""
  #   hostPath: /etc/kubernetes/certs
  #   readOnly: true

# -- Extra Volumes for the pod
extraVolumes:
  []
  # - name: example
  #   configMap:
  #     name: example

# -- Extra Volume Mounts for the container
extraVolumeMounts:
  []
  # - name: example
  #   mountPath: /example

# -- Extra containers to run in a pod with vmagent
extraContainers: []
#   - name: config-reloader
#     image: reloader-image

 # -- Init containers for vmagent
initContainers:
  []
  # - name: example
  #   image: example-image

# -- Security context to be added to pod
podSecurityContext:
  enabled: true
  # fsGroup: 2000

# -- Security context to be added to pod's containers
securityContext:
  enabled: true
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

service:
  # -- Enable agent service
  enabled: false
  # -- Service annotations
  annotations: {}
  # -- Service labels
  extraLabels: {}
  # -- Service ClusterIP
  clusterIP: ""
  # -- Service external IPs. Check [here](https://kubernetes.io/docs/concepts/services-networking/service/#external-ips) for details
  externalIPs: []
  # -- Service load balancer IP
  loadBalancerIP: ""
  # -- Load balancer source range
  loadBalancerSourceRanges: []
  # -- Service port
  servicePort: 8429
  # -- Target port
  targetPort: http
  # nodePort: 30000
  # -- Service type
  type: ClusterIP
  # -- Service IP family policy. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details.
  ipFamilyPolicy: ""
  # -- List of service IP families. Check [here](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services) for details.
  ipFamilies: []
  # -- Service external traffic policy. Check [here](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) for details
  externalTrafficPolicy: ""
  # -- Service internal traffic policy. Check [here](https://kubernetes.io/docs/concepts/services-networking/service/#internal-traffic-policy) for details
  internalTrafficPolicy: ""
  # -- Health check node port for a service. Check [here](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip) for details
  healthCheckNodePort: ""
  # -- Traffic Distribution. Check [Traffic distribution](https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution)
  trafficDistribution: ""
  # -- Extra selector labels common for service only
  selectorLabels: {}

route:
  # -- Enable deployment of HTTPRoute for VMAgent
  enabled: false
  # -- HTTPRoute annotations
  annotations: {}
  # -- HTTPRoute extra labels
  extraLabels: {}
  # -- HTTPGateway objects refs
  parentRefs: []
  # -- Array of hostnames
  hostnames: []
  # -- Extra rules to prepend to route. This is useful when working with annotation based services.
  extraRules: []
  # -- Filters for a default rule in HTTPRoute
  filters: []
  # -- Matches for a default rule in HTTPRoute
  matches:
    - path:
        type: PathPrefix
        value: /

ingress:
  # -- Enable deployment of ingress for agent
  enabled: false
  
  # -- Ingress annotations
  annotations: {}
  #   kubernetes.io/ingress.class: nginx
  #   kubernetes.io/tls-acme: 'true'

  # -- Ingress extra labels
  extraLabels: {}
  
  # -- Array of host objects
  hosts:
    - name: vmagent.local
      path:
        - / 
      port: http
  
  # -- Array of TLS objects
  tls: []
  #   - secretName: vmagent-ingress-tls
  #     hosts:
  #       - vmagent.local

  # -- Ingress controller class name
  ingressClassName: ""

  # -- Ingress path type
  pathType: Prefix

# -- Resource object. Details are [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
resources:
  {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

# -- Annotations to be added to the deployment
annotations: {}

# -- Annotations to be added to pod
podAnnotations: {}

# -- Pod's node selector. Details are [here](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector)
nodeSelector: {}

# -- Node tolerations for server scheduling to nodes with taints. Details are [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/)
tolerations: []

# -- Pod topologySpreadConstraints
topologySpreadConstraints: []
  # - maxSkew: 1
  #   topologyKey: topology.kubernetes.io/zone
  #   whenUnsatisfiable: DoNotSchedule

# -- Pod affinity
affinity: {}

# -- VMAgent [scraping configuration](https://docs.victoriametrics.com/victoriametrics/vmagent/#how-to-collect-metrics-in-prometheus-format)
# use existing configmap if specified
# otherwise .config values will be used
configMap: ""

# -- Priority class to be assigned to the pod(s)
priorityClassName: ""

# -- Enable the host network
hostNetwork: false

serviceMonitor:
  # -- Enable deployment of Service Monitor for server component. This is Prometheus operator object
  enabled: false
  # -- Service Monitor labels
  extraLabels: {}
  # -- Service Monitor annotations
  annotations: {}
  # -- Service Monitor relabelings
  relabelings: []
  # -- Basic auth params for Service Monitor
  basicAuth: {}
  # -- Service Monitor metricRelabelings
  metricRelabelings: []
  # -- Service Monitor targetPort
  targetPort: http
  # interval: 15s
  # scrapeTimeout: 5s
  # -- Commented. HTTP scheme to use for scraping.
  # scheme: https
  # -- Commented. TLS configuration to use when scraping the endpoint
  # tlsConfig:
  #   insecureSkipVerify: true

# -- Empty dir configuration for a case, when persistence is disabled
emptyDir: {}

persistentVolume:
  # -- Create/use Persistent Volume Claim for server component. Empty dir if false
  enabled: false

  # -- Override Persistent Volume Claim name
  name: ""

  # -- StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically
  storageClassName: ""

  # -- Array of access modes. Must match those of existing PV or dynamic provisioner. Details are [here](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
  accessModes:
    - ReadWriteOnce

  # -- VolumeClassAttribute to user for persistent volume 
  volumeAttributesClassName:

  # -- Size of the volume. Should be calculated based on the logs you send and retention policy you set.
  size: 10Gi

  # -- Persistent volume annotations
  annotations: {}

  # -- Persistent volume additional labels
  extraLabels: {}

  # -- Existing Claim name. If defined, PVC must be created manually before volume will be bound
  existingClaim: ""

  # -- Bind Persistent Volume by labels. Must match all labels of targeted PV.
  matchLabels: {}

# -- Horizontal Pod Autoscaling.
# Note that it is not intended to be used for vmagents which perform scraping.
# In order to scale scraping vmagents check [here](https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-big-number-of-targets)
horizontalPodAutoscaling:
  # -- Use HPA for vmagent
  enabled: false
  # -- Maximum replicas for HPA to use to to scale vmagent
  maxReplicas: 10
  # -- Minimum replicas for HPA to use to scale vmagent
  minReplicas: 1
  # -- Metric for HPA to use to scale vmagent
  metrics: []

# -- Vertical Pod Autoscaling.
# Requires VPA CRD (`autoscaling.k8s.io/v1`) to be installed in the cluster.
# Note that VPA should not be used together with HPA on the same resource metrics (CPU/memory).
verticalPodAutoscaling:
  # -- Use VPA for vmagent
  enabled: false
  # -- List of custom recommenders to use
  # recommenders:
  #   - name: 'alternative'
  # -- Update policy for VPA
  # updatePolicy:
  #   updateMode: "Auto"
  #   minReplicas: 1
  # -- Resource policy for VPA
  # resourcePolicy:
  #   containerPolicies:
  #     - containerName: '*'
  #       minAllowed:
  #         cpu: 100m
  #         memory: 128Mi
  #       maxAllowed:
  #         cpu: 1
  #         memory: 500Mi
  #       controlledResources: ["cpu", "memory"]

# -- VMAgent scrape configuration
config:
  # -- Enable config templating
  useTpl: false
  global:
    scrape_interval: 10s

  scrape_configs:
    - job_name: vmagent
      static_configs:
        - targets: ["localhost:8429"]

      ## COPY from Prometheus helm chart https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml

      # Scrape config for API servers.
      #
      # Kubernetes exposes API servers as endpoints to the default/kubernetes
      # service so this uses `endpoints` role and uses relabelling to only keep
      # the endpoints associated with the default/kubernetes service using the
      # default named port `https`. This works for single API server deployments as
      # well as HA API server deployments.
    - job_name: "kubernetes-apiservers"
      kubernetes_sd_configs:
        - role: endpoints
      # Default to scraping over https. If required, just disable this or change to
      # `http`.
      scheme: https
      # This TLS & bearer token file config is used to connect to the actual scrape
      # endpoints for cluster components. This is separate to discovery auth
      # configuration because discovery & scraping are two separate concerns in
      # Prometheus. The discovery auth config is automatic if Prometheus runs inside
      # the cluster. Otherwise, more config options have to be provided within the
      # <kubernetes_sd_config>.
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        # If your node certificates are self-signed or use a different CA to the
        # master CA, then you need to disable certificate verification. Note that
        # certificate verification is an integral part of a secure infrastructure
        # so this should only be disabled in a controlled environment. You can
        # enable certificate verification by commenting the line below.
        #
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      # Keep only the default/kubernetes service endpoints for the https port. This
      # will add targets for each API server which Kubernetes adds an endpoint to
      # the default/kubernetes service.
      relabel_configs:
        - source_labels:
            [
              __meta_kubernetes_namespace,
              __meta_kubernetes_service_name,
              __meta_kubernetes_endpoint_port_name,
            ]
          action: keep
          regex: default;kubernetes;https
    - job_name: "kubernetes-nodes"
      # Default to scraping over https. If required, just disable this or change to
      # `http`.
      scheme: https
      # This TLS & bearer token file config is used to connect to the actual scrape
      # endpoints for cluster components. This is separate to discovery auth
      # configuration because discovery & scraping are two separate concerns in
      # Prometheus. The discovery auth config is automatic if Prometheus runs inside
      # the cluster. Otherwise, more config options have to be provided within the
      # <kubernetes_sd_config>.
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        # If your node certificates are self-signed or use a different CA to the
        # master CA, then you need to disable certificate verification. Note that
        # certificate verification is an integral part of a secure infrastructure
        # so this should only be disabled in a controlled environment. You can
        # enable certificate verification by commenting the line below.
        #
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
        - role: node
      relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
    - job_name: "kubernetes-nodes-cadvisor"
      # Default to scraping over https. If required, just disable this or change to
      # `http`.
      scheme: https
      # This TLS & bearer token file config is used to connect to the actual scrape
      # endpoints for cluster components. This is separate to discovery auth
      # configuration because discovery & scraping are two separate concerns in
      # Prometheus. The discovery auth config is automatic if Prometheus runs inside
      # the cluster. Otherwise, more config options have to be provided within the
      # <kubernetes_sd_config>.
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        # If your node certificates are self-signed or use a different CA to the
        # master CA, then you need to disable certificate verification. Note that
        # certificate verification is an integral part of a secure infrastructure
        # so this should only be disabled in a controlled environment. You can
        # enable certificate verification by commenting the line below.
        #
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
        - role: node
      # This configuration will work only on kubelet 1.7.3+
      # As the scrape endpoints for cAdvisor have changed
      # if you are using older version you need to change the replacement to
      # replacement: /api/v1/nodes/$1:4194/proxy/metrics
      # more info here https://github.com/coreos/prometheus-operator/issues/633
      metrics_path: /metrics/cadvisor
      relabel_configs:
        - action: labelmap
          regex: __meta_kubernetes_node_label_(.+)
      # ignore timestamps of cadvisor's metrics by default
      # more info here https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4697#issuecomment-1656540535
      honor_timestamps: false
    # Scrape config for service endpoints.
    #
    # The relabeling allows the actual service scrape endpoint to be configured
    # via the following annotations:
    #
    # * `prometheus.io/scrape`: Only scrape services that have a value of `true`
    # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need
    # to set this to `https` & most likely set the `tls_config` of the scrape config.
    # * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
    # * `prometheus.io/port`: If the metrics are exposed on a different port to the
    # service then set this appropriately.
    # 
    - job_name: "kubernetes-service-endpoints"
      kubernetes_sd_configs:
        - role: endpointslices
      relabel_configs:
        - action: drop
          source_labels: [__meta_kubernetes_pod_container_init]
          regex: true
        - action: keep_if_equal
          source_labels: [__meta_kubernetes_service_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_scrape]
          action: keep
          regex: true
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_scheme]
          action: replace
          target_label: __scheme__
          regex: (https?)
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels:
            [
              __address__,
              __meta_kubernetes_service_annotation_prometheus_io_port,
            ]
          action: replace
          target_label: __address__
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
        - action: labelmap
          regex: __meta_kubernetes_service_label_(.+)
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
        - source_labels: [__meta_kubernetes_service_name]
          target_label: service
        - source_labels: [__meta_kubernetes_service_name]
          target_label: job
          replacement: ${1}
        - source_labels: [__meta_kubernetes_pod_node_name]
          action: replace
          target_label: node
    # Scrape config for slow service endpoints; same as above, but with a larger
    # timeout and a larger interval
    #
    # The relabeling allows the actual service scrape endpoint to be configured
    # via the following annotations:
    #
    # * `prometheus.io/scrape-slow`: Only scrape services that have a value of `true`
    # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need
    # to set this to `https` & most likely set the `tls_config` of the scrape config.
    # * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
    # * `prometheus.io/port`: If the metrics are exposed on a different port to the
    # service then set this appropriately.
    #
    - job_name: "kubernetes-service-endpoints-slow"
      scrape_interval: 5m
      scrape_timeout: 30s
      kubernetes_sd_configs:
        - role: endpointslices
      relabel_configs:
        - action: drop
          source_labels: [__meta_kubernetes_pod_container_init]
          regex: true
        - action: keep_if_equal
          source_labels: [__meta_kubernetes_service_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_scrape_slow]
          action: keep
          regex: true
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_scheme]
          action: replace
          target_label: __scheme__
          regex: (https?)
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels:
            [
              __address__,
              __meta_kubernetes_service_annotation_prometheus_io_port,
            ]
          action: replace
          target_label: __address__
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
        - action: labelmap
          regex: __meta_kubernetes_service_label_(.+)
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
        - source_labels: [__meta_kubernetes_service_name]
          target_label: service
        - source_labels: [__meta_kubernetes_service_name]
          target_label: job
          replacement: ${1}
        - source_labels: [__meta_kubernetes_pod_node_name]
          action: replace
          target_label: node
    # Example scrape config for probing services via the Blackbox Exporter.
    #
    # The relabeling allows the actual service scrape endpoint to be configured
    # via the following annotations:
    #
    # * `prometheus.io/probe`: Only probe services that have a value of `true`
    #
    - job_name: "kubernetes-services"
      metrics_path: /probe
      params:
        module: [http_2xx]
      kubernetes_sd_configs:
        - role: service
      relabel_configs:
        - source_labels:
            [__meta_kubernetes_service_annotation_prometheus_io_probe]
          action: keep
          regex: true
        - source_labels: [__address__]
          target_label: __param_target
        - target_label: __address__
          replacement: blackbox
        - source_labels: [__param_target]
          target_label: instance
        - action: labelmap
          regex: __meta_kubernetes_service_label_(.+)
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
        - source_labels: [__meta_kubernetes_service_name]
          target_label: service
    # Example scrape config for pods
    #
    # The relabeling allows the actual pod scrape endpoint to be configured via the
    # following annotations:
    #
    # * `prometheus.io/scrape`: Only scrape pods that have a value of `true`
    # * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
    # * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
    #
    - job_name: "kubernetes-pods"
      kubernetes_sd_configs:
        - role: pod
      relabel_configs:
        - action: drop
          source_labels: [__meta_kubernetes_pod_container_init]
          regex: true
        - action: keep_if_equal
          source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
          action: keep
          regex: true
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
          action: replace
          target_label: __metrics_path__
          regex: (.+)
        - source_labels:
            [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
          action: replace
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
          target_label: __address__
        - action: labelmap
          regex: __meta_kubernetes_pod_label_(.+)
        - source_labels: [__meta_kubernetes_pod_name]
          target_label: pod
        - source_labels: [__meta_kubernetes_pod_container_name]
          target_label: container
        - source_labels: [__meta_kubernetes_namespace]
          target_label: namespace
        - source_labels: [__meta_kubernetes_pod_node_name]
          action: replace
          target_label: node
      ## End of COPY

# -- Extra scrape configs that will be appended to `config`
extraScrapeConfigs: []

probe:
  # -- Readiness probe
  readiness:
    httpGet: {}
    initialDelaySeconds: 5
    periodSeconds: 15
  # -- Liveness probe
  liveness:
    tcpSocket: {}
    initialDelaySeconds: 5
    periodSeconds: 15
    timeoutSeconds: 5
  # -- Startup probe
  startup: {}

# -- Add extra specs dynamically to this chart
extraObjects: []

allowedMetricsEndpoints:
  - /metrics

# -- Enterprise license key configuration for VictoriaMetrics enterprise.
# Required only for VictoriaMetrics enterprise. Check docs [here](https://docs.victoriametrics.com/victoriametrics/enterprise/),
# for more information, visit [site](https://victoriametrics.com/products/enterprise/).
# Request a trial license [here](https://victoriametrics.com/products/enterprise/trial/)
# Supported starting from VictoriaMetrics v1.94.0
license:
  # -- License key
  key: ""

  # -- Use existing secret with license key
  secret:
    # -- Existing secret name
    name: ""
    # -- Key in secret with license key
    key: ""
