gcp: allow global access on the internal load balancer - #10828
gcp: allow global access on the internal load balancer#10828kchawlani19 wants to merge 1 commit into
Conversation
Cross-region clients such as ACM cannot reach a private GCP API server because internal load balancers are regional by default. Expose platform.gcp.loadBalancer.clientAccess in install-config and set CAPG InternalAccess=Global when requested. Fixes openshift#10744
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
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: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (9)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe GCP platform now supports global and local load balancer client access. Validation enforces these values. Cluster and ingress manifest generation maps global access to the corresponding CAPG and GCP provider settings. ChangesGCP load balancer client access
Merge Risk: ⚪ Minimal · up to This change is merge-ready after normal checks and review; no actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 13 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (13 passed)
Full details: Linked Issues checkExplanation The reviewable changes implement issue Resolution Review the excluded data/data/install.openshift.io_installconfigs.yaml and pkg/types/gcp/zz_generated.deepcopy.go files. Confirm that the new GCP load balancer configuration is present in the install-config schema and that generated deepcopy support is valid. Full details: Out of Scope Changes checkExplanation The changes are within scope for issue Full details: Stable And Deterministic Test NamesExplanation PASS — The pull request adds only standard Go Full details: Test Structure And QualityExplanation PASS: The pull request adds and modifies standard Go unit tests, not Ginkgo tests. The changed files use Full details: Microshift Test CompatibilityExplanation PASS — the PR adds only standard Go unit tests ( Full details: Single Node Openshift (Sno) Test CompatibilityExplanation PASS: The pull request adds only Go unit tests using Full details: Topology-Aware Scheduling CompatibilityExplanation PASS: The pull request changes GCP internal load-balancer configuration and validation only. The manifest changes add CAPG Full details: Ote Binary Stdout ContractExplanation PASS: The pull request changes only GCP manifest generation, types, validation, deepcopy code, and ordinary test functions. The added lines contain no fmt.Print*, os.Stdout, log/klog output, Ginkgo suite setup, init, main, or TestMain code. No OTE process-level stdout path is introduced. Full details: Ipv6 And Disconnected Network Test CompatibilityExplanation PASS: The pull request adds only standard Go unit tests using Full details: No-Weak-CryptoExplanation PASS: The pull request adds GCP load-balancer configuration and manifest mapping only. The actual commit diff introduces no MD5, SHA1, DES, 3DES, RC4, Blowfish, ECB, custom cryptography, or secret/token comparisons. The changed code contains no crypto imports or cryptographic implementation. Full details: Container-PrivilegesExplanation PASS: The pull request adds GCP load-balancer configuration and ingress provider parameters only. The diff introduces no Full details: No-Sensitive-Data-In-LogsExplanation PASS: The pull-request diff adds configuration types, validation, manifest mapping, tests, and schema/deep-copy updates. It adds no logging, printing, event, or diagnostic output code. The new values are non-sensitive enum settings (
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 golangci-lint (2.12.2)Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions 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 |
|
/retest |
|
@kchawlani19: 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. |
Summary
platform.gcp.loadBalancer.clientAccess(Global|Local) so private GCP clusters can enable ILB global access from install-config.Globalthrough CAPG (InternalAccess=Global/allowGlobalAccess) so a cross-region installer (for example ACM) can reach the API server.gcp.clientAccess: Globalwhen ingress is internal.Fixes #10744
Test plan
go test ./pkg/types/gcp/ ./pkg/types/gcp/validation/ ./pkg/asset/manifests/gcp/ ./pkg/asset/manifests/clientAccessvalues are rejected at install-config validationpublish: Internal) withplatform.gcp.loadBalancer.clientAccess: Globalfrom a different region completes and can reachhttps://api.<cluster>:6443Local) still creates a regional ILBSummary by CodeRabbit