Skip to content

OPNET-601: Add on-prem haproxy timeline to e2e interval chart#31290

Open
mkowalski wants to merge 1 commit into
openshift:mainfrom
mkowalski:opnet-601-haproxy-interval-template
Open

OPNET-601: Add on-prem haproxy timeline to e2e interval chart#31290
mkowalski wants to merge 1 commit into
openshift:mainfrom
mkowalski:opnet-601-haproxy-interval-template

Conversation

@mkowalski

@mkowalski mkowalski commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Implements https://issues.redhat.com/browse/OPNET-601 (mirrored at https://redhat.atlassian.net/browse/OPNET-601).

The on-prem haproxy monitor test added in #29149 constructs intervals with source OnPremHaproxyMonitor when haproxy detects a kube-apiserver as down, but the spyglass interval chart template had no handler for that source, so the intervals were present in the intervals JSON yet never rendered on the timeline.

As suggested in #29149 (review), update the interval template so haproxy events can be correlated with apiserver disruption events, following the pattern of 08cb5eb:

  • add isOnPremHaproxyActivity() precondition matching source === "OnPremHaproxyMonitor"
  • add onPremHaproxyValue() classifying the intervals as Disruption (same coloring as the apiserver disruption rows)
  • add an onprem-haproxy timeline group placed next to the disruption, apiserver-shutdown and api-unreachable groups
  • regenerate bindata via make update-bindata

Verified with make verify-bindata, go build of the affected packages, and node --check on the template JavaScript.

Summary by CodeRabbit

  • New Features
    • Adds monitoring and visualization for OnPrem HAProxy activity within e2e performance charts.
    • Introduces a dedicated timeline group that surfaces OnPrem HAProxy disruption events.
    • Adds filtering and custom formatting to recognize and classify OnPrem HAProxy monitor events for clearer visibility and analysis.

The on-prem haproxy monitor test constructs intervals with source
OnPremHaproxyMonitor when haproxy detects a kube-apiserver as down,
but the spyglass interval chart template had no handler for that
source, so the intervals were never rendered.

Add a precondition function, a value function and an onprem-haproxy
timeline group placed next to the disruption and apiserver-shutdown
groups, so that haproxy events can be correlated with apiserver
disruption events. Follows the pattern of 08cb5eb.

Regenerated bindata with 'make update-bindata'.
@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 the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 11, 2026
@openshift-ci-robot

openshift-ci-robot commented Jun 11, 2026

Copy link
Copy Markdown

@mkowalski: This pull request references OPNET-601 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Implements https://issues.redhat.com/browse/OPNET-601 (mirrored at https://redhat.atlassian.net/browse/OPNET-601).

The on-prem haproxy monitor test added in #29149 constructs intervals with source OnPremHaproxyMonitor when haproxy detects a kube-apiserver as down, but the spyglass interval chart template had no handler for that source, so the intervals were present in the intervals JSON yet never rendered on the timeline.

As suggested in #29149 (review), update the interval template so haproxy events can be correlated with apiserver disruption events, following the pattern of 08cb5eb:

  • add isOnPremHaproxyActivity() precondition matching source === "OnPremHaproxyMonitor"
  • add onPremHaproxyValue() classifying the intervals as Disruption (same coloring as the apiserver disruption rows)
  • add an onprem-haproxy timeline group placed next to the disruption, apiserver-shutdown and api-unreachable groups
  • regenerate bindata via make update-bindata

Verified with make verify-bindata, go build of the affected packages, and node --check on the template JavaScript.

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 Jun 11, 2026

Copy link
Copy Markdown
ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: e5b1b3d8-4c4c-4fd2-9180-5e15598b364a

📥 Commits

Reviewing files that changed from the base of the PR and between bde16f5 and e19c8d4.

📒 Files selected for processing (2)
  • e2echart/e2e-chart-template.html
  • test/extended/testdata/bindata.go

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting


Walkthrough

This PR adds detection and formatting for "OnPremHaproxyMonitor" events and wires a new "onprem-haproxy" timeline group into chart rendering and test bindata.

Changes

OnPremHaproxy Timeline Activity

Layer / File(s) Summary
Activity predicate and value formatter
e2echart/e2e-chart-template.html, test/extended/testdata/bindata.go
isOnPremHaproxyActivity identifies intervals with source === "OnPremHaproxyMonitor". onPremHaproxyValue formats them using locator display string and a fixed "Disruption" label. Both functions added to template and test data.
Chart and timeline rendering integration
e2echart/e2e-chart-template.html, test/extended/testdata/bindata.go
New onprem-haproxy timeline group created and populated via createTimelineData using the predicate and formatter. Wiring added to both renderChart and timeline group construction.

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately describes the main change: adding on-prem haproxy timeline support to the e2e interval chart, matching the primary modifications in both files.
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 This PR modifies only a template file (e2e-chart-template.html) and a generated bindata file. No Ginkgo test files or test definitions are added/modified. The check is not applicable.
Test Structure And Quality ✅ Passed PR modifies e2echart/e2e-chart-template.html (HTML/JS template) and auto-generated bindata.go; contains no Ginkgo test code, so test structure check does not apply.
Microshift Test Compatibility ✅ Passed This PR does not add any Ginkgo e2e tests. It only modifies an HTML template file and its generated bindata. The check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests are added in this PR. Changes are limited to HTML/JavaScript template functions for UI rendering of existing events and auto-generated bindata.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only visualization/UI code (HTML template for spyglass timeline chart) and auto-generated test bindata, not deployment manifests or operator code. No scheduling constraints are introduced.
Ote Binary Stdout Contract ✅ Passed No process-level stdout writes introduced. Changes are JavaScript template functions (client-side filtering/formatting) and auto-generated bindata embedding, neither of which affects OTE binary std...
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR does not add any new Ginkgo e2e tests. It only modifies an HTML chart template and regenerates bindata, so the IPv6/disconnected network check does not apply.
No-Weak-Crypto ✅ Passed No weak cryptographic algorithms, custom crypto implementations, or non-constant-time secret comparisons found. The PR only adds display formatting functions for timeline rendering.
Container-Privileges ✅ Passed PR modifies only an HTML/JavaScript template and a Go embedded resource file. Neither is a K8s manifest, and no privilege escalation settings were introduced. The container-privileges check is not...
No-Sensitive-Data-In-Logs ✅ Passed No logging that exposes sensitive data detected. The PR adds UI rendering functions for an e2e chart template with no console.log or logging statements, and no sensitive data patterns.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci

openshift-ci Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mkowalski

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-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 11, 2026
@openshift-ci openshift-ci Bot requested review from p0lyn0mial and sjenning June 11, 2026 15:33
@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

@dgoodwin

Copy link
Copy Markdown
Contributor

@coderabbitai you failed the check Container-Privileges but this PR does not add any such manifests. what file and line are you getting that from

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get all review comments and reviews on PR `#31290`
gh pr view 31290 --repo openshift/origin --json reviews,comments

# Also get the review comments specifically
gh api repos/openshift/origin/pulls/31290/reviews

Length of output: 24590



@dgoodwin, I apologize for the false positive. The Container-Privileges check incorrectly flagged two pre-existing files that are not part of this PR's changes:

  • rt-tests-pod.yaml — flagged for hostPID, hostIPC, hostNetwork, and privileged: true
  • ldapserver-deployment.yaml — flagged for privileged: true

This PR only modifies e2echart/e2e-chart-template.html and test/extended/testdata/bindata.go, neither of which contains any Kubernetes manifests or privilege settings. The check should not have been triggered here — it scanned beyond the PR diff and surfaced pre-existing content unrelated to these changes.

You can safely ignore or override this check for this PR. I'll note this as a known false-positive pattern to improve future behavior.


✏️ Learnings added
Learnt from: dgoodwin
URL: https://github.com/openshift/origin/pull/31290

Timestamp: 2026-06-11T17:11:27.876Z
Learning: In the openshift/origin repository, the Container-Privileges pre-merge check can produce false positives by flagging pre-existing files (e.g., `rt-tests-pod.yaml`, `ldapserver-deployment.yaml`) that are not modified by the PR under review. This check should only flag files actually changed in the PR diff.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@mkowalski

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@mkowalski

Copy link
Copy Markdown
Contributor Author

@coderabbitai summary

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
✅ Action performed

Summary regeneration triggered.

@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 Jun 11, 2026
@openshift-ci

openshift-ci Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

@mkowalski: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-ovn-microshift-serial e19c8d4 link true /test e2e-aws-ovn-microshift-serial
ci/prow/e2e-aws-ovn-microshift e19c8d4 link true /test e2e-aws-ovn-microshift
ci/prow/e2e-aws-ovn-fips e19c8d4 link true /test e2e-aws-ovn-fips
ci/prow/e2e-vsphere-ovn e19c8d4 link true /test e2e-vsphere-ovn
ci/prow/e2e-metal-ipi-ovn-ipv6 e19c8d4 link true /test e2e-metal-ipi-ovn-ipv6
ci/prow/e2e-gcp-ovn e19c8d4 link true /test e2e-gcp-ovn
ci/prow/e2e-gcp-ovn-upgrade e19c8d4 link true /test e2e-gcp-ovn-upgrade
ci/prow/e2e-aws-ovn-serial-2of2 e19c8d4 link true /test e2e-aws-ovn-serial-2of2
ci/prow/e2e-aws-ovn-serial-1of2 e19c8d4 link true /test e2e-aws-ovn-serial-1of2
ci/prow/e2e-vsphere-ovn-upi e19c8d4 link true /test e2e-vsphere-ovn-upi

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.

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-reference Indicates that this PR references a valid Jira ticket of any type. ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants