CNTRLPLANE-3600: Bump k8s to v0.36.1, controller-runtime to v0.24.1, CAPI to v1.12.8#8695
CNTRLPLANE-3600: Bump k8s to v0.36.1, controller-runtime to v0.24.1, CAPI to v1.12.8#8695bryan-cox wants to merge 4 commits into
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
Skipping CI for Draft Pull Request. |
|
@bryan-cox: This pull request references CNTRLPLANE-3600 which is a valid jira issue. DetailsIn response to this:
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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (284)
📒 Files selected for processing (16)
💤 Files with no reviewable changes (1)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis PR upgrades the Go toolchain to 1.26.0 (root and api modules) and refreshes many direct and indirect dependencies. Admission webhooks for HostedCluster and NodePool were refactored to use typed parameters instead of runtime.Object and webhook registration was adjusted. Several controllers/tests switched from boolean Requeue to RequeueAfter durations; the inplace upgrader now requeues periodically during upgrades and deletes terminated upgrade pods to allow retries. Tests and small controller wiring/annotation changes were added accordingly. Possibly related PRs
Suggested reviewers
✨ Finishing Touches🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: bryan-cox The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
….12.8 Bump core dependencies: - k8s.io/* v0.36.1 - sigs.k8s.io/controller-runtime v0.24.1 - sigs.k8s.io/cluster-api v1.12.8 - sigs.k8s.io/cluster-api-provider-azure v1.23.2 - sigs.k8s.io/cluster-api-provider-ibmcloud v0.13.1 - sigs.k8s.io/cluster-api-provider-gcp v1.12.0 - github.com/openshift/api latest - github.com/openshift/library-go latest - github.com/openshift/client-go latest - Go 1.26.0 Signed-off-by: Bryan Cox <brcox@redhat.com> Commit-Message-Assisted-by: Claude (via Claude Code)
Regenerate all vendored dependencies, CRD manifests, deepcopy functions, and clients for k8s v0.36.1, controller-runtime v0.24.1, and CAPI v1.12.8. Regenerate kube-scheduler test fixtures for new placementGenerate and placementScore extension points in k8s 1.36. Signed-off-by: Bryan Cox <brcox@redhat.com> Commit-Message-Assisted-by: Claude (via Claude Code)
Stub out SetupWebhookWithManager in vendored CAPA and NTO webhook files. These use the old ctrl.NewWebhookManagedBy(mgr).For(r) pattern removed in controller-runtime v0.24. HyperShift never calls these functions so stubbing is safe. Add HasSyncedChecker() to library-go fakeSharedIndexInformer to satisfy the k8s 1.36 SharedIndexInformer interface. Patch from openshift/library-go#2171. Drop this commit once upstream dependencies release controller-runtime v0.24 compatible versions. Signed-off-by: Bryan Cox <brcox@redhat.com> Commit-Message-Assisted-by: Claude (via Claude Code)
…24 generic API
Update webhook registrations to use the typed generic builder
introduced in controller-runtime v0.23:
- NewWebhookManagedBy(mgr).For(&obj{}) → NewWebhookManagedBy(mgr, &obj{})
- Validator/Defaulter methods now use concrete types instead of
runtime.Object (e.g. *hyperv1.HostedCluster, *hyperv1.NodePool)
- Add conversion.NewRegistry() parameter to NewWebhookHandler
- Remove unused apierrors and runtime imports
Signed-off-by: Bryan Cox <brcox@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
Codecov Report❌ Patch coverage is Please upload reports for the commit c77f966 to get more accurate results. Additional details and impacted files@@ Coverage Diff @@
## main #8695 +/- ##
==========================================
+ Coverage 41.43% 41.49% +0.06%
==========================================
Files 756 756
Lines 93647 93613 -34
==========================================
+ Hits 38802 38847 +45
+ Misses 52124 52038 -86
- Partials 2721 2728 +7
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
PR needs rebase. DetailsInstructions 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. |
Test Failure Analysis CompleteJob Information
Test Failure AnalysisErrorSummaryPR #8695 bumps Kubernetes dependencies to v0.36.1, controller-runtime to v0.24.1, and CAPI to v1.12.8, which collectively raise the minimum Go version to 1.26.0 (set in both Root CauseThere are two independent blocking issues: 1. Go version mismatch in builder images (causes all 4 Konflux build failures) The PR sets
When the Go 1.25 toolchain in these images encounters This causes the 2. Merge conflict (causes tide error and blocks all Prow jobs) The PR branch has diverged from Recommendations
Evidence
|
What this PR does / why we need it:
Bumps core Kubernetes and controller-runtime dependencies to support k8s 1.36:
k8s.io/*v0.36.1sigs.k8s.io/controller-runtimev0.24.1sigs.k8s.io/cluster-apiv1.12.8sigs.k8s.io/cluster-api-provider-azurev1.23.2sigs.k8s.io/cluster-api-provider-ibmcloudv0.13.1sigs.k8s.io/cluster-api-provider-gcpv1.12.0github.com/openshift/apilatestgithub.com/openshift/library-golatestgithub.com/openshift/client-golatestBreaking changes addressed
NewWebhookManagedBy(mgr).For(&obj{})removed; migrated toNewWebhookManagedBy(mgr, &obj{})with typedValidator/DefaulterinterfacesRegistryparameterplacementGenerateandplacementScoreadded (test fixtures regenerated)Temporary vendor patches (commit 3/4)
Vendored CAPA (v2.10.0) and NTO webhook files are stubbed because they use the old
ctrl.NewWebhookManagedBy(mgr).For(r)pattern incompatible with controller-runtime v0.24. HyperShift never calls these functions. Library-gofakeSharedIndexInformeris patched to implementHasSyncedChecker()(from openshift/library-go#2171). This commit is intended to be dropped on rebase once upstream releases compatible versions.Status
make buildpassesgo build ./...passesgo vet ./...passesmake testpassesmake lint— blocked on WIP: OCPSTRAT-3036: Rebase 1.36.2 library-go#2171 merging (golangci-lint reads from module cache, not vendor)make verify— same blockerWhich issue(s) this PR fixes:
Fixes https://issues.redhat.com/browse/CNTRLPLANE-3600
Special notes for your reviewer:
Commit 3 (
chore(api): temporary vendor patches for controller-runtime v0.24) is intentionally separate so it drops cleanly on rebase once upstream dependencies release controller-runtime v0.24 compatible versions.CAPA stays at v2.10.0 — no CAPI v1.12-compatible CAPA release exists yet. A follow-up PR can bump CAPI to v1.13.x when ready.
Checklist:
Summary by CodeRabbit