Skip to content

OCPBUGS-100178: Rebase release-4.21 to Kubernetes v1.34.10 - #2728

Open
redhat-chai-bot wants to merge 29 commits into
openshift:release-4.21from
redhat-chai-bot:rebase-release-4.21-v1.34.10
Open

OCPBUGS-100178: Rebase release-4.21 to Kubernetes v1.34.10#2728
redhat-chai-bot wants to merge 29 commits into
openshift:release-4.21from
redhat-chai-bot:rebase-release-4.21-v1.34.10

Conversation

@redhat-chai-bot

Copy link
Copy Markdown

Summary

Rebases the release-4.21 branch from Kubernetes 1.34.9 to v1.34.10 (upstream release 2026-07-22).

Conflicts Resolved

11 files — accepted upstream version:

  • Staging go.mod / go.sum files

OpenShift Dependencies

OpenShift deps (openshift/api, client-go, library-go, apiserver-library-go) kept at their existing pinned versions. The newer branch heads pull in go 1.26 / k8s 1.36 APIs that are incompatible with k8s 1.34.

Reviewer Notes

Two make update steps could not run during the automated rebase and were skipped:

  • update-openapi-spec — kube-apiserver would not start in the workspace
  • update-generated-api-compatibility-data — pre-existing roundtrip panic on rbac/v1alpha1

The compatibility-data step deleted 546 testdata/HEAD files, which were restored in a separate commit (API types are unchanged in a patch bump). CI verify jobs may flag these — regenerate locally if needed.


@dusk125 requested in Slack thread

yongruilin and others added 28 commits March 11, 2026 23:23
Add a mutex to protect the global policyRefreshInterval. This prevents a data race during tests where SetPolicyRefreshIntervalForTests writes to the variable while a background goroutine reads it.
Move isLearner and isStarted variables to the outer var block of
MemberPromote so their values are accessible after the poll loop.
After the poll, if isLearner is false the member was already promoted,
so return nil early without issuing a redundant promote call.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
When manageJob() needs to create replacement pods but defers creation
because a pod-failure backoff is still active, it returned a hardcoded
active=0 to the caller. Because no pods were actually created or deleted,
this left Status.Active=0 while Status.Ready still reflected the running
pods. The apiserver correctly rejects such updates ("cannot set more
ready pods than active") with a 422, which blocks flushing uncounted
terminated pods, removing finalizers, and updating job status, leaving
pods stuck Terminating with stale status.

Return the real active count from both backoff early-returns instead,
since the deferral does not change the number of active pods.

Issue: kubernetes#139428
(cherry picked from commit 2fe49b0)
…c996af

Pins google.golang.org/protobuf to HEAD commit f2248ac996afc39b3df0777cdcc269f6ade50b07
(v1.36.12-0.20260120151049-f2248ac996af) which includes fixes for dead code
elimination issues surfaced by Go 1.26's reflect changes.

Xref: golang/protobuf#1704
Xref: kubernetes#137445
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
During kubeadm join, the mandatory kubeadm-config ConfigMap fetch uses
GetConfigMapWithShortRetry, which has a 350ms polling budget. When the
API server is slow to respond, the single GET attempt blocks for up to
10 seconds (the client timeout), exhausting the polling budget with no
retry. Since this call site has no fallback, the join fails.

Add a shortConfigMapGet parameter to getInitConfigurationFromCluster
and FetchInitConfigurationFromCluster. When false, the kubeadm-config
ConfigMap is fetched using KubernetesAPICallTimeout (default 1 minute,
user-configurable) with retries, matching the pattern used by
getAPIEndpointFromPodAnnotation. When true, the existing
GetConfigMapWithShortRetry is used for callers like kubeadm reset that
don't need a long retry.

Signed-off-by: Damiano Donati <damiano.donati@gmail.com>
…-of-139667-release-1.34

Automated cherry pick of kubernetes#139667: fix(kubeadm): use KubernetesAPICallTimeout for mandatory kubeadm-config fetch during join
…-of-#137451-upstream-release-1.34

Automated cherry pick of kubernetes#137451: Update google.golang.org/protobuf to v1.36.12-0.20260120151049-f2248ac996af to prevent file size explosion in go 1.26
…ck-of-#139964-upstream-release-1.34

[1.34] Automated cherry pick of kubernetes#139964: Restore string JSON encoding of cri-api KeyValue
…-pick-of-#139842-upstream-release-1.34

Automated cherry pick of kubernetes#139842: kubeadm: treat already promoted learner as successful
…-pick-of-#138584-upstream-release-1.34

Automated cherry pick of kubernetes#138584: [chore] test/compatibility_lifecycle: resolve feature names from variables
…erry-pick-of-#139457-upstream-release-1.34

Fix job controller reporting active=0 during pod creation backoff [1.34]
…-pick-of-#134829-upstream-release-1.34

Automated cherry pick of kubernetes#134829: test: Fix data race on policy refresh interval
…ck-of-#138390-origin-release-1.34

Automated cherry pick of kubernetes#138390: kubeadm: skip promote call when etcd member is already a voting member
…bles

Signed-off-by: Nabarun Pal <pal.nabarun95@gmail.com>
…ck-of-#139121-upstream-release-1.34

Automated cherry pick of kubernetes#139121: kubelet: defer CRI fallback removal to 1.38
…-pick-of-#140163-upstream-release-1.34

Automated cherry pick of kubernetes#140163: kubelet: stop logging missing optional container annotations
[release-1.34] Bump images and versions to golang 1.25.12 and update distroless-iptables
Kubernetes official release v1.34.10

# Conflicts:
#	staging/src/k8s.io/apimachinery/go.mod
#	staging/src/k8s.io/code-generator/go.mod
#	staging/src/k8s.io/cri-api/go.mod
#	staging/src/k8s.io/cri-api/go.sum
#	staging/src/k8s.io/externaljwt/go.sum
#	staging/src/k8s.io/kms/go.sum
#	staging/src/k8s.io/kube-proxy/go.mod
#	staging/src/k8s.io/kubectl/go.mod
#	staging/src/k8s.io/kubelet/go.mod
#	staging/src/k8s.io/metrics/go.mod
#	staging/src/k8s.io/sample-controller/go.mod
@openshift-ci-robot openshift-ci-robot added the backports/unvalidated-commits Indicates that not all commits come to merged upstream PRs. label Jul 28, 2026
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 7a61d4eb-18eb-4d90-a241-cde413f486aa

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@openshift-ci-robot

Copy link
Copy Markdown

@redhat-chai-bot: the contents of this pull request could not be automatically validated.

The following commits could not be validated and must be approved by a top-level approver:

Comment /validate-backports to re-evaluate validity of the upstream PRs, for example when they are merged upstream.

@openshift-ci
openshift-ci Bot requested review from deads2k and mrunalp July 28, 2026 13:54
@openshift-ci openshift-ci Bot added the vendor-update Touching vendor dir or related files label Jul 28, 2026
@openshift-ci

openshift-ci Bot commented Jul 28, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: redhat-chai-bot
Once this PR has been reviewed and has the lgtm label, please assign p0lyn0mial for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@dusk125

dusk125 commented Jul 28, 2026

Copy link
Copy Markdown

/cc @JSampsonIV @jubittajohn @jacobsee

@dusk125

dusk125 commented Jul 28, 2026

Copy link
Copy Markdown

@redhat-chai-bot verify is failing questing if make update was run. Did you successfully run it?

@redhat-chai-bot

Copy link
Copy Markdown
Author

@dusk125 Good question — make update was partially run but two steps were skipped because they couldn't complete in the automated workspace:

  1. update-openapi-spec — skipped because kube-apiserver wouldn't start in the build environment
  2. update-generated-api-compatibility-data — skipped due to a pre-existing roundtrip panic on rbac/v1alpha1

The verify failures break down as:

  • verify-codegen.sh — generated proto code (e.g. staging api/core/v1) is stale. The upstream v1.34.10 patch changed proto definitions, but hack/update-codegen.sh needs to be re-run to regenerate the *.pb.go files.
  • verify-typecheck.sh — consequence of the stale proto codegen: k8s.io/api/core/v1.Pod no longer implements github.com/gogo/protobuf/proto.Message (missing ProtoMessage method) because the generated files are out of date.
  • verify-vendor.sh — staging go.mod diffs in api, apiextensions-apiserver, apiserver, kube-aggregator, metrics.

All three trace back to needing a full make update run. To fix locally:

make update
make verify

The compatibility-data step also deleted 546 testdata/HEAD files which were restored in a separate commit (API types are unchanged in a patch bump) — those may need re-verification too.

Happy to answer any other questions about the rebase.

@dusk125

dusk125 commented Jul 28, 2026

Copy link
Copy Markdown

@redhat-chai-bot run make update

@redhat-chai-bot

Copy link
Copy Markdown
Author

On it — make update is running now on a fresh workspace (the original one was destroyed after the rebase). I'll push the regenerated files and run make verify once it completes. This typically takes 30+ minutes on the kubernetes repo.

@openshift-ci-robot

Copy link
Copy Markdown

@redhat-chai-bot: the contents of this pull request could not be automatically validated.

The following commits could not be validated and must be approved by a top-level approver:

Comment /validate-backports to re-evaluate validity of the upstream PRs, for example when they are merged upstream.

@redhat-chai-bot

Copy link
Copy Markdown
Author

make update has been run and the regenerated files pushed to this branch (commit 5ea1f2c1).

What changed: 80 files, +44,557 / -1,497 — almost entirely regenerated generated.pb.go protobuf files.

Update steps:

Step Status
update-kubensenter
update-codegen
update-featuregates
update-generated-api-compatibility-data ✅ (no rbac/v1alpha1 panic this time)
update-generated-docs
update-openapi-spec ❌ needs etcd (not available in CI workspace)
update-gofmt
update-golangci-lint-config
update-vendor

Verify results after update: 36 passed, 4 failed. The 3 checks that were failing before (verify-codegen, verify-typecheck, verify-vendor) now all pass. The 4 remaining failures are pre-existing environmental issues unrelated to this PR (missing rsync, missing ginkgo binary, $TERM not set, shallow clone missing master ref).

Still skipped: update-openapi-spec — this step needs to start kube-apiserver + etcd to generate the OpenAPI spec, which isn't available in the workspace. If CI flags this, it will need to be run locally with etcd installed.

@redhat-chai-bot
redhat-chai-bot force-pushed the rebase-release-4.21-v1.34.10 branch from 5ea1f2c to a22c701 Compare July 28, 2026 18:33
@openshift-ci-robot

Copy link
Copy Markdown

@redhat-chai-bot: the contents of this pull request could not be automatically validated.

The following commits could not be validated and must be approved by a top-level approver:

Comment /validate-backports to re-evaluate validity of the upstream PRs, for example when they are merged upstream.

@openshift-ci

openshift-ci Bot commented Jul 29, 2026

Copy link
Copy Markdown

@redhat-chai-bot: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-metal-ipi-ovn-ipv6 a22c701 link true /test e2e-metal-ipi-ovn-ipv6
ci/prow/e2e-aws-ovn-hypershift a22c701 link true /test e2e-aws-ovn-hypershift

Full PR test history. Your PR dashboard.

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.

@jacobsee jacobsee left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Conflict resolution needs to follow the standard documented process & be separated into its own commit. These results cast some doubt on the determinism of the patch rebase process, let's talk about it next week.

@redhat-chai-bot

Copy link
Copy Markdown
Author

Acknowledged — you're right that the conflict resolution should have been in a separate UPSTREAM: <drop>: manually resolve conflicts commit per REBASE.openshift.md. We've identified the root cause: the automated task instructions didn't preserve the two-step merge flow that rebase.sh implements (interactive pause + separate commit).

Happy to redo the branch with the correct commit structure, or to discuss the process improvements next week — whichever you prefer.

@JSampsonIV

Copy link
Copy Markdown

/retitle OCPBUGS-100178: Rebase release-4.21 to Kubernetes v1.34.10

@openshift-ci openshift-ci Bot changed the title Rebase release-4.21 to Kubernetes v1.34.10 OCPBUGS-100178: Rebase release-4.21 to Kubernetes v1.34.10 Jul 30, 2026
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jul 30, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@redhat-chai-bot: This pull request references Jira Issue OCPBUGS-100178, which is invalid:

  • release note text must be set and not match the template OR release note type must be set to "Release Note Not Required". For more information you can reference the OpenShift Bug Process.
  • expected dependent Jira Issue OCPBUGS-100177 to be in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but it is New instead
  • expected dependent Jira Issue OCPBUGS-100181 to be in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but it is New instead
  • expected dependent Jira Issue OCPBUGS-100177 to target a version in 4.22.0, but it targets "4.23" instead
  • expected dependent Jira Issue OCPBUGS-100181 to target a version in 4.22.0, but it targets "4.22.z" instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Summary

Rebases the release-4.21 branch from Kubernetes 1.34.9 to v1.34.10 (upstream release 2026-07-22).

Conflicts Resolved

11 files — accepted upstream version:

  • Staging go.mod / go.sum files

OpenShift Dependencies

OpenShift deps (openshift/api, client-go, library-go, apiserver-library-go) kept at their existing pinned versions. The newer branch heads pull in go 1.26 / k8s 1.36 APIs that are incompatible with k8s 1.34.

Reviewer Notes

Two make update steps could not run during the automated rebase and were skipped:

  • update-openapi-spec — kube-apiserver would not start in the workspace
  • update-generated-api-compatibility-data — pre-existing roundtrip panic on rbac/v1alpha1

The compatibility-data step deleted 546 testdata/HEAD files, which were restored in a separate commit (API types are unchanged in a patch bump). CI verify jobs may flag these — regenerate locally if needed.


@dusk125 requested in Slack thread

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 openshift-eng/jira-lifecycle-plugin repository.

@JSampsonIV

JSampsonIV commented Jul 30, 2026

Copy link
Copy Markdown

/jira refresh

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

Labels

backports/unvalidated-commits Indicates that not all commits come to merged upstream PRs. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. vendor-update Touching vendor dir or related files

Projects

None yet

Development

Successfully merging this pull request may close these issues.