feat: upgrade cluster-api to v1.10.10#358
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolves HIGH severity CVE-2026-39883 (PATH hijacking via BSD kenv) detected by Trivy image scan in CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolves HIGH severity CVE-2026-32282 (Root.Chmod symlink traversal) in Go stdlib, detected by Trivy image scan in CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@copilot review |
Here's my review of the PR changes: Overall: The PR correctly implements all required migration steps from CAPI v1.8.12 → v1.10.10. The changes are well-scoped and follow the upstream migration guides. ✅ Migration Guide Compliancev1.8 → v1.9 (predicate signatures) — v1.9 → v1.10 (API renames) — Addons graduation — CRDMigrator — All four CRD types ( ✅ Code Quality
|
These were created during development and should not be in the repo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Upgrades this provider to Cluster API v1.10.10 (and aligned Kubernetes/controller-runtime deps), and applies the required API/migration-guide changes so controllers and e2e infrastructure continue to work with CAPI v1.10.
Changes:
- Bump
sigs.k8s.io/cluster-api(+ test framework) to v1.10.10 and aligncontroller-runtime/k8s.io/*dependencies. - Wire up CAPI’s
CRDMigratorcontroller (plus RBAC + flag) and update controller predicate calls to match new signatures. - Update e2e wiring (clusterctl config/metadata, addon import path, E2EConfig API rename) and refresh docs/tooling config.
Reviewed changes
Copilot reviewed 16 out of 17 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
go.mod |
Updates core deps to CAPI v1.10.10 / controller-runtime v0.20.4 / k8s v0.32.3 and adds new indirects. |
go.sum |
Module checksum updates corresponding to the dependency bump. |
cmd/main.go |
Adds CRDMigrator controller setup, CRD scheme registration, and --skip-crd-migration-phases flag + RBAC markers. |
config/rbac/role.yaml |
Grants CRD read/patch permissions needed by CRDMigrator. |
internal/controller/ionoscloudcluster_controller.go |
Updates pause predicates to new CAPI signatures requiring scheme. |
config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudclusters.yaml |
Regenerated CRD schema updates from newer tooling/deps. |
config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachines.yaml |
Regenerated CRD schema updates from newer tooling/deps. |
config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudclustertemplates.yaml |
Regenerated CRD schema updates from newer tooling/deps. |
config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachinetemplates.yaml |
Regenerated CRD schema updates from newer tooling/deps. |
test/e2e/suite_test.go |
Updates to MustGetVariable per CAPI v1.10 E2EConfig API rename. |
test/e2e/helpers/ownerreference.go |
Updates addons API import path to graduated location. |
test/e2e/helpers/finalizers.go |
Updates addons API import path to graduated location. |
test/e2e/config/ionoscloud.yaml |
Updates clusterctl component URLs and metadata reference to v1.10.10. |
test/e2e/data/shared/v1.10/metadata.yaml |
Adds clusterctl metadata for CAPI v1.10 compatibility. |
README.md |
Extends compatibility matrix to include a CAPI v1.10 column. |
Dockerfile |
Bumps Go builder image patch version. |
.golangci.yml |
Adjusts lint exclusions for deprecated CAPI errors package and +list marker handling. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
1 more thing: The CAPI migration docs contain this important bit:
Please add that do the PR description. We must not forget putting this into the release notes. |
- Scope CRDMigrator RBAC markers to our 4 CRD resource names (patch/update)
and drop the overly-broad unscoped patch permission; regenerate role.yaml
- Rename setupControllers → setUpControllers ("set up" is a phrasal verb)
- Update --skip-crd-migration-phases flag description to list valid values
instead of referencing the internal CAPI CRDMigrator implementation
- Remove deprecated FailureReason/FailureMessage fields from
IonosCloudMachineStatus, drop the cluster-api/errors import, remove
HasFailed() and its call site, and delete the associated tests
- Clean up compatibility matrix: drop stale v1.7 column and v0.2/v0.3 rows,
add v1.9 column, mark only v0.6 as compatible with v1.9 and v1.10,
remove premature v0.7 row
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Signed-off-by: Gaurav Gahlot <gaurav.gahlot@ionos.com>
Signed-off-by: Gaurav Gahlot <gaurav.gahlot@ionos.com>
Scope the mutating CRD verbs to our CRDs by name and merge the customresourcedefinitions and customresourcedefinitions/status rules into a single update;patch rule. Add CR RBAC for the template kinds (ionoscloudclustertemplates, ionoscloudmachinetemplates), which have no reconciler and were previously missing markers. Addresses PR #358 review comments. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Parental leave, @gauravgahlot checked and approved.



Summary
Migration Guides Implemented
Explicitly Not Included
Release Notes
Test plan
🤖 Generated with Claude Code