DNM: Deploy with ORC managed resources - #10680
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
Important Review skippedIgnore keyword(s) in the title. ⛔ Ignored keywords (3)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 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 |
Point CAPO to shiftstack/cluster-api-provider-openstack@prototype-orc-controllers which leverages ORC controllers for OpenStack resource management. This requires a development build of ORC (ef6119d9effa) that adds new API types (PortValueSpec, ServerSchedulerHints) and fields (BootVolume, PropagateUplinkStatus, ValueSpecs, TrustedVIF) not yet in any ORC release. - Add replace directives for CAPO and ORC in all three go.mod files - Regenerate CAPO and ORC infrastructure-components manifests - Fix Azure topology.ShouldSkipImmutabilityChecks -> IsDryRunRequest (renamed in cluster-api v1.13.x, pulled in transitively)
Vendor updates for CAPO prototype-orc-controllers branch and ORC development build (ef6119d9effa). Includes transitive bumps of cluster-api, controller-runtime, gophercloud, and k8s libraries.
Collect ORC (OpenStack Resource Controller) objects alongside the existing CAPI artifacts for debugging. When CAPO uses ORC controllers to manage OpenStack resources (servers, ports, volumes, etc.), these objects are created in the local envtest API server but were not previously captured. The new collectORCManifests function uses unstructured list calls against the ORC API group (openstack.k-orc.cloud/v1alpha1) to discover and serialize all ORC resources. On non-OpenStack platforms where ORC CRDs are not installed, the listing is silently skipped.
Update the vendored CAPO from prototype-orc-controllers branch which includes a fix for port fixedIPs being dropped when using managedSubnets. The fix preserves user-specified fixedIPs on ports instead of overwriting them with clusterSubnets, and falls back to resolved subnets from the cluster status when spec.Subnets and spec.PrimarySubnet are both unset (managedSubnets case). It also sets networkRef on ORC Subnet filters as required by the ORC CRD.
After envtest teardown, the ORC port controller is terminated before it can delete the bootstrap Neutron port. The port still references the bootstrap security group, so the SG deletion fails with 409 SecurityGroupInUse. Before deleting the bootstrap security group, find and delete any ports that still reference it. This handles the case where ORC was killed mid-cleanup. Also fix a logging bug where 'Successfully deleted' was printed even when the deletion failed.
|
@mandre: The following tests failed, say
Full PR test history. Your PR dashboard. 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. I understand the commands that are listed here. |
Swap CAPO with a prototype that leverages ORC for all openstack resources managements.