## @param spec The metrics-server configuration
## @skip spec
spec:
  # Default values for metrics-server.
  # This is a YAML-formatted file.
  # Declare variables to be passed into your templates.
  ## @param image The image to use for the metrics-server
  ## @skip image
  image:
    repository: registry.k8s.io/metrics-server/metrics-server
    # Overrides the image tag whose default is v{{ .Chart.AppVersion }}
    tag: ""
    pullPolicy: IfNotPresent
  ## @param imagePullSecrets Image pull secrets
  ## @skip imagePullSecrets
  imagePullSecrets: []
  # - name: registrySecretName
  ## @param nameOverride The name to use for the metrics-server
  ## @skip nameOverride
  nameOverride: ""
  ## @param fullnameOverride The full name to use for the metrics-server
  ## @skip fullnameOverride
  fullnameOverride: ""
  ## @param serviceAccount The service account to use for the metrics-server
  ## @skip serviceAccount
  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: []
  ## @param rbac Enable RBAC resources
  ## @skip rbac
  rbac:
    # Specifies whether RBAC resources should be created
    create: true
    pspEnabled: false
  ## @param apiService Enable the v1beta1.metrics.k8s.io API service
  ## @skip apiService
  apiService:
    # Specifies if the v1beta1.metrics.k8s.io API service should be created.
    #
    # You typically want this enabled! If you disable API service creation you have to
    # manage it outside of this chart for e.g horizontal pod autoscaling to
    # work with this release.
    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: ""
  ## @param commonLabels Labels to add to all resources
  ## @skip commonLabels
  commonLabels: {}
  ## @param podLabels Labels to add to the metrics-server pod
  ## @skip podLabels
  podLabels: {}
  ## @param podAnnotations Annotations to add to the metrics-server pod
  ## @skip podAnnotations
  podAnnotations: {}
  ## @param podSecurityContext Security context for the metrics-server pod
  ## @skip podSecurityContext
  podSecurityContext: {}
  ## @param securityContext Security context for the metrics-server container
  ## @skip securityContext
  securityContext:
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    runAsNonRoot: true
    runAsUser: 1000
    seccompProfile:
      type: RuntimeDefault
    capabilities:
      drop:
        - ALL
  ## @param priorityClassName The name of the priority class to use
  ## @skip priorityClassName
  priorityClassName: system-cluster-critical
  ## @param containerPort The port to use for the metrics-server
  ## @skip containerPort
  containerPort: 10250
  ## @param hostNetwork Use the host's network namespace
  ## @skip hostNetwork
  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
  ## @param replicas The number of replicas to use for the metrics-server
  ## @skip replicas
  replicas: 1
  ## @param revisionHistoryLimit The number of revisions to keep for the metrics-server
  ## @skip revisionHistoryLimit
  revisionHistoryLimit: 10
  ## @param updateStrategy The update strategy to use for the metrics-server
  ## @skip updateStrategy
  updateStrategy: {}
  #   type: RollingUpdate
  #   rollingUpdate:
  #     maxSurge: 0
  #     maxUnavailable: 1
  ## @param podDisruptionBudget The pod disruption budget to use for the metrics-server
  ## @skip podDisruptionBudget
  podDisruptionBudget:
    # https://kubernetes.io/docs/tasks/run-application/configure-pdb/
    enabled: false
    minAvailable:
    maxUnavailable:
  ## @param defaultArgs The default arguments to use for the metrics-server
  ## @skip defaultArgs
  defaultArgs:
    - --cert-dir=/tmp
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --kubelet-use-node-status-port
    - --metric-resolution=15s
    - --kubelet-insecure-tls
  ## @param args The arguments to use for the metrics-server
  ## @skip args
  args: []
  ## @param livenessProbe The liveness probe for the metrics-server
  ## @skip livenessProbe
  livenessProbe:
    httpGet:
      path: /livez
      port: https
      scheme: HTTPS
    initialDelaySeconds: 0
    periodSeconds: 10
    failureThreshold: 3
  ## @param readinessProbe The readiness probe for the metrics-server
  ## @skip readinessProbe
  readinessProbe:
    httpGet:
      path: /readyz
      port: https
      scheme: HTTPS
    initialDelaySeconds: 20
    periodSeconds: 10
    failureThreshold: 3
  ## @param service Enable a service for the metrics
  ## @skip service
  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"
  ## @param addonResizer The image to use for the metrics-server
  ## @skip addonResizer
  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
  ## @param metrics Enable Prometheus metrics
  ## @skip metrics
  metrics:
    enabled: false
  ## @param serviceMonitor Enable a service monitor for the metrics
  ## @skip serviceMonitor
  serviceMonitor:
    enabled: false
    additionalLabels: {}
    interval: 1m
    scrapeTimeout: 10s
    metricRelabelings: []
    relabelings: []
  ## @param resources Resource limits and requests for the metrics-server
  ## @skip resources
  # See https://github.com/kubernetes-sigs/metrics-server#scaling
  resources:
    requests:
      cpu: 100m
      memory: 200Mi
    limits:
      cpu: 100m
      memory: 200Mi
  ## @param extraVolumeMounts Additional volume mounts
  ## @skip extraVolumeMounts
  extraVolumeMounts: []
  ## @param extraVolumes Additional volumes
  ## @skip extraVolumes
  extraVolumes: []
  ## @param nodeSelector Node labels for pod assignment
  ## @skip nodeSelector
  nodeSelector: {}
  ## @param tolerations Tolerations for pod assignment
  ## @skip tolerations
  tolerations: []
  ## @param affinity Affinity for pod assignment
  ## @skip affinity
  affinity: {}
  ## @param topologySpreadConstraints Topology spread constraints
  ## @skip topologySpreadConstraints
  topologySpreadConstraints: []
  ## @param dnsConfig DNS configuration for the pod
  ## @skip dnsConfig
  dnsConfig: {}
  ## @param deploymentAnnotations Annotations to add to the deployment
  ## @skip deploymentAnnotations
  # Annotations to add to the deployment
  deploymentAnnotations: {}
  ## @param schedulerName The name of the scheduler to use
  ## @skip schedulerName
  schedulerName: ""
  ## @param tmpVolume The temporary volume to use
  ## @skip tmpVolume
  tmpVolume:
    emptyDir: {}
