- name: metrics-server
  namespace: kube-system
  create_namespace: true
  chart_ref: {{ .Modules.Observability.Monitoring.MetricsServer.ChartRef }}
  chart_version: {{ .Modules.Observability.Monitoring.MetricsServer.ChartVersion }}
  {{- if and .Modules.Observability.Enabled .Modules.Observability.Monitoring.Enabled }}
  release_state: "present"
  {{- else }}
  release_state: "absent"
  {{- end }}
  values:
    image:
      repository: {{.Modules.Observability.Monitoring.MetricsServer.Image }}
      tag: "{{ .Modules.Observability.Monitoring.MetricsServer.Tag }}"
      pullPolicy: IfNotPresent

    imagePullSecrets: []
    # - name: registrySecretName

    nameOverride: ""
    fullnameOverride: ""

    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: ""
      # The list of secrets mountable by this service account.
      # See https://kubernetes.io/docs/reference/labels-annotations-taints/#enforce-mountable-secrets
      secrets: []

    rbac:
      # Specifies whether RBAC resources should be created
      create: true
      pspEnabled: false

    apiService:
      create: true
      # Annotations to add to the API service
      annotations: {}
      # Specifies whether to skip TLS verification
      insecureSkipTLSVerify: true
      # The PEM encoded CA bundle for TLS verification
      caBundle: ""

    commonLabels: {}
    podLabels:
      "app.kubernetes.io/component": "metrics-server"
    podAnnotations: {}

    podSecurityContext: {}

    securityContext:
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      runAsNonRoot: true
      runAsUser: 1000
      seccompProfile:
        type: RuntimeDefault
      capabilities:
        drop:
          - ALL

    priorityClassName: system-cluster-critical

    containerPort: 10250

    hostNetwork:
      # Specifies if metrics-server should be started in hostNetwork mode.
      #
      # You would require this enabled if you use alternate overlay networking for pods and
      # API server unable to communicate with metrics-server. As an example, this is required
      # if you use Weave network on EKS
      enabled: false

    replicas: 1

    revisionHistoryLimit:

    updateStrategy: {}
    #   type: RollingUpdate
    #   rollingUpdate:
    #     maxSurge: 0
    #     maxUnavailable: 1

    podDisruptionBudget:
      # https://kubernetes.io/docs/tasks/run-application/configure-pdb/
      enabled: false
      minAvailable:
      maxUnavailable:

    defaultArgs:
      - --cert-dir=/tmp
      - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
      - --kubelet-use-node-status-port
      - --metric-resolution=15s
      - --kubelet-insecure-tls

    args: []

    livenessProbe:
      httpGet:
        path: /livez
        port: https
        scheme: HTTPS
      initialDelaySeconds: 0
      periodSeconds: 10
      failureThreshold: 3

    readinessProbe:
      httpGet:
        path: /readyz
        port: https
        scheme: HTTPS
      initialDelaySeconds: 20
      periodSeconds: 10
      failureThreshold: 3

    service:
      type: ClusterIP
      port: 443
      annotations: {}
      labels: {}
      #  Add these labels to have metrics-server show up in `kubectl cluster-info`
      #  kubernetes.io/cluster-service: "true"
      #  kubernetes.io/name: "Metrics-server"

    addonResizer:
      enabled: false
      image:
        repository: registry.k8s.io/autoscaling/addon-resizer
        tag: 1.8.20
      securityContext:
        allowPrivilegeEscalation: false
        readOnlyRootFilesystem: true
        runAsNonRoot: true
        runAsUser: 1000
        seccompProfile:
          type: RuntimeDefault
        capabilities:
          drop:
            - ALL
      resources:
        requests:
          cpu: 40m
          memory: 25Mi
        limits:
          cpu: 40m
          memory: 25Mi
      nanny:
        cpu: 0m
        extraCpu: 1m
        memory: 0Mi
        extraMemory: 2Mi
        minClusterSize: 100
        pollPeriod: 300000
        threshold: 5

    metrics:
      enabled: true

    serviceMonitor:
      enabled: true
      additionalLabels: {}
      interval: 1m
      scrapeTimeout: 10s
      metricRelabelings: []
      relabelings: []

    # See https://github.com/kubernetes-sigs/metrics-server#scaling
    resources:
      requests:
        cpu: 100m
        memory: 200Mi
      # limits:
      #   cpu:
      #   memory:

    extraVolumeMounts: []

    extraVolumes: []

    nodeSelector: {}

    tolerations: []

    affinity: {}

    topologySpreadConstraints: []

    dnsConfig: {}

    # Annotations to add to the deployment
    deploymentAnnotations: {}

    schedulerName: ""

    tmpVolume:
      emptyDir: {}

