Skip to content

Support for Kubernetes 1.34#12883

Merged
gardener-prow[bot] merged 23 commits intogardener:masterfrom
tobschli:kubernetes-134
Nov 3, 2025
Merged

Support for Kubernetes 1.34#12883
gardener-prow[bot] merged 23 commits intogardener:masterfrom
tobschli:kubernetes-134

Conversation

@tobschli
Copy link
Copy Markdown
Member

@tobschli tobschli commented Sep 3, 2025

How to categorize this PR?

/area open-source
/kind enhancement

What this PR does / why we need it:

Support for Kubernetes v1.34.

Which issue(s) this PR fixes:

Part of #12814

Special notes for your reviewer:

We performed the changes by following the new Kubernetes version guide and comparing how changes have been done for previous Kubernetes versions, e.g., #10472.

⚠️ This PR only contains the Gardener part for supporting 1.34 - there will/must be follow-up PRs for each extension repository where individual support gets added.

Code changes have been tested in the following scenarios using the local provider:

  • Create/Delete a new (normal/workerless) Shoot cluster with 1.34.0
  • Upgrade an existing (normal/workerless) Shoot cluster to 1.34.0

Release note:

Gardener can now support clusters with Kubernetes version 1.34. To allow creation/update of 1.34 clusters you will have to update the version of your provider extension(s) to a version that supports 1.34 as well. Please consult the respective releases and notes in the provider extension's repository.
Gardener can now support clusters with Kubernetes version 1.34. Extension developers have to prepare individual extensions as well to work with 1.34.

@gardener-prow
Copy link
Copy Markdown
Contributor

gardener-prow Bot commented Sep 3, 2025

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@gardener-prow gardener-prow Bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. area/open-source Open Source (community, enablement, contributions, conferences, CNCF, etc.) related kind/enhancement Enhancement, improvement, extension labels Sep 3, 2025
@gardener-prow gardener-prow Bot added the cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. label Sep 3, 2025
@tobschli
Copy link
Copy Markdown
Member Author

tobschli commented Sep 3, 2025

/invite @ScheererJ

@gardener-prow gardener-prow Bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Sep 3, 2025
@gardener-prow gardener-prow Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 15, 2025
@gardener-prow gardener-prow Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 22, 2025
@tobschli tobschli marked this pull request as ready for review September 22, 2025 07:45
@gardener-prow gardener-prow Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 22, 2025
@gardener-prow gardener-prow Bot requested a review from vitanovs September 22, 2025 07:45
@tobschli tobschli marked this pull request as draft September 22, 2025 07:45
@gardener-prow gardener-prow Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 22, 2025
@tobschli tobschli marked this pull request as ready for review September 22, 2025 07:45
@gardener-prow gardener-prow Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 22, 2025
@tobschli
Copy link
Copy Markdown
Member Author

/hold

Still WIP, but marked as ready for review in order to let the tests run

@gardener-prow gardener-prow Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 22, 2025
@vpnachev
Copy link
Copy Markdown
Member

Shouldn't this PR update the k8s.io/* dependencies from v0.33.* to v0.34.*?

@tobschli
Copy link
Copy Markdown
Member Author

Shouldn't this PR update the k8s.io/* dependencies from v0.33.* to v0.34.*?

We just have not until now, this is still WIP

@tobschli tobschli changed the title Support for Kubernetes 1.34 [WIP] Support for Kubernetes 1.34 Sep 23, 2025
@gardener-prow gardener-prow Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 23, 2025
@tobschli
Copy link
Copy Markdown
Member Author

new Kubernetes version guide

Seems like in the past this was done as part of a separate PR (ref).
We could also do it here, I guess. Though it makes the PR even harder to review.

@gardener-prow gardener-prow Bot requested a review from ScheererJ October 30, 2025 15:01
@ScheererJ ScheererJ changed the title [WIP] Support for Kubernetes 1.34 Support for Kubernetes 1.34 Oct 30, 2025
@gardener-prow gardener-prow Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 30, 2025
@ScheererJ
Copy link
Copy Markdown
Member

/lgtm

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label Oct 30, 2025
@gardener-prow
Copy link
Copy Markdown
Contributor

gardener-prow Bot commented Oct 30, 2025

LGTM label has been added.

DetailsGit tree hash: c3478940c44357b5c2b12fa04634b8e475a79937

Without it, the `kube-apiserver` does not start, because the `EndpointSlice` informers do not sync.
@gardener-prow gardener-prow Bot removed the lgtm Indicates that a PR is ready to be merged. label Oct 30, 2025
@tobschli
Copy link
Copy Markdown
Member Author

/unhold

@gardener-prow gardener-prow Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 30, 2025
Copy link
Copy Markdown
Member

@rfranzke rfranzke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label Oct 31, 2025
@gardener-prow
Copy link
Copy Markdown
Contributor

gardener-prow Bot commented Oct 31, 2025

LGTM label has been added.

DetailsGit tree hash: dc6f84506a5c9fdd4a519bae536a9128216cec98

Copy link
Copy Markdown
Member

@LucaBernstein LucaBernstein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Copy link
Copy Markdown
Member

@marc1404 marc1404 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working towards bringing support for Kubernetes v1.34 to Gardener. 👏
The commit structure and commit messages are very helpful during review. 🙇‍♂️

I left a few comments, but they don't necessarily need to be integrated into this PR. Therefor:
/lgtm

Comment thread pkg/provider-local/node/Dockerfile
Comment thread example/provider-local/shoot.yaml
Comment thread pkg/utils/gardener/topology_aware_routing.go Outdated
Comment thread docs/operations/topology_aware_routing.md Outdated
Co-authored-by: Marc Vornetran <marc1404@users.noreply.github.com>
@gardener-prow gardener-prow Bot removed the lgtm Indicates that a PR is ready to be merged. label Nov 3, 2025
Copy link
Copy Markdown
Member

@marc1404 marc1404 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Thanks for addressing my suggestions 🙏

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label Nov 3, 2025
@gardener-prow
Copy link
Copy Markdown
Contributor

gardener-prow Bot commented Nov 3, 2025

LGTM label has been added.

DetailsGit tree hash: d84ee3b5fb998bff53377b0440badbe34e5cb534

@gardener-prow
Copy link
Copy Markdown
Contributor

gardener-prow Bot commented Nov 3, 2025

@tobschli: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-gardener-e2e-kind-operator-seed 4a3e8e0 link true /test pull-gardener-e2e-kind-operator-seed

Full PR test history. Your PR dashboard. Command help for this repository.
Please help us cut down on flakes by linking this test failure to an open flake report or filing a new flake report if you can't find an existing one. Also see our testing guideline for how to avoid and hunt flakes.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Copy link
Copy Markdown
Member

@marc1404 marc1404 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve

@gardener-prow
Copy link
Copy Markdown
Contributor

gardener-prow Bot commented Nov 3, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: marc1404

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gardener-prow gardener-prow Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 3, 2025
@gardener-prow gardener-prow Bot merged commit 803429a into gardener:master Nov 3, 2025
18 checks passed
georgibaltiev pushed a commit to georgibaltiev/gardener that referenced this pull request Nov 5, 2025
* feat: Allow instantiating v1.34 Kubernetes clients

* docs: Update supported Kubernetes versions in docs

* docs: align docs with usage

* feat: Maintain feature gates for v1.34

./hack/compare-k8s-feature-gates.sh 1.33 1.34
Feature gates added in 1.34 compared to 1.33:
ClearingNominatedNodeNameAfterBinding
ContainerRestartRules
DRAConsumableCapacity
DRADeviceBindingConditions
DRAExtendedResource
DRASchedulerFilterTimeout
DetectCacheInconsistency
EnvFiles
HostnameOverride
InPlacePodVerticalScalingExclusiveMemory
KubeletPodResourcesListUseActivePods
MatchLabelKeysInPodTopologySpreadSelectorMerge
NominatedNodeNameForExpectation
PodCertificateRequest
PreventStaticPodAPIReferences
ProbeHostPodSecurityStandards
RelaxedServiceNameValidation
SchedulerAsyncAPICalls
SizeBasedListCostEstimate
StructuredAuthenticationConfigurationEgressSelector
TokenRequestServiceAccountUIDValidation

Feature gates removed in 1.34 compared to 1.33:
DevicePluginCDIDevices
ElasticIndexedJob
LegacySidecarContainers
PodDisruptionConditions
StatefulSetStartOrdinal

Feature gates locked to default true in 1.34 compared to 1.33:
AnonymousAuthConfigurableEndpoints
APIServerTracing
AuthorizeNodeWithSelectors
AuthorizeWithSelectors
ConsistentListFromCache
JobPodReplacementPolicy
KubeletCgroupDriverFromCRI
KubeletTracing
MultiCIDRServiceAllocator
NodeSwap
OrderedNamespaceDeletion
PodLifecycleSleepAction
PodLifecycleSleepActionAllowZero
ProbeHostPodSecurityStandards
RecoverVolumeExpansionFailure
RelaxedDNSSearchValidation
RelaxedEnvironmentVariableValidation
ResilientWatchCacheInitialization
SchedulerQueueingHints
SeparateTaintEvictionController
StreamingCollectionEncodingToJSON
StreamingCollectionEncodingToProtobuf
StructuredAuthenticationConfiguration
WinDSR
WinOverlay

Feature gates locked to default false in 1.34 compared to 1.33:

* feat: Maintain kube-apiserver admission plugins for 1.34

 ./hack/compare-k8s-admission-plugins.sh 1.33 1.34
Admission plugins added in 1.34 compared to 1.33:

Admission plugins removed in 1.34 compared to 1.33:

* feat: Maintain apigroups for 1.34

./hack/compare-k8s-api-groups.sh 1.33 1.34
Kubernetes API group versions added in 1.34 compared to 1.33:
resource.k8s.io/v1

Kubernetes API GVRs added in 1.34 compared to 1.33:
admissionregistration.k8s.io/v1beta1/mutatingadmissionpolicies
admissionregistration.k8s.io/v1beta1/mutatingadmissionpolicybindings
certificates.k8s.io/v1alpha1/podcertificaterequests
resource.k8s.io/v1/deviceclasses
resource.k8s.io/v1/resourceclaims
resource.k8s.io/v1/resourceclaimtemplates
resource.k8s.io/v1/resourceslices
storage.k8s.io/v1/volumeattributesclasses

Kubernetes API group versions removed in 1.34 compared to 1.33:
networking.k8s.io/v1alpha1

Kubernetes API GVRs removed in 1.34 compared to 1.33:
networking.k8s.io/v1alpha1/ipaddresses
networking.k8s.io/v1alpha1/servicecidrs
resource.k8s.io/v1alpha3/deviceclasses
resource.k8s.io/v1alpha3/resourceclaims
resource.k8s.io/v1alpha3/resourceclaimtemplates
resource.k8s.io/v1alpha3/resourceslices

* feat: Maintain kubernetes-controller-manager controller mappings

kube-controller-manager controllers added in 1.34 compared to 1.33:
Added Controllers for API Group [certificates/v1alpha1]: podcertificaterequest-cleaner-controller
Added Controllers for API Group [resource/v1]: device-taint-eviction-controller resourceclaim-controller
Added Controllers for API Group [storage/v1]: volumeattributesclass-protection-controller

kube-controller-manager controllers removed in 1.34 compared to 1.33:
Removed Controllers for API Group [resource/v1beta1]: device-taint-eviction-controller resourceclaim-controller
Removed Controllers for API Group [storage/v1beta1]: volumeattributesclass-protection-controller

* feat: Maintain unneeded controllers for workerless Shoots for Kubernetes 1.34

* chore: Update DaemonSet controller comments

* chore: Add Kubernetes v1.34.0 to provider-local cloud profile

* chore: Bump kindest/node version to 1.34.0

* chore: Change example Shoot to refer CredentialsBinding

* Set `trafficDistribution` to `PreferSameZone` for kubernetes versions `>= 1.34`

* Adapt charts to new `trafficDistribution` value

* Adapt tests to new `trafficDistribution` value

* Update TopologyAwareRouting documentation

* Address linting findings

* Use `PreferClose` for ETCD's clientService trafficDistribution

* --- SEPARATOR ---

* Align `node-problem-detector` images

Co-authored-by: Ismail Alidzhikov <9372594+ialidzhikov@users.noreply.github.com>

* Adapt to new labels for metrics

kubernetes/kubernetes#130161

* Enable `discovery.k8s.io/v1` API for workerless `Shoot`s

Without it, the `kube-apiserver` does not start, because the `EndpointSlice` informers do not sync.

* Fix wording / typo

Co-authored-by: Marc Vornetran <marc1404@users.noreply.github.com>

---------

Co-authored-by: Ismail Alidzhikov <9372594+ialidzhikov@users.noreply.github.com>
Co-authored-by: Marc Vornetran <marc1404@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/open-source Open Source (community, enablement, contributions, conferences, CNCF, etc.) related cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/enhancement Enhancement, improvement, extension lgtm Indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants