Skip to content

build(deps): bump kube to 4.2, k8s-openapi to 0.28, and k8s-controller - #39355

Draft
antiguru wants to merge 3 commits into
MaterializeInc:mainfrom
antiguru:deps-kube-4
Draft

antiguru wants to merge 3 commits into
MaterializeInc:mainfrom
antiguru:deps-kube-4

Conversation

@antiguru

@antiguru antiguru commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

The workspace compiles unchanged against kube 4.2 and k8s-openapi 0.28, and it keeps the v1_34 API feature. k8s-controller also moves from 0.12 to 0.13, whose additions (reconcile observers, events, conditions) are opt-in.

kube 4 builds derived CRDs as typed CustomResourceDefinitions, which omit the empty spec.names.categories list. The exported VpcEndpoint CRD changes by that field. Kubernetes treats an absent list and an empty one the same.

Other kube 4 behavior changes that reach us:

  • Read timeout: kube dropped its global default read timeout. mz_orchestrator_kubernetes::util::create_client sets read_timeout and connect_timeout explicitly, so our clients keep their timeouts.
  • Retries: non-watch requests now retry on 429, 503 and 504 by default.
  • Tracing: the client's per-request tracing layer is opt-in behind hyper-util-tracing, which this PR does not enable.
  • smallvec: kube-client 4.2 depends on serde-saphyr 0.0.29, which requires smallvec < 1.16. The lock moves smallvec from 1.16.2 back to 1.15.2, which still satisfies the workspace requirement of 1.15.1.

Draft until MaterializeInc/k8s-controller#55 ships as a release. k8s-controller exposes kube types, so it has to move to kube 4 first. Until then, [patch.crates-io] pins that pull request's commit through the MaterializeInc repository, and the fuzz patch-mirror check in bin/lint-cargo omits the entry. Both go away with the release.

Posted by Claude Code.

🤖 Generated with Claude Code

antiguru and others added 3 commits October 3, 2026 10:41
kube 4 builds CRDs as typed `CustomResourceDefinition`s, which omit the
empty `spec.names.categories` list, so the exported VpcEndpoint CRD
changes accordingly.

k8s-controller exposes kube types, so this needs a k8s-controller release
on kube 4. Until then the workspace patches it to a pinned fork commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cargo-deny only allows Git sources owned by MaterializeInc. GitHub serves the
pull request's commit from the upstream repository as well. The fuzz workspace
does not depend on k8s-controller, so the lint-cargo patch mirror check omits it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant