Bump k8s-openapi feature to Kubernetes 1.34 - #38059
Merged
alex-hunt-materialize merged 4 commits intoAug 6, 2026
Merged
Conversation
alex-hunt-materialize
force-pushed
the
bump_k8s-openapi_feature_to_K8S_1.34
branch
from
August 5, 2026 16:59
75c7431 to
1b280ff
Compare
Bump k8s-openapi feature to Kubernetes 1.34. Bump kind to v0.32.0. Bump kubectl to v1.34.10. Bump our kind clusters to 1.34.8 nodes. Kubernetes 1.34 is the oldest currently supported version. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alex-hunt-materialize
force-pushed
the
bump_k8s-openapi_feature_to_K8S_1.34
branch
from
August 5, 2026 17:17
1b280ff to
f03410e
Compare
Minio.create() created the deployment without its nodeSelector, patched the selector in afterwards, then created the claim. The claim binds with WaitForFirstConsumer, so the provisioner pins the volume to whichever node the scheduler picks for the first pod that consumes it. The pod created before the patch could drive that decision even though it was replaced moments later, pinning the volume to a node the final pod was not allowed to run on. Nothing could then satisfy both the volume node affinity and the pod node selector, so the pod stayed Pending until the setup wait timed out. Inject the nodeSelector into the deployment manifest before creating it, so no pod ever exists without it. Creation order no longer matters, so the claim is created up front with the service. This is the flakiness tracked by DB-143. It made the k8s node recovery nightly steps fail deterministically on newer node images. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
def-
approved these changes
Aug 6, 2026
def-
requested changes
Aug 6, 2026
Contributor
There was a problem hiding this comment.
The cloudtest failure seems suspicious to me and haven't seen it on main! https://buildkite.com/materialize/nightly/builds/17824#019fd679-a9f5-421d-afb6-e799dc346d6c Especially since it happened twice in this PR, both times in test_cluster_replica_sizes, and never before in that test according to the CI dashboard: https://ci.dev.materialize.com/failures?globalFilter=ConnectionResetError%3A+%5BErrno+104%5D+Connection+reset+by+peer&sort=build_date&sortDir=desc
pg8000 wraps most connection failures in InterfaceError, but socket errors from its SSL negotiation leak through unwrapped. With the kind/Kubernetes bump the SQL probe after an environmentd stateful set replace can land in a window where the port-forwarding proxy accepts the connection and then resets it, surfacing as a raw ConnectionResetError that escaped the retry loop and failed test_cluster_replica_sizes. Catch OSError alongside InterfaceError, and raise the last error when the 300s deadline expires instead of silently falling through. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bump k8s-openapi feature to Kubernetes 1.34.
Bump kind to v0.32.0 and kubectl to v1.34.10 in the CI builder image and dev tooling.
Bump all kind cluster configs to
kindest/node:v1.34.8nodes (the pre-built 1.34 image for kind v0.32.0).Fix a race in our minio setup, which shows up more consistently in Kubernetes 1.34, where the PVC could end up on a different node and minio pods would never become ready. DB-143
Kubernetes 1.34 is the oldest currently supported version. Newer Kubernetes versions may not support legacy APIs over time, so better to stay current.
This will require a similar bump in the cloud repo when bumping the submodule.
Motivation
Keep up to date, on supported platforms.
Verification
Nightly pipelines that exercise the bumped kind/kubectl/node images and should be run on this PR:
cloudtest,cloudtest-slow,cloudtest-upgrade: run kind via the rebuilt ci-builder image.orchestratord-*: run in thetest/orchestratordkind cluster, now on 1.34.8 nodes.k8s-node-recovery-*: usemisc/kind/cluster-node-recovery-test.yaml, now on 1.34.8 nodes. These are the steps the minio fix targets.🤖 Generated with Claude Code