Skip to content

OCPBUGS-111704: router/metrics: enable proxy protocol for client on AWS clusters - #31526

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
tthvo:OCPBUGS-111704
Aug 18, 2026
Merged

OCPBUGS-111704: router/metrics: enable proxy protocol for client on AWS clusters#31526
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
tthvo:OCPBUGS-111704

Conversation

@tthvo

@tthvo tthvo commented Aug 17, 2026

Copy link
Copy Markdown
Member

The cluster-ingress-operator now supports PROXY protocol for NLB by default (OCPBUGS-63219) on AWS. Thus, we need to partially revert NE-2422 (#30934), specifically a97b2ad, to use proxy protocol for the client.

This addresses the below failed e2e test in AWS dualstack periodic jobs:

[sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel]

Summary by CodeRabbit

  • Tests
    • Updated router metrics testing to validate proxy protocol behavior across all AWS platform configurations.
    • Expanded coverage to include AWS dual-stack environments.
    • Removed outdated platform-specific checks from the test scenarios.

…WS clusters

The cluster-ingress-operator now supports PROXY protocol for NLB by
default (OCPBUGS-63219) on AWS. Thus, we need to partially revert NE-2422
to use proxy protocol for the client.

This addresses the below failed e2e test in AWS dualstack periodic jobs:

[sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel]
@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: automatic 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 Aug 17, 2026
@openshift-ci-robot

openshift-ci-robot commented Aug 17, 2026

Copy link
Copy Markdown

@tthvo: This pull request references Jira Issue OCPBUGS-111704, 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 New, 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:

The cluster-ingress-operator now supports PROXY protocol for NLB by default (OCPBUGS-63219) on AWS. Thus, we need to partially revert NE-2422 to use proxy protocol for the client.

This addresses the below failed e2e test in AWS dualstack periodic jobs:

[sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel]

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.

@openshift-ci-robot

Copy link
Copy Markdown

@tthvo: This pull request references Jira Issue OCPBUGS-111704, 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:

The cluster-ingress-operator now supports PROXY protocol for NLB by default (OCPBUGS-63219) on AWS. Thus, we need to partially revert NE-2422 to use proxy protocol for the client.

This addresses the below failed e2e test in AWS dualstack periodic jobs:

[sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel]

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.

@openshift-ci
openshift-ci Bot requested review from Miciah and grzpiotrowski August 17, 2026 23:09
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

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: 1d8f9c72-3bd7-4966-8ef4-308793810584

📥 Commits

Reviewing files that changed from the base of the PR and between d5ed70f and f8da131.

📒 Files selected for processing (1)
  • test/extended/router/metrics.go

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


Walkthrough

The router metrics test now enables proxy protocol for all AWS platforms. It removes the dual-stack detection and exclusion logic.

Changes

Router metrics test

Layer / File(s) Summary
AWS proxy protocol selection
test/extended/router/metrics.go
The test enables proxyProtocol based only on the AWS infrastructure platform type. AWS dual-stack detection and exclusion logic were removed.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Merge Risk: ⚪ Minimal · up to f8da1

The PR is a small localized test adjustment; no actionable merge-blocking risk remains, and it is merge-ready after routine repository checks and review.

Suggested labels: ready-for-human-review

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 diff changes only AWS proxy-protocol setup logic. All Ginkgo Describe/It titles in the file remain static and contain no runtime values.
Test Structure And Quality ✅ Passed The diff only changes AWS proxy selection. It does not add tests, resources, waits, or assertions; existing BeforeEach/AfterEach cleanup and bounded polling remain unchanged.
Microshift Test Compatibility ✅ Passed The commit adds no Ginkgo test; it changes existing setup only. The enclosing suite already skips MicroShift via IsMicroShiftCluster and g.Skip().
Single Node Openshift (Sno) Test Compatibility ✅ Passed The diff only changes AWS proxy-protocol detection. It adds no Ginkgo tests or multi-node assumptions; existing tests are unchanged and have no SNO failure condition.
Topology-Aware Scheduling Compatibility ✅ Passed HEAD changes only test/extended/router/metrics.go; it updates AWS PROXY selection and introduces no deployment, controller, replica, affinity, topology-spread, node, taint, or PDB scheduling constr...
Ote Binary Stdout Contract ✅ Passed The diff only changes proxyProtocol assignment inside Ginkgo BeforeEach; no process-level stdout or logging writes were added in metrics.go or the router test package.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The PR changes only proxy-protocol selection; parent and HEAD both contain the same four Ginkgo It nodes. URLs use net.JoinHostPort or IPUrl, and access remains cluster-internal.
No-Weak-Crypto ✅ Passed The commit only changes AWS proxyProtocol selection and removes platform/IP-family checks; no weak crypto, custom crypto, or secret comparisons were added.
Container-Privileges ✅ Passed The diff only changes AWS proxy-protocol selection in a Go test; it adds no container/Kubernetes manifest or privilege settings.
No-Sensitive-Data-In-Logs ✅ Passed The diff only changes AWS proxy-protocol selection; it adds no logging and does not alter existing credential, token, host, or metrics logging paths.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: enabling PROXY protocol for the router metrics client on AWS clusters.
✨ 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 added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Aug 17, 2026
@tthvo

tthvo commented Aug 17, 2026

Copy link
Copy Markdown
Member Author

/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-installer-dualstack-ipv6-primary
/payload-job periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-installer-dualstack-ipv4-primary

@openshift-ci

openshift-ci Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

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

  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-installer-dualstack-ipv6-primary
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-installer-dualstack-ipv4-primary

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/64e83130-9a91-11f1-980d-fbf2d837ad3c-0

@tthvo

tthvo commented Aug 17, 2026

Copy link
Copy Markdown
Member Author

/pipeline required

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-csi
/test e2e-aws-ovn-fips
/test e2e-aws-ovn-microshift
/test e2e-aws-ovn-microshift-serial
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-gcp-csi
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-ipv6
/test e2e-vsphere-ovn
/test e2e-vsphere-ovn-upi

@tthvo

tthvo commented Aug 18, 2026

Copy link
Copy Markdown
Member Author

/payload-job periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-installer-dualstack-ipv6-primary
/payload-job periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-installer-dualstack-ipv4-primary

@openshift-ci

openshift-ci Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

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

  • periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-installer-dualstack-ipv6-primary
  • periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-installer-dualstack-ipv4-primary

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/d75cb250-9a9f-11f1-8f88-e757515d10b0-0

@tthvo

tthvo commented Aug 18, 2026

Copy link
Copy Markdown
Member Author

/cherry-pick release-5.0

@openshift-cherrypick-robot

Copy link
Copy Markdown

@tthvo: once the present PR merges, I will cherry-pick it on top of release-5.0 in a new PR and assign it to you.

Details

In response to this:

/cherry-pick release-5.0

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.

@openshift-trt

openshift-trt Bot commented Aug 18, 2026

Copy link
Copy Markdown

Risk analysis has seen new tests most likely introduced by this PR.
Please ensure that new tests meet guidelines for naming and stability.

New Test Risks for sha: f8da131

Job Name New Test Risk
pull-ci-openshift-origin-main-e2e-vsphere-ovn Medium - "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should machine network should be correlated with node networking [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" is a new test, and was only seen in one job.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Medium - "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should machines should have all specified portgroup associated with their failure domain [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" is a new test, and was only seen in one job.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Medium - "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should node VMs should have all specified portgroups attached which are associated with their failure domain [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" is a new test, and was only seen in one job.
pull-ci-openshift-origin-main-e2e-vsphere-ovn Medium - "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should node addresses should be correlated with the machine network [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" is a new test, and was only seen in one job.

New tests seen in this PR at sha: f8da131

  • "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should machine network should be correlated with node networking [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" [Total: 1, Pass: 1, Fail: 0, Flake: 0]
  • "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should machines should have all specified portgroup associated with their failure domain [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" [Total: 1, Pass: 1, Fail: 0, Flake: 0]
  • "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should node VMs should have all specified portgroups attached which are associated with their failure domain [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" [Total: 1, Pass: 1, Fail: 0, Flake: 0]
  • "[sig-cluster-lifecycle][platform:vsphere] Managed cluster should node addresses should be correlated with the machine network [apigroup:machine.openshift.io][Suite:openshift/conformance/parallel]" [Total: 1, Pass: 1, Fail: 0, Flake: 0]

@tthvo

tthvo commented Aug 18, 2026

Copy link
Copy Markdown
Member Author

/verified by 5.0/5.1 payload testing (the router/metrics test passed) and presubmits (no regression)

Based on #31526 (comment) and #31526 (comment), both 5.0/5.1 AWS dual-stack IPv4-primary and IPv6-primary periodic jobs passed full green. This PR indeed fixes the test [sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel] in aws dual-stack environment 👍 Additionally, there's no test regression, afaict, from the presubmit e2es.

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Aug 18, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@tthvo: This PR has been marked as verified by 5.0/5.1 payload testing (the router/metrics test passed) and presubmits (no regression).

Details

In response to this:

/verified by 5.0/5.1 payload testing (the router/metrics test passed) and presubmits (no regression)

Based on #31526 (comment) and #31526 (comment), both 5.0/5.1 AWS dual-stack IPv4-primary and IPv6-primary periodic jobs passed full green. This PR indeed fixes the test [sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel] in aws dual-stack environment 👍 Additionally, there's no test regression, afaict, from the presubmit e2es.

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.

@alebedev87

Copy link
Copy Markdown
Contributor

/approve

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 18, 2026
@sadasu

sadasu commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

/lgtm

Thanks!

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 18, 2026
@openshift-ci

openshift-ci Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alebedev87, sadasu, tthvo

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-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 9c5b789 and 2 for PR HEAD f8da131 in total

@gcs278

gcs278 commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Cross reference: proxy protocol was set as default for NLBs in openshift/cluster-ingress-operator#1426

// Dual-stack installations on AWS are forced to use NLB type, which
// doesn't accept proxy protocol (yet).
proxyProtocol = (platformType == configv1.AWSPlatformType) && !dualStackIPFamily
proxyProtocol = platformType == configv1.AWSPlatformType

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Does this test ever run on upgraded clusters? If a cluster is installed at version 4.22 or earlier with its "default" IngressController configured to use an NLB, then the operator will configure the NLB and router not to use PROXY protocol, and the operator will not change the NLB or router to use PROXY protocol on upgrade.

It would be safer to check the service or router deployment to determine whether they are configured to use PROXY protocol. That would make the test more robust across OpenShift releases and across upgrade scenarios, such as the one that I described.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@Miciah good catch. it's not a problem today because I see no variants of aws.*dualstack.*upgrade.* jobs. So, this will work, though fragile.

But I agree - our default ingress controller being upgraded from 4.22 will not have proxy protocol. If a upgrade variant of dualstack is ever added for 5.0, this test will break. Resolving the Router deployment proxy env variable is a better way to handle this.

But, I wouldn't say it's a blocker for this PR. Can be done in a follow up.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Another +1 from me. Checking the router setting is the better way about this 👍

it's not a problem today because I see no variants of aws.*dualstack.upgrade. jobs. So, this will work, though fragile.

Though, I wanted to say that AWS dual-stack networking is, as of now, a day-1-only feature (set at install time without options to switch day-2) and is TechPreview in 4.22; thus, there's no upgrade path to 5.0+ (or 4.23+). So, we should be safe. The upgrade will only be available in 5.0+/4.23+.

@openshift-ci

openshift-ci Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

@tthvo: 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.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 6008277 into openshift:main Aug 18, 2026
22 checks passed
@openshift-ci-robot

Copy link
Copy Markdown

@tthvo: Jira Issue Verification Checks: Jira Issue OCPBUGS-111704
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-111704 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

The cluster-ingress-operator now supports PROXY protocol for NLB by default (OCPBUGS-63219) on AWS. Thus, we need to partially revert NE-2422 (#30934), specifically a97b2ad, to use proxy protocol for the client.

This addresses the below failed e2e test in AWS dualstack periodic jobs:

[sig-network][Feature:Router] The HAProxy router should expose prometheus metrics for a route [apigroup:route.openshift.io] [Suite:openshift/conformance/parallel]

Summary by CodeRabbit

  • Tests
  • Updated router metrics testing to validate proxy protocol behavior across all AWS platform configurations.
  • Expanded coverage to include AWS dual-stack environments.
  • Removed outdated platform-specific checks from the test scenarios.

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.

@openshift-cherrypick-robot

Copy link
Copy Markdown

@tthvo: new pull request created: #31533

Details

In response to this:

/cherry-pick release-5.0

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.

@openshift-merge-robot

Copy link
Copy Markdown
Contributor

Fix included in release 5.1.0-0.nightly-2026-08-20-065836

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. 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. lgtm Indicates that a PR is ready to be merged. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants