Skip to content

OCPBUGS-114882: drop GCD health-check ranges in openshift-gcp-routes - #6501

Open
patrickdillon wants to merge 1 commit into
openshift:mainfrom
patrickdillon:gcd-health-probe
Open

OCPBUGS-114882: drop GCD health-check ranges in openshift-gcp-routes#6501
patrickdillon wants to merge 1 commit into
openshift:mainfrom
patrickdillon:gcd-health-probe

Conversation

@patrickdillon

@patrickdillon patrickdillon commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

- What I did
Updated the pattern introduced by the bug fixes for https://bugzilla.redhat.com/show_bug.cgi?id=1925698 and https://bugzilla.redhat.com/show_bug.cgi?id=1930457 to take into account the health probe ranges for GCD sovereign regions.

- How to verify it
We have gcd e2e jobs, and I will kick one off, but I'm not certain the file in question would be gathered in CI artifacts. If not, I will manually verify (and update here of course).

- Description for the changelog

Include GCD health-check probe ranges in openshift-gcp-routes.

Summary by CodeRabbit

  • New Features
    • Improved GCP health-check traffic handling by supporting region-specific source ranges, including GCD Berlin and France deployments.
    • Added fallback support for standard public GCP health-check ranges when regional platform information is unavailable.
  • Bug Fixes
    • Updated network rules to allow health checks from the appropriate ranges for supported GCP environments.

openshift-gcp-routes drops load balancer health-check probes that would be
forwarded off-node, to avoid polluting conntrack (BZ 1925698, 1930457). The
dropped source ranges were hardcoded to the public GCP prober ranges
(35.191.0.0/16, 130.211.0.0/22). GCD (sovereign) regions probe from different
ranges which need to be added to avoid the issue seen on public GCP.

Select the dropped ranges by region via a new gcpHealthCheckSourceRanges
template function: GCD regions drop their own region's prober ranges, all other
regions keep the public GCP behavior. Only ranges reserved for health-check
probers in the target environment are dropped -- a range that is reserved prober
infrastructure in one environment is ordinary routable space in another, so the
ranges must not be dropped unconditionally.
@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 jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels Sep 4, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@patrickdillon: This pull request references Jira Issue OCPBUGS-114882, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.1.0) matches configured target version for branch (5.1.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

- What I did
Updated the pattern introduced by the bug fixes for https://bugzilla.redhat.com/show_bug.cgi?id=1925698 and https://bugzilla.redhat.com/show_bug.cgi?id=1930457 to take into account the health probe ranges for GCD sovereign regions.

- How to verify it
We have gcd e2e jobs, and I will kick one off, but I'm not certain the file in question would be gathered in CI artifacts. If not, I will manually verify (and update here of course).

- Description for the changelog

Include GCD health-check probe ranges in openshift-gcp-routes.

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

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bd7b97a8-e3c1-469a-ade5-0bbc112e26c6

📥 Commits

Reviewing files that changed from the base of the PR and between 25c2546 and ecc044d.

📒 Files selected for processing (4)
  • pkg/controller/template/gcp_healthchecks.go
  • pkg/controller/template/gcp_healthchecks_test.go
  • pkg/controller/template/render.go
  • templates/master/00-master/gcp/files/opt-libexec-openshift-gcp-routes-sh.yaml

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


Walkthrough

The change adds region-specific GCP health-check source ranges, exposes the selector to templates, and renders nftables rules for every selected range.

Changes

GCP health-check range handling

Layer / File(s) Summary
Region-aware range selection
pkg/controller/template/gcp_healthchecks.go, pkg/controller/template/gcp_healthchecks_test.go
The selector returns public GCP ranges by default and GCD ranges for the supported Germany and France regions. Table-driven tests cover regional selection and fallback behavior.
Template rule rendering
pkg/controller/template/render.go, templates/master/00-master/gcp/files/opt-libexec-openshift-gcp-routes-sh.yaml
renderTemplate exposes the selector. The nftables template creates a source-drop rule for each returned range.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to ecc04

The change adds region-specific health-check ranges and renders corresponding nftables rules, with no substantiated merge-blocking issue remaining.

Sequence Diagram(s)

sequenceDiagram
  participant renderTemplate
  participant gcpHealthCheckSourceRanges
  participant GCPRoutesTemplate
  renderTemplate->>gcpHealthCheckSourceRanges: expose template function
  GCPRoutesTemplate->>gcpHealthCheckSourceRanges: request source ranges
  gcpHealthCheckSourceRanges-->>GCPRoutesTemplate: return selected ranges
  GCPRoutesTemplate-->>renderTemplate: render nftables source-drop rules
Loading
🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (14 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 change: adding GCD health-check ranges to openshift-gcp-routes. It is specific and concise.
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 The added test uses standard Go testing, not Ginkgo. Its t.Run names are fixed string literals: public region, GCD Berlin, GCD France, and nil platform status. Region values and IP ranges remain in …
Test Structure And Quality ✅ Passed PASS: The added test is a standard Go testing table-driven unit test, not Ginkgo code. Each subtest checks one related selector case. It creates no cluster resources, performs no cluster operation, …
Microshift Test Compatibility ✅ Passed PASS: The pull request adds a standard Go unit test, TestGCPHealthCheckSourceRanges, not a Ginkgo e2e test. The test uses testing, reflect, and configuration structs only. It contains no It, `…
Single Node Openshift (Sno) Test Compatibility ✅ Passed The pull request adds one standard Go unit test, TestGCPHealthCheckSourceRanges, using testing.T and table-driven subtests. It does not add Ginkgo e2e tests or any multi-node/HA assumptions. The c…
Topology-Aware Scheduling Compatibility ✅ Passed PASS: The PR adds a GCP health-check range helper, registers it for template rendering, and updates a static nftables script template. The changed paths introduce no anti-affinity, topology spread, re…
Ote Binary Stdout Contract ✅ Passed PASS. The pull request adds static range variables, a selector function, a template registration, nftables template lines, and a table-driven unit test. The changed Go code contains no stdout writes, …
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: The pull request adds one conventional Go unit test, TestGCPHealthCheckSourceRanges, using testing.T and table-driven cases. It does not add a Ginkgo e2e test (It, Describe, Context, o…
No-Weak-Crypto ✅ Passed PASS: The pull request adds GCP health-check CIDR selection, template registration, and nftables rules. The exact commit diff contains no MD5, SHA1, DES, 3DES, RC4, Blowfish, or ECB usage, and no cryp…
Container-Privileges ✅ Passed PASS: The pull request adds GCP range-selection code and nftables drop-rule rendering only. The changed lines add no privileged: true, hostPID, hostNetwork, hostIPC, SYS_ADMIN, `allowPrivile…
No-Sensitive-Data-In-Logs ✅ Passed No sensitive-data logging was introduced. The added code defines fixed public GCP/GCD IP ranges, registers a template function, and emits nftables rules. The only added diagnostic output is a test fai…
Full details: Docstring Coverage

Explanation

Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci

openshift-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: patrickdillon
Once this PR has been reviewed and has the lgtm label, please assign cheesesashimi for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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-robot

Copy link
Copy Markdown
Contributor

@patrickdillon: This pull request references Jira Issue OCPBUGS-114882, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.1.0) matches configured target version for branch (5.1.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

- What I did
Updated the pattern introduced by the bug fixes for https://bugzilla.redhat.com/show_bug.cgi?id=1925698 and https://bugzilla.redhat.com/show_bug.cgi?id=1930457 to take into account the health probe ranges for GCD sovereign regions.

- How to verify it
We have gcd e2e jobs, and I will kick one off, but I'm not certain the file in question would be gathered in CI artifacts. If not, I will manually verify (and update here of course).

- Description for the changelog

Include GCD health-check probe ranges in openshift-gcp-routes.

Summary by CodeRabbit

  • New Features
  • Improved GCP health-check traffic handling by supporting region-specific source ranges, including GCD Berlin and France deployments.
  • Added fallback support for standard public GCP health-check ranges when regional platform information is unavailable.
  • Bug Fixes
  • Updated network rules to allow health checks from the appropriate ranges for supported GCP environments.

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.

@patrickdillon

Copy link
Copy Markdown
Contributor Author

/payload-job periodic-ci-openshift-release-main-ci-5.1-e2e-gcd-ovn

@openshift-ci

openshift-ci Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@patrickdillon: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-ci-5.1-e2e-gcd-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/6f8dfd30-a85c-11f1-813b-44d8bf3c86c6-0

@patrickdillon

Copy link
Copy Markdown
Contributor Author

/test unit

unrelated failure looks like a flake

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

Labels

jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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.

2 participants