# Large cluster values for kubelet-volume-stats-exporter
# This example shows configuration optimized for large clusters (100+ nodes)

image:
  repository: docker.io/vbeaucha/kubelet-volume-stats-exporter
  tag: v1.0.0
  pullPolicy: IfNotPresent

imagePullSecrets:
  - name: regcred

config:
  kubeletEndpoint: "https://127.0.0.1:10250"
  metricsPort: 8080
  # Longer scrape interval to reduce load
  scrapeInterval: "60s"
  insecureSkipTLSVerify: false
  tokenPath: "/var/run/secrets/kubernetes.io/serviceaccount/token"

# Higher resource limits for large clusters
resources:
  limits:
    cpu: 1000m
    memory: 512Mi
  requests:
    cpu: 200m
    memory: 256Mi

# Enable ServiceMonitor with longer interval
serviceMonitor:
  enabled: true
  interval: 60s
  scrapeTimeout: 30s
  labels:
    prometheus: kube-prometheus

# More lenient probes for large clusters
livenessProbe:
  httpGet:
    path: /health
    port: metrics
  initialDelaySeconds: 20
  periodSeconds: 60
  timeoutSeconds: 10
  failureThreshold: 5

readinessProbe:
  httpGet:
    path: /ready
    port: metrics
  initialDelaySeconds: 15
  periodSeconds: 30
  timeoutSeconds: 10
  failureThreshold: 5

# Run on all nodes including control plane
tolerations:
  - effect: NoSchedule
    operator: Exists
  - effect: NoExecute
    operator: Exists

nodeSelector:
  kubernetes.io/os: linux

daemonset:
  priorityClassName: system-node-critical
  hostNetwork: true
  hostPID: false
  # Slower rollout for large clusters
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 5  # Update 5 nodes at a time
  podAnnotations:
    prometheus.io/scrape: "true"
    prometheus.io/port: "8080"
    prometheus.io/path: "/metrics"

# Spread pods across zones for better availability
affinity:
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
              - key: app.kubernetes.io/name
                operator: In
                values:
                  - kubelet-volume-stats-exporter
          topologyKey: topology.kubernetes.io/zone

