···11+# Patterns to ignore when building packages.
22+# This supports shell glob matching, relative path matching, and
33+# negation (prefixed with !). Only one pattern per line.
44+.DS_Store
55+# Common VCS dirs
66+.git/
77+.gitignore
88+.bzr/
99+.bzrignore
1010+.hg/
1111+.hgignore
1212+.svn/
1313+# Common backup files
1414+*.swp
1515+*.bak
1616+*.tmp
1717+*.orig
1818+*~
1919+# Various IDEs
2020+.project
2121+.idea/
2222+*.tmproj
2323+.vscode/
···11+# Metrics Server Helm Chart Changelog
22+33+> [!NOTE]
44+> All notable changes to this project will be documented in this file; the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
55+66+<!--
77+### Added - For new features.
88+### Changed - For changes in existing functionality.
99+### Deprecated - For soon-to-be removed features.
1010+### Removed - For now removed features.
1111+### Fixed - For any bug fixes.
1212+### Security - In case of vulnerabilities.
1313+-->
1414+1515+## [UNRELEASED]
1616+1717+## [3.13.0] - TBC
1818+1919+### Added
2020+2121+- Add chart options to secure the connection between Metrics Server and the Kubernetes API Server. ([#1288](https://github.com/kubernetes-sigs/metrics-server/pull/1288)) _@mkilchhofer_
2222+- Add `unhealthyPodEvictionPolicy` to the Metrics Server PDB as a user enabled feature. ([#1574](https://github.com/kubernetes-sigs/metrics-server/pull/1574)) @peterabarr
2323+2424+### Changed
2525+2626+- Update the _Addon Resizer_ OCI image to [`1.8.23`](https://github.com/kubernetes/autoscaler/releases/tag/addon-resizer-1.8.23). ([#1626](https://github.com/kubernetes-sigs/metrics-server/pull/1626)) _@stevehipwell_
2727+- Update the _Metrics Server_ OCI image to [`0.8.0`](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.0). ([#1683](https://github.com/kubernetes-sigs/metrics-server/pull/1683)) _@stevehipwell_
2828+2929+## [3.12.2] - 2024-10-07
3030+3131+### Added
3232+3333+- Explicitly added the app protocol to the service. ([#1540](https://github.com/kubernetes-sigs/metrics-server/pull/1540)) _@
3434+seankhliao_
3535+3636+### Changed
3737+3838+- Updated the _Metrics Server_ OCI image to [v0.7.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.7.2). ([#1568](https://github.com/kubernetes-sigs/metrics-server/pull/1568)) _@stevehipwell_
3939+- Updated the _addonResizer_ OCI image to [1.8.21](https://github.com/kubernetes/autoscaler/releases/tag/addon-resizer-1.8.21). ([#1504](https://github.com/kubernetes-sigs/metrics-server/pull/1504)) _@jimmy-ungerman_
4040+4141+### Fixed
4242+4343+- Fixed nanny's RoleBinding which contained a hard-coded namespace instead of the Helm's release namespace. ([#1479](https://github.com/kubernetes-sigs/metrics-server/pull/1479)) _@the-technat_
4444+- Fixed the `ServiceMonitor` job label. ([#1568](https://github.com/kubernetes-sigs/metrics-server/pull/1568)) _@stevehipwell_
4545+4646+## [3.12.1] - 2024-04-05
4747+4848+### Changed
4949+5050+- Updated the _Metrics Server_ OCI image to [v0.7.1](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.7.1). ([#1461](https://github.com/kubernetes-sigs/metrics-server/pull/1461)) _@stevehipwell_
5151+- Changed `Deployment` templating to ignore `schedulerName` when value is empty. ([#1475](https://github.com/kubernetes-sigs/metrics-server/pull/1475)) _@senges_
5252+5353+## [3.12.0] - 2024-02-07
5454+5555+### Changed
5656+5757+- Updated the _Metrics Server_ OCI image to [v0.7.0](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.7.0). ([#1414](https://github.com/kubernetes-sigs/metrics-server/pull/1414)) [@stevehipwell](https://github.com/stevehipwell)
5858+- Updated the _addon-resizer_ OCI image to [v1.8.20](https://github.com/kubernetes/autoscaler/releases/tag/addon-resizer-1.8.20). ([#1414](https://github.com/kubernetes-sigs/metrics-server/pull/1414)) [@stevehipwell](https://github.com/stevehipwell)
5959+6060+## [3.11.0] - 2023-08-03
6161+6262+### Added
6363+6464+- Added default _Metrics Server_ resource requests.
6565+6666+### Changed
6767+6868+- Updated the _Metrics Server_ OCI image to [v0.6.4](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.4).
6969+- Updated the _addon-resizer_ OCI image to [v1.8.19](https://github.com/kubernetes/autoscaler/releases/tag/addon-resizer-1.8.19).
7070+7171+## [3.10.0] - 2023-04-12
7272+7373+### Added
7474+7575+- Added support for running under PodSecurity restricted.
7676+7777+### Fixed
7878+7979+- Fixed `auth-reader` role binding namespace to always use `kube-system`.
8080+- Fixed addon-resizer configuration.
8181+- Fixed container port default not having been updated to `10250`.
8282+8383+## [3.9.0] - 2023-03-28
8484+8585+### Added
8686+8787+- Added autoscaling support via the addon-resizer.
8888+8989+### Changed
9090+9191+- Updated the _Metrics Server_ OCI image to [v0.6.3](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.3).
9292+9393+### Fixed
9494+9595+- Fixed service labels/annotations.
9696+9797+## [3.8.4] - 2023-03-06
9898+9999+### Changed
100100+101101+- Changed the image registry location to `registry.k8s.io`.
102102+103103+## [3.8.3] - 2022-12-08
104104+105105+### Added
106106+107107+- Added support for topologySpreadConstraints.
108108+- Always set resource namespaces explicitly.
109109+- Allow configuring TLS on the APIService.
110110+- Enabled service monitor relabelling.
111111+- Added ability to set the scheduler name.
112112+- Added support for common labels.
113113+114114+### Changed
115115+116116+- Updated the _Metrics Server_ OCI image to [v0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2).
117117+118118+## [3.8.2] - 2022-02-23
119119+120120+### Changed
121121+122122+- Changed chart to allow probes to be turned off completely (this is not advised unless you know what you're doing).
123123+124124+## [3.8.1] - 2022-02-09
125125+126126+### Changed
127127+128128+- Updated the _Metrics Server_ OCI image to [v0.6.1](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.1).
129129+130130+## [3.8.0] - 2022-02-08
131131+132132+### Added
133133+134134+- Added support for unauthenticated access to the /metrics endpoint.
135135+- Added optional _Prometheus Operator_ `ServiceMonitor`.
136136+137137+### Changed
138138+139139+- Updated the _Metrics Server_ OCI image to [v0.6.0](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.0).
140140+141141+## [3.7.0] - 2021-11-18
142142+143143+### Changed
144144+145145+- Updated the _Metrics Server_ OCI image to [v0.5.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.5.2).
146146+147147+## [3.6.0] - 2021-10-18
148148+149149+### Added
150150+151151+- Added new `defaultArgs`` value to enable overriding the default arguments.
152152+153153+### Changed
154154+155155+- Updated the _Metrics Server_ OCI image to [v0.5.1](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.5.1).
156156+157157+## [3.5.0] - 2021-10-07
158158+159159+### Added
160160+161161+- Added initial Helm chart release from official repo.
162162+163163+<!--
164164+RELEASE LINKS
165165+-->
166166+[UNRELEASED]: https://github.com/kubernetes-sigs/metrics-server/tree/master/charts/metrics-server
167167+[3.13.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.13.0
168168+[3.12.2]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.12.2
169169+[3.12.1]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.12.1
170170+[3.12.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.12.0
171171+[3.11.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.11.0
172172+[3.10.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.10.0
173173+[3.9.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.9.0
174174+[3.8.4]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.8.4
175175+[3.8.3]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.8.3
176176+[3.8.2]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.8.2
177177+[3.8.1]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.8.1
178178+[3.8.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.8.0
179179+[3.7.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.7.0
180180+[3.6.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.6.0
181181+[3.5.0]: https://github.com/kubernetes-sigs/metrics-server/releases/tag/metrics-server-helm-chart-3.5.0
···11+annotations:
22+ artifacthub.io/changes: |
33+ - kind: added
44+ description: "Add chart options to secure the connection between Metrics Server and the Kubernetes API Server."
55+ - kind: added
66+ description: "Add `unhealthyPodEvictionPolicy` to the Metrics Server PDB as a user enabled feature."
77+ - kind: changed
88+ description: "Update the _Addon Resizer_ OCI image to [`1.8.23`](https://github.com/kubernetes/autoscaler/releases/tag/addon-resizer-1.8.23)."
99+ - kind: changed
1010+ description: "Update the _Metrics Server_ OCI image to [`0.8.0`](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.0)."
1111+apiVersion: v2
1212+appVersion: 0.8.0
1313+description: Metrics Server is a scalable, efficient source of container resource
1414+ metrics for Kubernetes built-in autoscaling pipelines.
1515+home: https://github.com/kubernetes-sigs/metrics-server
1616+icon: https://avatars.githubusercontent.com/u/36015203?s=400&v=4
1717+keywords:
1818+- kubernetes
1919+- metrics-server
2020+- metrics
2121+maintainers:
2222+- name: stevehipwell
2323+ url: https://github.com/stevehipwell
2424+- name: krmichel
2525+ url: https://github.com/krmichel
2626+- name: endrec
2727+ url: https://github.com/endrec
2828+name: metrics-server
2929+sources:
3030+- https://github.com/kubernetes-sigs/metrics-server
3131+type: application
3232+version: 3.13.0
+190
helm/system-setup/charts/metrics-server/README.md
···11+# Kubernetes Metrics Server
22+33+[Metrics Server](https://github.com/kubernetes-sigs/metrics-server/) is a scalable, efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
44+55+## Installing the Chart
66+77+Before you can install the chart you will need to add the `metrics-server` repo to [Helm](https://helm.sh/).
88+99+```shell
1010+helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
1111+```
1212+1313+After you've installed the repo you can install the chart.
1414+1515+```shell
1616+helm upgrade --install metrics-server metrics-server/metrics-server
1717+```
1818+1919+## Configuration
2020+2121+The following table lists the configurable parameters of the _Metrics Server_ chart and their default values.
2222+2323+| Parameter | Description | Default |
2424+| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
2525+| `image.repository` | Image repository. | `registry.k8s.io/metrics-server/metrics-server` |
2626+| `image.tag` | Image tag, will override the default tag derived from the chart app version. | `""` |
2727+| `image.pullPolicy` | Image pull policy. | `IfNotPresent` |
2828+| `imagePullSecrets` | Image pull secrets. | `[]` |
2929+| `nameOverride` | Override the `name` of the chart. | `nil` |
3030+| `fullnameOverride` | Override the `fullname` of the chart. | `nil` |
3131+| `serviceAccount.create` | If `true`, create a new service account. | `true` |
3232+| `serviceAccount.annotations` | Annotations to add to the service account. | `{}` |
3333+| `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the full name template. | `nil` |
3434+| `serviceAccount.secrets` | The list of secrets mountable by this service account. See <https://kubernetes.io/docs/reference/labels-annotations-taints/#enforce-mountable-secrets> | `[]` |
3535+| `rbac.create` | If `true`, create the RBAC resources. | `true` |
3636+| `rbac.pspEnabled` | If `true`, create a pod security policy resource, unless Kubernetes version is 1.25 or later. | `false` |
3737+| `apiService.create` | If `true`, create the `v1beta1.metrics.k8s.io` API service. 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. | `true` |
3838+| `apiService.annotations` | Annotations to add to the API service | `{}` |
3939+| `apiService.insecureSkipTLSVerify` | Specifies whether to skip TLS verification (NOTE: this setting is not a proxy for the `--kubelet-insecure-tls` metrics-server flag) | `true` |
4040+| `apiService.caBundle` | The PEM encoded CA bundle for TLS verification | `""` |
4141+| `commonLabels` | Labels to add to each object of the chart. | `{}` |
4242+| `podLabels` | Labels to add to the pod. | `{}` |
4343+| `podAnnotations` | Annotations to add to the pod. | `{}` |
4444+| `podSecurityContext` | Security context for the pod. | `{}` |
4545+| `securityContext` | Security context for the _metrics-server_ container. | _See values.yaml_ |
4646+| `priorityClassName` | Priority class name to use. | `system-cluster-critical` |
4747+| `containerPort` | port for the _metrics-server_ container. | `10250` |
4848+| `hostNetwork.enabled` | If `true`, start _metric-server_ 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. | `false` |
4949+| `replicas` | Number of replicas to run. | `1` |
5050+| `revisionHistoryLimit` | Number of revisions to keep. | `nil` |
5151+| `updateStrategy` | Customise the default update strategy. | `{}` |
5252+| `podDisruptionBudget.enabled` | If `true`, create `PodDisruptionBudget` resource. | `{}` |
5353+| `podDisruptionBudget.minAvailable` | Set the `PodDisruptionBudget` minimum available pods. | `nil` |
5454+| `podDisruptionBudget.maxUnavailable` | Set the `PodDisruptionBudget` maximum unavailable pods. | `nil` |
5555+| `podDisruptionBudget.maxUnavailable` | Set the `PodDisruptionBudget` maximum unavailable pods. | `nil` |
5656+| `podDisruptionBudget.unhealthyPodEvictionPolicy` | Unhealthy pod eviction policy for the PDB. | `nil` |
5757+| `defaultArgs` | Default arguments to pass to the _metrics-server_ command. | See _values.yaml_ |
5858+| `args` | Additional arguments to pass to the _metrics-server_ command. | `[]` |
5959+| `livenessProbe` | Liveness probe. | See _values.yaml_ |
6060+| `readinessProbe` | Readiness probe. | See _values.yaml_ |
6161+| `service.type` | Service type. | `ClusterIP` |
6262+| `service.port` | Service port. | `443` |
6363+| `service.annotations` | Annotations to add to the service. | `{}` |
6464+| `service.labels` | Labels to add to the service. | `{}` |
6565+| `addonResizer.enabled` | If `true`, run the addon-resizer as a sidecar to automatically scale resource requests with cluster size. | `false` |
6666+| `addonResizer.securityContext` | Security context for the _metrics_server_container. | _See values.yaml |
6767+| `addonResizer.image.repository` | addon-resizer image repository | `registry.k8s.io/autoscaling/addon-resizer` |
6868+| `addonResizer.image.tag` | addon-resizer image tag | `1.8.23` |
6969+| `addonResizer.resources` | Resource requests and limits for the _nanny_ container. | `{ requests: { cpu: 40m, memory: 25Mi }, limits: { cpu: 40m, memory: 25Mi } }` |
7070+| `addonResizer.nanny.cpu` | The base CPU requirement. | `0m` |
7171+| `addonResizer.nanny.extraCPU` | The amount of CPU to add per node. | `1m` |
7272+| `addonResizer.nanny.memory` | The base memory requirement. | `0Mi` |
7373+| `addonResizer.nanny.extraMemory` | The amount of memory to add per node. | `2Mi` |
7474+| `addonResizer.nanny.minClusterSize` | Specifies the smallest number of nodes resources will be scaled to. | `100` |
7575+| `addonResizer.nanny.pollPeriod` | The time, in milliseconds, to poll the dependent container. | `300000` |
7676+| `addonResizer.nanny.threshold` | A number between 0-100. The dependent's resources are rewritten when they deviate from expected by more than threshold. | `5` |
7777+| `metrics.enabled` | If `true`, allow unauthenticated access to `/metrics`. | `false` |
7878+| `serviceMonitor.enabled` | If `true`, create a _Prometheus_ service monitor. This needs `metrics.enabled` to be `true`. | `false` |
7979+| `serviceMonitor.additionalLabels` | Additional labels to be set on the ServiceMonitor. | `{}` |
8080+| `serviceMonitor.metricRelabelings` | _Prometheus_ metric relabeling. | `[]` |
8181+| `serviceMonitor.relabelings` | _Prometheus_ relabeling. | `[]` |
8282+| `serviceMonitor.interval` | _Prometheus_ scrape frequency. | `1m` |
8383+| `serviceMonitor.scrapeTimeout` | _Prometheus_ scrape timeout. | `10s` |
8484+| `resources` | Resource requests and limits for the _metrics-server_ container. See <https://github.com/kubernetes-sigs/metrics-server#scaling> | `{ requests: { cpu: 100m, memory: 200Mi }}` |
8585+| `extraVolumeMounts` | Additional volume mounts for the _metrics-server_ container. | `[]` |
8686+| `extraVolumes` | Additional volumes for the pod. | `[]` |
8787+| `nodeSelector` | Node labels for pod assignment. | `{}` |
8888+| `tolerations` | Tolerations for pod assignment. | `[]` |
8989+| `affinity` | Affinity for pod assignment. | `{}` |
9090+| `topologySpreadConstraints` | Pod Topology Spread Constraints. | `[]` |
9191+| `deploymentAnnotations` | Annotations to add to the deployment. | `{}` |
9292+| `schedulerName` | scheduler to set to the deployment. | `""` |
9393+| `dnsConfig` | Set the dns configuration options for the deployment. | `{}` |
9494+| `tmpVolume` | Volume to be mounted in Pods for temporary files. | `{"emptyDir":{}}` |
9595+| `tls.type` | TLS option to use. Either use `metrics-server` for self-signed certificates, `helm`, `cert-manager` or `existingSecret`. | `"metrics-server"` |
9696+| `tls.clusterDomain` | Kubernetes cluster domain. Used to configure Subject Alt Names for the certificate when using `tls.type` `helm` or `cert-manager`. | `"cluster.local"` |
9797+| `tls.certManager.addInjectorAnnotations` | Automatically add the cert-manager.io/inject-ca-from annotation to the APIService resource. | `true` |
9898+| `tls.certManager.existingIssuer.enabled` | Use an existing cert-manager issuer | `false` |
9999+| `tls.certManager.existingIssuer.kind` | Kind of the existing cert-manager issuer | `"Issuer"` |
100100+| `tls.certManager.existingIssuer.name` | Name of the existing cert-manager issuer | `"my-issuer"` |
101101+| `tls.certManager.duration` | Set the requested duration (i.e. lifetime) of the Certificate. | `""` |
102102+| `tls.certManager.renewBefore` | How long before the currently issued certificate’s expiry cert-manager should renew the certificate. | `""` |
103103+| `tls.certManager.annotations` | Add extra annotations to the Certificate resource | `{}` |
104104+| `tls.certManager.labels` | Add extra labels to the Certificate resource | `{}` |
105105+| `tls.helm.certDurationDays` | Cert validity duration in days | `365` |
106106+| `tls.helm.lookup` | Use helm lookup function to reuse Secret created in previous helm install | `true` |
107107+| `tls.existingSecret.lookup` | Use helm lookup function to provision `apiService.caBundle` | `true` |
108108+| `tls.existingSecret.name` | Name of the existing Secret to use for TLS | `""` |
109109+110110+## Hardening metrics-server
111111+112112+By default, metrics-server is using a self-signed certificate which is generated during startup. The `APIservice` resource is registered with `.spec.insecureSkipTLSVerify` set to `true` as you can see here:
113113+114114+```yaml
115115+apiVersion: apiregistration.k8s.io/v1
116116+kind: APIService
117117+metadata:
118118+ name: v1beta1.metrics.k8s.io
119119+spec:
120120+ #..
121121+ insecureSkipTLSVerify: true # <-- see here
122122+ service:
123123+ name: metrics-server
124124+ #..
125125+```
126126+127127+To harden metrics-server, you have these options described in the following section.
128128+129129+### Option 1: Let helm generate a self-signed certificate
130130+131131+This option is probably the easiest solution for you. We delegate the process to generate a self-signed certificate to helm.
132132+As helm generates them during deploy time, helm can also inject the `apiService.caBundle` for you.
133133+134134+**The only disadvantage of using this method is that it is not GitOps friendly** (e.g. Argo CD). If you are using one of these
135135+GitOps tools with drift detection, it will always detect changes. However if you are deploying the helm chart via Terraform
136136+for example (or maybe even Flux), this method is perfectly fine.
137137+138138+To use this method, please setup your values file like this:
139139+140140+```yaml
141141+apiService:
142142+ insecureSkipTLSVerify: false
143143+tls:
144144+ type: helm
145145+```
146146+147147+### Option 2: Use cert-manager
148148+149149+> **Requirement:** cert-manager needs to be installed before you install metrics-server
150150+151151+To use this method, please setup your values file like this:
152152+153153+```yaml
154154+apiService:
155155+ insecureSkipTLSVerify: false
156156+tls:
157157+ type: cert-manager
158158+```
159159+160160+There are other optional parameters, if you want to customize the behavior of the certificate even more.
161161+162162+### Option 3: Use existing Secret
163163+164164+This option allows you to reuse an existing Secret. This Secrets can have an arbitrary origin, e.g.
165165+166166+- Created via kubectl / Terraform / etc.
167167+- Synced from a secret management solution like AWS Secrets Manager, HashiCorp Vault, etc.
168168+169169+When using this type of TLS option, the keys `tls.key` and the `tls.crt` key must be provided in the data field of the
170170+existing Secret.
171171+172172+You need to pass the certificate of the issuing CA (or the certificate itself) via `apiService.caBundle` to ensure
173173+proper configuration of the `APIservice` resource. Otherwise you cannot set `apiService.insecureSkipTLSVerify` to
174174+`false`.
175175+176176+To use this method, please setup your values file like this:
177177+178178+```yaml
179179+apiService:
180180+ insecureSkipTLSVerify: false
181181+ caBundle: |
182182+ -----BEGIN CERTIFICATE-----
183183+ ...
184184+ -----END CERTIFICATE-----
185185+186186+tls:
187187+ type: existingSecret
188188+ existingSecret:
189189+ name: metrics-server-existing
190190+```
···11+### Added
22+33+- Add chart options to secure the connection between Metrics Server and the Kubernetes API Server. ([#1288](https://github.com/kubernetes-sigs/metrics-server/pull/1288)) _@mkilchhofer_
44+- Add `unhealthyPodEvictionPolicy` to the Metrics Server PDB as a user enabled feature. ([#1574](https://github.com/kubernetes-sigs/metrics-server/pull/1574)) @peterabarr
55+66+### Changed
77+88+- Update the _Addon Resizer_ OCI image to [`1.8.23`](https://github.com/kubernetes/autoscaler/releases/tag/addon-resizer-1.8.23). ([#1626](https://github.com/kubernetes-sigs/metrics-server/pull/1626)) _@stevehipwell_
99+- Update the _Metrics Server_ OCI image to [`0.8.0`](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.0). ([#1683](https://github.com/kubernetes-sigs/metrics-server/pull/1683)) _@stevehipwell_
···11+# Default values for metrics-server.
22+# This is a YAML-formatted file.
33+# Declare variables to be passed into your templates.
44+55+image:
66+ repository: registry.k8s.io/metrics-server/metrics-server
77+ # Overrides the image tag whose default is v{{ .Chart.AppVersion }}
88+ tag: ""
99+ pullPolicy: IfNotPresent
1010+1111+imagePullSecrets: []
1212+# - name: registrySecretName
1313+1414+nameOverride: ""
1515+fullnameOverride: ""
1616+1717+serviceAccount:
1818+ # Specifies whether a service account should be created
1919+ create: true
2020+ # Annotations to add to the service account
2121+ annotations: {}
2222+ # The name of the service account to use.
2323+ # If not set and create is true, a name is generated using the fullname template
2424+ name: ""
2525+ # The list of secrets mountable by this service account.
2626+ # See https://kubernetes.io/docs/reference/labels-annotations-taints/#enforce-mountable-secrets
2727+ secrets: []
2828+2929+rbac:
3030+ # Specifies whether RBAC resources should be created
3131+ create: true
3232+ # Note: PodSecurityPolicy will not be created when Kubernetes version is 1.25 or later.
3333+ pspEnabled: false
3434+3535+apiService:
3636+ # Specifies if the v1beta1.metrics.k8s.io API service should be created.
3737+ #
3838+ # You typically want this enabled! If you disable API service creation you have to
3939+ # manage it outside of this chart for e.g horizontal pod autoscaling to
4040+ # work with this release.
4141+ create: true
4242+ # Annotations to add to the API service
4343+ annotations: {}
4444+ # Specifies whether to skip TLS verification
4545+ insecureSkipTLSVerify: true
4646+ # The PEM encoded CA bundle for TLS verification
4747+ caBundle: ""
4848+4949+commonLabels: {}
5050+podLabels: {}
5151+podAnnotations: {}
5252+5353+podSecurityContext: {}
5454+5555+securityContext:
5656+ allowPrivilegeEscalation: false
5757+ readOnlyRootFilesystem: true
5858+ runAsNonRoot: true
5959+ runAsUser: 1000
6060+ seccompProfile:
6161+ type: RuntimeDefault
6262+ capabilities:
6363+ drop:
6464+ - ALL
6565+6666+priorityClassName: system-cluster-critical
6767+6868+containerPort: 10250
6969+7070+hostNetwork:
7171+ # Specifies if metrics-server should be started in hostNetwork mode.
7272+ #
7373+ # You would require this enabled if you use alternate overlay networking for pods and
7474+ # API server unable to communicate with metrics-server. As an example, this is required
7575+ # if you use Weave network on EKS
7676+ enabled: false
7777+7878+replicas: 1
7979+8080+revisionHistoryLimit:
8181+8282+updateStrategy: {}
8383+# type: RollingUpdate
8484+# rollingUpdate:
8585+# maxSurge: 0
8686+# maxUnavailable: 1
8787+8888+podDisruptionBudget:
8989+ # https://kubernetes.io/docs/tasks/run-application/configure-pdb/
9090+ enabled: false
9191+ minAvailable:
9292+ maxUnavailable:
9393+ unhealthyPodEvictionPolicy:
9494+9595+defaultArgs:
9696+ - --cert-dir=/tmp
9797+ - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
9898+ - --kubelet-use-node-status-port
9999+ - --metric-resolution=15s
100100+101101+args: []
102102+103103+livenessProbe:
104104+ httpGet:
105105+ path: /livez
106106+ port: https
107107+ scheme: HTTPS
108108+ initialDelaySeconds: 0
109109+ periodSeconds: 10
110110+ failureThreshold: 3
111111+112112+readinessProbe:
113113+ httpGet:
114114+ path: /readyz
115115+ port: https
116116+ scheme: HTTPS
117117+ initialDelaySeconds: 20
118118+ periodSeconds: 10
119119+ failureThreshold: 3
120120+121121+service:
122122+ type: ClusterIP
123123+ port: 443
124124+ annotations: {}
125125+ labels: {}
126126+ # Add these labels to have metrics-server show up in `kubectl cluster-info`
127127+ # kubernetes.io/cluster-service: "true"
128128+ # kubernetes.io/name: "Metrics-server"
129129+130130+addonResizer:
131131+ enabled: false
132132+ image:
133133+ repository: registry.k8s.io/autoscaling/addon-resizer
134134+ tag: 1.8.23
135135+ securityContext:
136136+ allowPrivilegeEscalation: false
137137+ readOnlyRootFilesystem: true
138138+ runAsNonRoot: true
139139+ runAsUser: 1000
140140+ seccompProfile:
141141+ type: RuntimeDefault
142142+ capabilities:
143143+ drop:
144144+ - ALL
145145+ resources:
146146+ requests:
147147+ cpu: 40m
148148+ memory: 25Mi
149149+ limits:
150150+ cpu: 40m
151151+ memory: 25Mi
152152+ nanny:
153153+ cpu: 0m
154154+ extraCpu: 1m
155155+ memory: 0Mi
156156+ extraMemory: 2Mi
157157+ minClusterSize: 100
158158+ pollPeriod: 300000
159159+ threshold: 5
160160+161161+metrics:
162162+ enabled: false
163163+164164+serviceMonitor:
165165+ enabled: false
166166+ additionalLabels: {}
167167+ interval: 1m
168168+ scrapeTimeout: 10s
169169+ metricRelabelings: []
170170+ relabelings: []
171171+172172+# See https://github.com/kubernetes-sigs/metrics-server#scaling
173173+resources:
174174+ requests:
175175+ cpu: 100m
176176+ memory: 200Mi
177177+ # limits:
178178+ # cpu:
179179+ # memory:
180180+181181+extraVolumeMounts: []
182182+183183+extraVolumes: []
184184+185185+nodeSelector: {}
186186+187187+tolerations: []
188188+189189+affinity: {}
190190+191191+topologySpreadConstraints: []
192192+193193+dnsConfig: {}
194194+195195+# Annotations to add to the deployment
196196+deploymentAnnotations: {}
197197+198198+schedulerName: ""
199199+200200+tmpVolume:
201201+ emptyDir: {}
202202+203203+tls:
204204+ # Set the TLS method to use. Supported values:
205205+ # - `metrics-server` : Metrics-server will generate a self-signed certificate
206206+ # - `helm` : Helm will generate a self-signed certificate
207207+ # - `cert-manager` : Use cert-manager.io to create and maintain the certificate
208208+ # - `existingSecret` : Reuse an existing secret. No new secret will be created
209209+ type: "metrics-server"
210210+ # Kubernetes cluster domain. Used to configure Subject Alt Names for the certificate
211211+ clusterDomain: cluster.local
212212+213213+ certManager:
214214+ # Automatically add the cert-manager.io/inject-ca-from annotation to the APIService resource.
215215+ # See https://cert-manager.io/docs/concepts/ca-injector
216216+ addInjectorAnnotations: true
217217+ existingIssuer:
218218+ # Use an existing cert-manager issuer
219219+ enabled: false
220220+ # Kind of the existing cert-manager issuer
221221+ kind: "Issuer"
222222+ # Name of the existing cert-manager issuer
223223+ name: "my-issuer"
224224+ # Set the requested duration (i.e. lifetime) of the Certificate.
225225+ # See https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
226226+ duration: ""
227227+ # How long before the currently issued certificate’s expiry cert-manager should renew the certificate.
228228+ # See https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
229229+ renewBefore: ""
230230+ # Add extra annotations to the Certificate resource
231231+ annotations: {}
232232+ # Add extra labels to the Certificate resource
233233+ labels: {}
234234+235235+ helm:
236236+ # Use helm lookup function to reuse Secret created in previous helm install
237237+ lookup: true
238238+ # Cert validity duration in days
239239+ certDurationDays: 365
240240+241241+ existingSecret:
242242+ # Name of the existing Secret to use for TLS
243243+ name: ""
244244+ # Use helm lookup function to provision `apiService.caBundle`
245245+ lookup: true