Skip to content

OSASINFRA-4368: Update CAPO to latest stable release#8687

Open
stephenfin wants to merge 2 commits into
openshift:mainfrom
shiftstack:capo-bump
Open

OSASINFRA-4368: Update CAPO to latest stable release#8687
stephenfin wants to merge 2 commits into
openshift:mainfrom
shiftstack:capo-bump

Conversation

@stephenfin
Copy link
Copy Markdown
Contributor

@stephenfin stephenfin commented Jun 5, 2026

What this PR does / why we need it:

Bump the version of CAPO used in Hypershift to the latest stable version, 0.14.x.

go get sigs.k8s.io/cluster-api-provider-openstack@latest
go mod tidy
go mod vendor

Which issue(s) this PR fixes:

Fixes OSASINFRA-4368

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

  • Chores
    • Updated OpenStack resource controller to its v2 release and bumped Cluster API, OpenStack provider, and controller-runtime to newer compatible versions for improved compatibility and maintenance.
  • Tests
    • Adjusted tests to match updated API types and compatibility changes.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 5, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Jun 5, 2026

@stephenfin: This pull request references OSASINFRA-4368 which is a valid jira issue.

Details

In response to this:

What this PR does / why we need it:

Bump the version of CAPO used in Hypershift to the latest stable version, 0.14.x.

go get sigs.k8s.io/cluster-api-provider-openstack@latest
go mod tidy
go mod vendor

Which issue(s) this PR fixes:

Fixes OSASINFRA-4368

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 2a5922da-4adc-428a-b666-18eb56dfca67

📥 Commits

Reviewing files that changed from the base of the PR and between d755e32 and 9806c3c.

⛔ Files ignored due to path filters (125)
  • cmd/install/assets/crds/cluster-api-provider-agent/capi-provider.agent-install.openshift.io_agentclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-aws/infrastructure.cluster.x-k8s.io_awsclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-aws/infrastructure.cluster.x-k8s.io_awsclustertemplates.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-azure/infrastructure.cluster.x-k8s.io_azureasomanagedclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-azure/infrastructure.cluster.x-k8s.io_azureasomanagedcontrolplanes.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-azure/infrastructure.cluster.x-k8s.io_azureclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-gcp/infrastructure.cluster.x-k8s.io_gcpclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-gcp/infrastructure.cluster.x-k8s.io_gcpclustertemplates.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-ibmcloud/infrastructure.cluster.x-k8s.io_ibmpowervsclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-ibmcloud/infrastructure.cluster.x-k8s.io_ibmpowervsclustertemplates.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-ibmcloud/infrastructure.cluster.x-k8s.io_ibmvpcclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-ibmcloud/infrastructure.cluster.x-k8s.io_ibmvpcclustertemplates.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackclusteridentities.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackclusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackclustertemplates.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackfloatingippools.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackmachines.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackmachinetemplates.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/infrastructure.cluster.x-k8s.io_openstackservers.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_domains.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_flavors.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_floatingips.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_groups.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_images.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_keypairs.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_networks.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_ports.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_projects.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_roles.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_routerinterfaces.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_routers.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_securitygroups.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_servergroups.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_servers.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_services.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_subnets.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_volumes.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api-provider-openstack/openstack.k-orc.cloud_volumetypes.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_clusterclasses.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_clusters.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_machinedeployments.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_machinehealthchecks.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_machinepools.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_machines.yaml is excluded by !cmd/install/assets/**/*.yaml
  • cmd/install/assets/crds/cluster-api/cluster.x-k8s.io_machinesets.yaml is excluded by !cmd/install/assets/**/*.yaml
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/k-orc/openstack-resource-controller/api/v1alpha1/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/common_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/conditions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/controller_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/credentials_ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/domain_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/flavor_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/floatingip_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/group_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/groupversion_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/image_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/keypair_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/network_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/openstack_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/port_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/project_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/role_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/router_interface_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/router_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/securitygroup_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/server_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/servergroup_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/service_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/subnet_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/volume_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/volumetype_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.domain-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.flavor-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.floatingip-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.group-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.image-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.keypair-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.network-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.port-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.project-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.role-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.router-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.securitygroup-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.server-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.servergroup-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.service-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.subnet-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.volume-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1/zz_generated.volumetype-resource.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/modules.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1/openstackclusteridentity_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/conditions_consts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/identity_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/openstackcluster_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/openstackmachine_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/openstackmachinetemplate_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors/terminal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/cluster_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/conversion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/machine_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/zz_generated.conversion.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/zz_generated.openapi.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/cluster_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/clusterclass_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/common_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machine_phase_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machine_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machinehealthcheck_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machineset_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/v1beta1_condition_consts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/zz_generated.openapi.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/feature/feature.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/conditions/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/patch/patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/patch/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/util.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (6)
  • cmd/cluster/core/dump.go
  • go.mod
  • hypershift-operator/controllers/nodepool/openstack.go
  • hypershift-operator/controllers/nodepool/openstack/openstack.go
  • hypershift-operator/controllers/nodepool/openstack/openstack_test.go
  • support/api/scheme.go
✅ Files skipped from review due to trivial changes (1)
  • cmd/cluster/core/dump.go

📝 Walkthrough

Walkthrough

This PR updates go.mod to use github.com/k-orc/openstack-resource-controller/v2 and bumps cluster-api and controller-runtime versions. Import paths in several files were changed to the v2 API. Code and tests were updated to use the v2 types: ImageResourceSpec.Name is passed as a pointer to orc.OpenStackName and PrefixedClusterImageName now returns orc.OpenStackName.

🚥 Pre-merge checks | ✅ 11
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main purpose: updating CAPO (Cluster API Provider OpenStack) to the latest stable release, which aligns with the PR's primary objective and all changes made.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed Test file openstack_test.go uses standard Go testing, not Ginkgo. All test case names are static, deterministic strings with no dynamic content, timestamps, IDs, or non-stable elements.
Test Structure And Quality ✅ Passed The PR contains only standard Go unit tests (not Ginkgo tests). The custom check targets Ginkgo test quality, making it inapplicable to this PR's test modifications.
Topology-Aware Scheduling Compatibility ✅ Passed This PR only updates dependency versions and adjusts import paths/type signatures; no scheduling constraints (affinity, topology spread, node selectors, replica logic, or PDBs) are introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No Ginkgo e2e tests added. Changes are dependency/import updates and test data adjustments to existing unit tests only. Check does not apply.
No-Weak-Crypto ✅ Passed PR contains no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, custom crypto, or non-constant-time secret comparisons. Changes are import path updates and version bumps only.
Container-Privileges ✅ Passed This PR contains only Go module and source code changes for updating CAPO dependencies; no container/K8s manifests with privileged configurations were added or modified.
No-Sensitive-Data-In-Logs ✅ Passed No new logging introduced. Existing logs contain only non-sensitive operational data (image names, cluster names, errors), not passwords, tokens, keys, PII, or credentials.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

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

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

@openshift-ci openshift-ci Bot requested review from Nirshal and devguyio June 5, 2026 15:44
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@go.mod`:
- Line 126: The go.mod lists "sigs.k8s.io/controller-runtime v0.22.5" in the
require section but also has a "replace sigs.k8s.io/controller-runtime =>
sigs.k8s.io/controller-runtime v0.19.7", so the replace overrides the bump;
reconcile by either removing the replace directive or updating it to match
v0.22.5 (or update the require to v0.19.7 if that older version is mandatory),
and add a short comment in go.mod explaining why a replace is necessary when
forcing v0.19.7 (or why the replace was removed) so future readers understand
the decision; search for the "require sigs.k8s.io/controller-runtime" and
"replace sigs.k8s.io/controller-runtime" entries to make the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 01ba8e69-ed4b-414a-850d-ee2c14ba53f8

📥 Commits

Reviewing files that changed from the base of the PR and between f13c62d and d755e32.

⛔ Files ignored due to path filters (33)
  • go.sum is excluded by !**/*.sum
  • vendor/modules.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1/openstackclusteridentity_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/conditions_consts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/identity_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/openstackcluster_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/openstackmachine_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/openstackmachinetemplate_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/errors/terminal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/cluster_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/conversion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/machine_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/zz_generated.conversion.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta1/zz_generated.openapi.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/cluster_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/clusterclass_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/common_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machine_phase_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machine_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machinehealthcheck_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/machineset_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/v1beta1_condition_consts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/zz_generated.deepcopy.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/api/core/v1beta2/zz_generated.openapi.go is excluded by !vendor/**, !**/vendor/**, !**/zz_generated*.go, !**/zz_generated*
  • vendor/sigs.k8s.io/cluster-api/feature/feature.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/conditions/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/patch/patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/patch/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/sigs.k8s.io/cluster-api/util/util.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (1)
  • go.mod

Comment thread go.mod
@openshift-ci openshift-ci Bot added area/cli Indicates the PR includes changes for CLI area/platform/aws PR/issue for AWS (AWSPlatform) platform area/platform/azure PR/issue for Azure (AzurePlatform) platform area/platform/gcp PR/issue for GCP (GCPPlatform) platform area/platform/ibmcloud PR/issue for IBMCloud (IBMCloudPlatform) platform area/platform/openstack PR/issue for OpenStack (OpenStackPlatform) platform area/platform/powervs PR/issue for PowerVS (PowerVSPlatform) platform and removed do-not-merge/needs-area labels Jun 5, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 41.43%. Comparing base (f13c62d) to head (9806c3c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8687   +/-   ##
=======================================
  Coverage   41.43%   41.43%           
=======================================
  Files         756      756           
  Lines       93647    93647           
=======================================
  Hits        38802    38802           
  Misses      52124    52124           
  Partials     2721     2721           
Files with missing lines Coverage Δ
cmd/cluster/core/dump.go 4.27% <ø> (ø)
...ershift-operator/controllers/nodepool/openstack.go 0.00% <ø> (ø)
...erator/controllers/nodepool/openstack/openstack.go 76.42% <100.00%> (ø)
support/api/scheme.go 90.08% <ø> (ø)
Flag Coverage Δ
cmd-support 34.87% <ø> (ø)
cpo-hostedcontrolplane 43.50% <ø> (ø)
cpo-other 42.74% <ø> (ø)
hypershift-operator 51.57% <100.00%> (ø)
other 31.64% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@muraee
Copy link
Copy Markdown
Contributor

muraee commented Jun 5, 2026

/approve

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 5, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: muraee, stephenfin

The full list of commands accepted by this bot can be found here.

The pull request process is described 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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 5, 2026
CAPO was bumped first:

  go get sigs.k8s.io/cluster-api-provider-openstack@latest
  go mod tidy
  go mod vendor

Followed by ORC, which is bumped to a new major version:

  go get sigs.k8s.io/cluster-api-provider-openstack/v2@latest

All imports are updated accordingly.

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
@openshift-ci openshift-ci Bot added area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release labels Jun 5, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 5, 2026

@stephenfin: all tests passed!

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.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/cli Indicates the PR includes changes for CLI area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release area/platform/aws PR/issue for AWS (AWSPlatform) platform area/platform/azure PR/issue for Azure (AzurePlatform) platform area/platform/gcp PR/issue for GCP (GCPPlatform) platform area/platform/ibmcloud PR/issue for IBMCloud (IBMCloudPlatform) platform area/platform/openstack PR/issue for OpenStack (OpenStackPlatform) platform area/platform/powervs PR/issue for PowerVS (PowerVSPlatform) platform jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants