SELinux mount labelling
Volumes from opted-in CSI drivers get one SELinux context at mount time instead of recursive relabelling. Pods with different labels sharing a volume may fail; seLinuxChangePolicy: Recursive keeps the old behaviour.
Kubernetes minor release · “Garhwal”
Garhwal makes KYAML, the metrics.k8s.io API, Pod certificates, ClusterTrustBundles, in-tree storage version migration and SELinux mount labelling GA, brings HPA scale-to-zero to beta, and deprecates kube-dns and kube-proxy's ipvs mode.
Supported for another 12 months, until 28 Oct 2027.
Volumes from opted-in CSI drivers get one SELinux context at mount time instead of recursive relabelling. Pods with different labels sharing a volume may fail; seLinuxChangePolicy: Recursive keeps the old behaviour.
While its cache warms, kube-apiserver no longer floods etcd: it serves bounded requests and answers others with HTTP 429, so clients should honour Retry-After and back off.
Now on by default. With object or external metrics, an HPA can use minReplicas: 0 to idle a workload until work arrives. CPU and memory metrics cannot trigger it.
The resource metrics API behind HPA and kubectl top gets a stable v1 after almost nine years in beta; v1beta1 stays usable during the transition.
Pods can receive private keys, X.509 certificates and trust bundles through projected volumes, issued by a signer controller that you deploy.
The built-in StorageVersionMigration API (storagemigration.k8s.io/v1) is on by default and rewrites stored objects after storage version or encryption-at-rest changes, replacing manual get/replace scripts.
Summarised in our own words from the official “Kubernetes v1.37: Garhwal” announcement (67 tracked enhancements), © The Kubernetes Authors, CC BY 4.0.
Only alpha or off-by-default beta APIs were removed: they matter only if you switched them on with --runtime-config.
| Kind | API version | Stops being served | Use instead |
|---|---|---|---|
| ClusterTrustBundle | certificates.k8s.io/v1alpha1 alpha · off |
1.37 | certificates.k8s.io/v1 |
| IPAddress | networking.k8s.io/v1beta1 beta · off by default | 1.37 | networking.k8s.io/v1 |
| ServiceCIDR | networking.k8s.io/v1beta1 beta · off by default | 1.37 | networking.k8s.io/v1 |
| VolumeAttributesClass | storage.k8s.io/v1beta1 beta · off by default | 1.37 | storage.k8s.io/v1 |
From the release announcement; our wording.
Still served in 1.37, but the API server answers with a deprecation warning and a removal is scheduled.
| Kind | API version | Stops being served | Use instead |
|---|---|---|---|
| MutatingAdmissionPolicy | admissionregistration.k8s.io/v1beta1 beta · off by default | 1.40 | admissionregistration.k8s.io/v1 |
| MutatingAdmissionPolicyBinding | admissionregistration.k8s.io/v1beta1 beta · off by default | 1.40 | admissionregistration.k8s.io/v1 |
| ClusterTrustBundle | certificates.k8s.io/v1beta1 beta · off by default | 1.40 | certificates.k8s.io/v1 |
| PodCertificateRequest | certificates.k8s.io/v1beta1 beta · off by default | 1.40 | certificates.k8s.io/v1 |
| StorageVersionMigration | storagemigration.k8s.io/v1beta1 beta · off by default | 1.40 | storagemigration.k8s.io/v1 |
ClusterTrustBundle certificates.k8s.io/v1PodCertificateRequest certificates.k8s.io/v1DeviceTaintRule resource.k8s.io/v1StorageVersionMigration storagemigration.k8s.io/v1
From the official version skew policy as it stands today.
The API server must not skip minor versions.
| Service | Available | End of standard support | End of extended support |
|---|---|---|---|
| Upstream Kubernetes | 26 Aug 2026 | 28 Oct 2027 | — |
| Amazon EKS | 1 Oct 2026 | 1 Dec 2027 | 1 Dec 2028 |
| Google Kubernetes Engine | 22 Oct 2026 | 22 Dec 2027 | 22 Oct 2028 |
| Azure Kubernetes Service | 2026-10 | 31 Oct 2027 | 31 Oct 2028 |
As published by each provider; see managed Kubernetes support for what “extended” means on each and when we last checked.