CNTRLPLANE-3619: backport API-driven Azure topology and private connectivity (Phase 1)#8721
CNTRLPLANE-3619: backport API-driven Azure topology and private connectivity (Phase 1)#8721muraee wants to merge 2 commits into
Conversation
… (Phase 1) Backport CPO changes from PR openshift#8537 to release-4.22. This enables the control plane operator to detect Azure topology and private connectivity settings through per-cluster API fields instead of the global MANAGED_SERVICE environment variable — critical for correctness when a management cluster hosts both ARO HCP and self-managed Azure clusters. Key changes: - Add AzurePrivateTypeSwift and AzureSwiftSpec API types - Add per-cluster detection functions (IsAroHCPByHCP, UseSwiftNetworkingHCP, UseSharedIngressHCP, SwiftPodNetworkInstanceHCP) to support/util - Replace azureutil.IsAroHCP() with azureutil.IsAroHCPByHCP(hcp) across all CPO components (~25 files) - Replace sharedingress.UseSharedIngress() with util.UseSharedIngressHCP(hcp) - Update IsPrivateHCP/HC with Phase 1 fallback for empty Azure topology - Update LabelHCPRoutes to use API-driven shared ingress/Swift detection HO and sharedingress changes are excluded as they always run from main. Signed-off-by: Mulham Raee <[email protected]> Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 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: muraee 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 |
|
@muraee: This pull request references CNTRLPLANE-3619 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. |
|
/test e2e-aks |
…Swift tests The new two-way CEL validation rule requires privateLink config when type is PrivateLink. Update the existing test expectation from "should pass" to "should fail" with the appropriate error message, and add privateLink config to the controlPlaneOperator identity guard test cases. Also add the new Swift private networking validation test cases from PR openshift#8537. Signed-off-by: Mulham Raee <[email protected]> Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
b9572e9 to
1d5982e
Compare
|
/test e2e-aks |
2 similar comments
|
/test e2e-aks |
|
/test e2e-aks |
|
/test images |
|
/retest-required |
|
@muraee: all tests passed! 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. |
Summary
Backport of CPO changes from #8537 to release-4.22. Only CPO and support changes are included — HO, sharedingress, and nodepool changes are excluded since they always run from main.
This enables the control plane operator to detect Azure topology and private connectivity settings through per-cluster API fields instead of the global
MANAGED_SERVICEenvironment variable — critical for correctness when a management cluster hosts both ARO HCP and self-managed Azure clusters.Changes
AzurePrivateTypeSwift,AzureSwiftSpecto support Swift as a private connectivity mechanismsupport/util/visibility.go): AddUseSwiftNetworkingHCP/HC,IsAroHCPByHCP/HC,UseSharedIngressHCP/HC,SwiftPodNetworkInstanceHCP; updateIsPrivateHCP/HCwith Phase 1 fallback for empty Azure topology; updateLabelHCPRoutesto use API-driven detectionsupport/azureutil/): AddIsAroHCPByHCP/HCwrappersazureutil.IsAroHCP()with per-clusterazureutil.IsAroHCPByHCP(hcp); replacesharedingress.UseSharedIngress()withutil.UseSharedIngressHCP(hcp); replace annotation-based Swift detection withutil.UseSwiftNetworkingHCP(hcp)What is NOT included (runs from main)
hypershift-operator/changessharedingress-config-generator/changeshypershift-operator/controllers/nodepool/changessupport/netutil/package move (functions kept insupport/util/)PublicEndpointExposedcondition (not referenced by CPO)Test plan
go build ./control-plane-operator/...passesgo build ./support/...passesgo build ./hypershift-operator/...passes (no regressions)go test ./support/util/...passesgo test ./support/azureutil/...passesgo test ./control-plane-operator/controllers/hostedcontrolplane/...passesgo test ./control-plane-operator/hostedclusterconfigoperator/...passes/cc @enxebre
🤖 Generated with Claude Code