Skip to content

NE-2821: Add tls-scanner job for TLS1.3 on Gateway API - #82586

Open
rikatz wants to merge 1 commit into
openshift:mainfrom
rikatz:tls-scanner-gatewayapi
Open

NE-2821: Add tls-scanner job for TLS1.3 on Gateway API#82586
rikatz wants to merge 1 commit into
openshift:mainfrom
rikatz:tls-scanner-gatewayapi

Conversation

@rikatz

@rikatz rikatz commented Jul 28, 2026

Copy link
Copy Markdown
Member

This PR adds a new set of jobs for cluster-ingress-operator to test TLS 1.3 adherence.

It expects a cluster with TLS 1.3 and Adherence strict, and will provision a new Gateway and validate if the gateway is adherent with the tls-scanner

Summary by CodeRabbit

  • Adds optional TLS 1.3 Gateway API scanning jobs to Cluster Ingress Operator CI for supported release branches.
  • Configures the jobs with the TLS scanner image, Gateway API setup, scanner resources, and strict TLS 1.3 adherence checks.
  • Extends TLS scanner steps with COMPONENT_FILTER, allowing scans to target pods by component labels and avoid unrelated workloads.

@openshift-ci-robot

openshift-ci-robot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

@rikatz: This pull request references NE-2821 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:

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 openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 28, 2026
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Adds component-scoped TLS scanning and optional Gateway API TLS 1.3 scanning pipelines for cluster-ingress-operator master and releases 4.23, 5.0, and 5.1.

Changes

TLS scanner Gateway API integration

Layer / File(s) Summary
Component filter support
ci-operator/step-registry/tls/scanner/{run,hypershift-run}/*
The TLS scanner steps declare COMPONENT_FILTER, document pod label matching, and pass non-empty filters to the scanner command.
Gateway API pipeline wiring
ci-operator/config/openshift/cluster-ingress-operator/*
Master and release configurations add the tls-scanner-tool base image and optional tls-scanner-gatewayapi jobs with Gateway API setup, TLS 1.3 scanning, resource settings, skip rules, and the ipi-aws workflow.

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

Sequence Diagram(s)

sequenceDiagram
  participant tls-scanner-gatewayapi
  participant gatewayapi-tls-scanner-setup
  participant tls-scanner-run
  tls-scanner-gatewayapi->>gatewayapi-tls-scanner-setup: Run make gatewayapi-tls-scanner-setup
  gatewayapi-tls-scanner-setup->>tls-scanner-run: Provide configured Gateway API environment
  tls-scanner-run->>tls-scanner-run: Apply COMPONENT_FILTER and scan TLS 1.3 targets
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (14 passed)
Check name Status Explanation
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 Touched files only add static CI job/step names and shell args; no It/Describe/Context/When titles or dynamic test names appear.
Test Structure And Quality ✅ Passed No Ginkgo test code changed; the PR only adds CI/job config and step-registry shell/YAML plumbing.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e test code was added; the PR only adds CI config and shell-step refs, so MicroShift compatibility isn’t implicated.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: PR only adds CI/job config and step env; no new Ginkgo tests or multi-node/HA assumptions were introduced.
Topology-Aware Scheduling Compatibility ✅ Passed Changes only add CI/job config and TLS-scanner step env/args; no nodeSelector, affinity, spread constraints, PDBs, or topology-dependent scheduling logic.
Ote Binary Stdout Contract ✅ Passed Changes are CI config and bash step scripts only; no OTE binary process-level code (main/TestMain/init/suite setup) was added or modified.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The PR only adds CI config/step-registry wiring; no new Ginkgo tests or public-internet/IPv4-only assumptions were introduced.
No-Weak-Crypto ✅ Passed No MD5/SHA1/DES/RC4/3DES/ECB, custom crypto, or secret comparisons were added; changes are CI config and a component filter in the TLS scanner wrapper.
Container-Privileges ✅ Passed No new privilege-related manifest fields were added; the gatewayapi jobs only add env/test refs, and the scanner script change adds COMPONENT_FILTER only.
No-Sensitive-Data-In-Logs ✅ Passed No new secret/PII/hostname logging found; the added echoes only print filters/resources, and token env vars are exported but never echoed.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding a tls-scanner Gateway API job for TLS 1.3.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci

openshift-ci Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: rikatz
Once this PR has been reviewed and has the lgtm label, please assign richardsonnick 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
openshift-ci Bot requested review from Miciah and grzpiotrowski July 28, 2026 21:33

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml`:
- Around line 314-341: Regenerate CI metadata for the new tls-scanner-gatewayapi
job by running make update once after all edits, then commit the generated
output. Apply this for the master job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml:314-341),
4.23 job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-4.23.yaml:287-314),
5.0 job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0.yaml:288-315),
and 5.1 job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.1.yaml:287-314).

In
`@ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0.yaml`:
- Around line 288-315: Regenerate the Prow-job configuration for the new
tls-scanner-gatewayapi job by running the repository’s make update target, and
commit all generated metadata and Prow-job output alongside the configuration
change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: 551de558-e2c8-4769-9b1c-7ec8ae4f47f3

📥 Commits

Reviewing files that changed from the base of the PR and between 94b33b7 and 76bb84a.

⛔ Files ignored due to path filters (4)
  • ci-operator/jobs/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-4.23-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.1-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (7)
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-4.23.yaml
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0.yaml
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.1.yaml
  • ci-operator/step-registry/tls/scanner/hypershift-run/tls-scanner-hypershift-run-ref.yaml
  • ci-operator/step-registry/tls/scanner/run/tls-scanner-run-commands.sh
  • ci-operator/step-registry/tls/scanner/run/tls-scanner-run-ref.yaml

Comment on lines +314 to +341
- always_run: false
as: tls-scanner-gatewayapi
optional: true
pipeline_skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|OWNERS_ALIASES|PROJECT|LICENSE)$
steps:
cluster_profile: openshift-org-aws
env:
COMPONENT_FILTER: tls-scanner-gatewayapi
FEATURE_SET: TechPreviewNoUpgrade
GATEWAY_NAME: tls-scanner-gatewayapi
SCAN_NAMESPACE: openshift-ingress
SCANNER_CPU: "1"
SCANNER_MEMORY: 1Gi
TLS_13_ENABLE_TLS_ADHERENCE: "true"
TLS_13_TLS_ADHERENCE_POLICY: StrictAllComponents
test:
- ref: tls-13
- as: setup-gateway
cli: latest
commands: make gatewayapi-tls-scanner-setup
env:
- name: GATEWAY_NAME
from: src
resources:
requests:
cpu: 100m
- ref: tls-scanner-run
workflow: ipi-aws

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.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Regenerate CI configuration for all new jobs.

Each branch adds the same structural tls-scanner-gatewayapi job without generated Prow-job/metadata changes. Run make update once after all edits and commit its output.

  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml#L314-L341: regenerate output for the master job.
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-4.23.yaml#L287-L314: regenerate output for the 4.23 job.
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0.yaml#L288-L315: regenerate output for the 5.0 job.
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.1.yaml#L287-L314: regenerate output for the 5.1 job.
📍 Affects 4 files
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml#L314-L341 (this comment)
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-4.23.yaml#L287-L314
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0.yaml#L288-L315
  • ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.1.yaml#L287-L314
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml`
around lines 314 - 341, Regenerate CI metadata for the new
tls-scanner-gatewayapi job by running make update once after all edits, then
commit the generated output. Apply this for the master job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml:314-341),
4.23 job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-4.23.yaml:287-314),
5.0 job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.0.yaml:288-315),
and 5.1 job
(ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-release-5.1.yaml:287-314).

Source: Coding guidelines

@rikatz

rikatz commented Jul 28, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse --pull=openshift/cluster-ingress-operator#1480 pull-ci-openshift-cluster-ingress-operator-master-tls-scanner-gatewayapi

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@rikatz: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@rikatz: job(s): --pull=openshift/cluster-ingress-operator#1480 either don't exist or were not found to be affected, and cannot be rehearsed

@rikatz

rikatz commented Jul 28, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse help

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@rikatz: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@rikatz

rikatz commented Jul 28, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse list

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@rikatz: job(s): help either don't exist or were not found to be affected, and cannot be rehearsed

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@rikatz: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@rikatz: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-gcp-filestore-csi-driver-operator-main-tls-scanner-gcp-filestore openshift/gcp-filestore-csi-driver-operator presubmit Registry content changed
pull-ci-openshift-gcp-filestore-csi-driver-operator-release-5.1-tls-scanner-gcp-filestore openshift/gcp-filestore-csi-driver-operator presubmit Registry content changed
pull-ci-openshift-gcp-filestore-csi-driver-operator-release-5.0-tls-scanner-gcp-filestore openshift/gcp-filestore-csi-driver-operator presubmit Registry content changed
pull-ci-openshift-gcp-filestore-csi-driver-operator-release-4.23-tls-scanner-gcp-filestore openshift/gcp-filestore-csi-driver-operator presubmit Registry content changed
pull-ci-openshift-tls-scanner-main-smoke-tls openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.1-default-tls openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.1-default-pqc-readiness openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.1-tls13-adherence openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.1-tls13-pqc-readiness openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.0-default-tls openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.0-default-pqc-readiness openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.0-tls13-adherence openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-5.0-tls13-pqc-readiness openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-4.23-default-tls openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-4.23-default-pqc-readiness openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-4.23-tls13-adherence openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-4.23-tls13-pqc-readiness openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-4.22-default-tls openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-tls-scanner-release-4.22-tls13-conformance openshift/tls-scanner presubmit Registry content changed
pull-ci-openshift-vertical-pod-autoscaler-operator-main-e2e-aws-olm openshift/vertical-pod-autoscaler-operator presubmit Registry content changed
pull-ci-openshift-oadp-operator-oadp-dev-4.22-tls-pqc-readiness openshift/oadp-operator presubmit Registry content changed
pull-ci-openshift-oadp-operator-oadp-dev-4.22-tls13-adherence openshift/oadp-operator presubmit Registry content changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-tls-pqc-readiness openshift/oadp-operator presubmit Registry content changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.23-tls13-adherence openshift/oadp-operator presubmit Registry content changed
pull-ci-openshift-oadp-operator-oadp-1.6-4.22-tls-pqc-readiness openshift/oadp-operator presubmit Registry content changed

A total of 216 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs.

A full list of affected jobs can be found here

Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@openshift-ci

openshift-ci Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

@rikatz: The following test 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/rehearse/openshift/cluster-ingress-operator/master/tls-scanner-gatewayapi 76bb84a link unknown /pj-rehearse pull-ci-openshift-cluster-ingress-operator-master-tls-scanner-gatewayapi

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.

@gcs278

gcs278 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

/assign @gcs278

@gcs278

gcs278 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

/assign @bentito

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

Labels

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.

4 participants