Adding PQC to perfscale - #81040
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds an OpenShift QE PQC step that configures and verifies API server TLS settings. Registers the step and chain with ownership metadata. Adds scheduled AWS performance-scale jobs for OpenShift 4.22 and 5.0 configurations. ChangesPQC performance-scale automation
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant PerformanceScaleJob
participant PQCChain
participant PQCCommands
participant OpenShiftAPIServer
participant KubeAPIServerOperator
PerformanceScaleJob->>PQCChain: Run openshift-qe-pqc
PQCChain->>PQCCommands: Execute PQC command script
PQCCommands->>OpenShiftAPIServer: Apply TLS security profile
PQCCommands->>KubeAPIServerOperator: Poll rollout conditions
KubeAPIServerOperator-->>PQCCommands: Return operator status
PQCCommands->>OpenShiftAPIServer: Verify applied TLS profile
Possibly related PRs
Suggested labels: Suggested reviewers: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error)
✅ Passed checks (14 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Not sure why |
|
/pj-rehearse ? |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@jtaleric: job(s): ? either don't exist or were not found to be affected, and cannot be rehearsed |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh (1)
2-3: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valuePrefer
set -euo pipefailand avoid leaving-xenabled.The script handles only non-sensitive
ocoperations, so tracing is not a credential-leak risk here. However, per guidelines the default should beset -euo pipefail(without-x), enabling-xonly while actively debugging. Adding-u/-o pipefailalso catches unset vars and masked pipe failures (e.g., theoc ... | jq/oc ... | greppipelines).♻️ Suggested change
-set -x -set -e +set -euo pipefailAs per coding guidelines: "Default to
set -euo pipefail(without-x) in step registry scripts, and only enable-xwhen actively debugging".🤖 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/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh` around lines 2 - 3, The script currently enables tracing with set -x and only uses set -e; update the top-level shell options in openshift-qe-pqc-commands.sh to default to set -euo pipefail and remove -x unless you are actively debugging. Keep the change focused at the script setup so the existing oc/jq/grep pipeline commands benefit from unset-variable and pipe-failure detection without leaving tracing on.Source: Coding guidelines
🤖 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/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.yaml`:
- Around line 1-5: The PQC chain definition is incomplete and collides with
another registry entry: update the `openshift-qe-pqc` chain in
`openshift-qe-pqc-chain.yaml` so it no longer shares the same `as` name as
`openshift-qe-pqc-ref.yaml`, and add the missing `steps` list so the chain
actually runs the PQC TLS/setup step. Use the existing `chain` definition as the
locator, then either rename the chain or ref entry to a unique `as` value and
wire the appropriate step reference into `steps` so validation passes and the
workflow executes.
In `@ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh`:
- Around line 28-53: The rollout check in openshift-qe-pqc-commands.sh can exit
successfully from the pre-change steady state because the initial wait only
warns and the loop in the kube-apiserver monitoring logic may see
Progressing=False/Available=True/Degraded=False before the TLS update applies.
Update the flow around the initial oc get co kube-apiserver wait and the main
status loop so completion is only allowed after observing the operator enter
Progressing and then return to stable, or require current_tls from oc get
apiserver cluster to equal Custom before printing rollout complete.
---
Nitpick comments:
In `@ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh`:
- Around line 2-3: The script currently enables tracing with set -x and only
uses set -e; update the top-level shell options in openshift-qe-pqc-commands.sh
to default to set -euo pipefail and remove -x unless you are actively debugging.
Keep the change focused at the script setup so the existing oc/jq/grep pipeline
commands benefit from unset-variable and pipe-failure detection without leaving
tracing on.
🪄 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: Enterprise
Run ID: 6633a4b5-a08a-44d1-96ac-0a0d14240f55
⛔ Files ignored due to path filters (1)
ci-operator/jobs/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main-periodics.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (8)
ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86.yamlci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-5.0-nightly-x86.yamlci-operator/step-registry/openshift-qe/pqc/OWNERSci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.metadata.jsonci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.yamlci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.shci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.metadata.jsonci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.yaml
|
|
||
| chain: | ||
| as: openshift-qe-pqc | ||
| documentation: |- | ||
| This chain executes pqc setup No newline at end of file |
There was a problem hiding this comment.
🎯 Functional Correctness | 🔴 Critical
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Confirm the duplicate registry name and inspect existing chains for required `steps:`.
fd -t f 'openshift-qe-pqc' ci-operator/step-registry/openshift-qe/pqc
echo "=== elements named openshift-qe-pqc ==="
rg -nP '^\s*as:\s*openshift-qe-pqc\s*$' ci-operator/step-registry
echo "=== sample chains: do they all have steps? ==="
fd -t f -e yaml -g '*-chain.yaml' ci-operator/step-registry/openshift-qe | head -5 | while read -r f; do echo "--- $f"; rg -n 'steps:' "$f" || echo "NO steps in $f"; doneRepository: openshift/release
Length of output: 1334
Duplicate as name and missing steps in PQC chain
Two blocking issues prevent the PQC workflow from building or running:
- Name Collision: Both
openshift-qe-pqc-ref.yamlandopenshift-qe-pqc-chain.yamldeclareas: openshift-qe-pqc. The step registry namespace is shared across refs, chains, and workflows, causingmake validate-step-registryto fail. - Empty Chain Execution: The
openshift-qe-pqcchain definition lacks astepslist. Without steps, the chain executes nothing, so the PQC TLS setup will not run.
Rename the ref to resolve the collision and add the step reference to the chain:
🐛 Proposed fix
# ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.yaml
change: Rename file to openshift-qe-pqc-setup-ref.yaml and update 'as' key
- as: openshift-qe-pqc
+ as: openshift-qe-pqc-setup
# ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.yaml
chain:
as: openshift-qe-pqc
+ steps:
+ - ref: openshift-qe-pqc-setup
documentation: |-
This chain executes pqc setup Alternatively, remove chain.yaml and reference the ref directly in CI configs as - ref: openshift-qe-pqc.
🤖 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/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.yaml`
around lines 1 - 5, The PQC chain definition is incomplete and collides with
another registry entry: update the `openshift-qe-pqc` chain in
`openshift-qe-pqc-chain.yaml` so it no longer shares the same `as` name as
`openshift-qe-pqc-ref.yaml`, and add the missing `steps` list so the chain
actually runs the PQC TLS/setup step. Use the existing `chain` definition as the
locator, then either rename the chain or ref entry to a unique `as` value and
wire the appropriate step reference into `steps` so validation passes and the
workflow executes.
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh (1)
3-3: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUse
set -euo pipefailinstead of bareset -e.
set -ealone leaves unset variables and pipeline failures unhandled. The script relies on several piped commands (e.g., Lines 28, 67, 107) and variable expansions, so-uand-o pipefailmake failures surface deterministically.♻️ Proposed change
-set -e +set -euo pipefailAs per coding guidelines: "Default to
set -euo pipefail(without-x) in step registry scripts".🤖 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/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh` at line 3, The script currently uses only set -e, which leaves unset variables and pipeline failures unchecked. Update the shell options at the top of openshift-qe-pqc-commands.sh to use set -euo pipefail so failures in variable expansions and piped commands are surfaced consistently; this applies to the script’s command flow and any later pipelines it runs.Source: Coding guidelines
🤖 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/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh`:
- Around line 86-93: The crypto verification logic in
openshift-qe-pqc-commands.sh is only warning on mismatch, which lets a bad
rollout pass silently. Update the verification block around the
actual_ciphers/actual_tls/actual_groups checks so that the failure path in the
script exits non-zero instead of just echoing a warning, while keeping the
success message for the matching case. Use the existing crypto verification
condition and the surrounding step flow to ensure a mismatch fails the step.
---
Nitpick comments:
In `@ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh`:
- Line 3: The script currently uses only set -e, which leaves unset variables
and pipeline failures unchecked. Update the shell options at the top of
openshift-qe-pqc-commands.sh to use set -euo pipefail so failures in variable
expansions and piped commands are surfaced consistently; this applies to the
script’s command flow and any later pipelines it runs.
🪄 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: Enterprise
Run ID: 11bbdb10-380c-44bd-ad20-db609eb594ae
⛔ Files ignored due to path filters (1)
ci-operator/jobs/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main-periodics.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (8)
ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86.yamlci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-5.0-nightly-x86.yamlci-operator/step-registry/openshift-qe/pqc/OWNERSci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.metadata.jsonci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.yamlci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.shci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.metadata.jsonci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.yaml
✅ Files skipped from review due to trivial changes (4)
- ci-operator/step-registry/openshift-qe/pqc/OWNERS
- ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.metadata.json
- ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.yaml
- ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-chain.metadata.json
🚧 Files skipped from review as they are similar to previous changes (3)
- ci-operator/step-registry/openshift-qe/pqc/openshift-qe-pqc-ref.yaml
- ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-5.0-nightly-x86.yaml
- ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86.yaml
| # Verify settings match | ||
| if [[ "$actual_ciphers" == "ECDHE-ECDSA-AES128-GCM-SHA256" ]] && \ | ||
| [[ "$actual_tls" == "VersionTLS12" ]] && \ | ||
| [[ "$actual_groups" == "X25519MLKEM768 X25519" ]]; then | ||
| echo "✓ Crypto settings verified correctly!" | ||
| else | ||
| echo "⚠ Warning: Crypto settings may not match expected values" | ||
| fi |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Crypto verification mismatch is non-fatal — the step passes even when the wrong profile is applied.
When actual_ciphers/actual_tls/actual_groups don't match the expected values, the script only prints a warning (Line 92) and the step still exits 0. For a verification step this silently masks a failed rollout. Consider exiting non-zero on mismatch so the job actually fails.
🛡️ Proposed change
else
- echo "⚠ Warning: Crypto settings may not match expected values"
+ echo "ERROR: Crypto settings do not match expected values"
+ exit 1
fi📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Verify settings match | |
| if [[ "$actual_ciphers" == "ECDHE-ECDSA-AES128-GCM-SHA256" ]] && \ | |
| [[ "$actual_tls" == "VersionTLS12" ]] && \ | |
| [[ "$actual_groups" == "X25519MLKEM768 X25519" ]]; then | |
| echo "✓ Crypto settings verified correctly!" | |
| else | |
| echo "⚠ Warning: Crypto settings may not match expected values" | |
| fi | |
| # Verify settings match | |
| if [[ "$actual_ciphers" == "ECDHE-ECDSA-AES128-GCM-SHA256" ]] && \ | |
| [[ "$actual_tls" == "VersionTLS12" ]] && \ | |
| [[ "$actual_groups" == "X25519MLKEM768 X25519" ]]; then | |
| echo "✓ Crypto settings verified correctly!" | |
| else | |
| echo "ERROR: Crypto settings do not match expected values" | |
| exit 1 | |
| fi |
🤖 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/step-registry/openshift-qe/pqc/openshift-qe-pqc-commands.sh`
around lines 86 - 93, The crypto verification logic in
openshift-qe-pqc-commands.sh is only warning on mismatch, which lets a bad
rollout pass silently. Update the verification block around the
actual_ciphers/actual_tls/actual_groups checks so that the failure path in the
script exits non-zero instead of just echoing a warning, while keeping the
success message for the matching case. Use the existing crypto verification
condition and the surrounding step flow to ensure a mismatch fails the step.
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: your |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-5.0-nightly-x86-control-plane-6nodes-pqc |
|
@jtaleric: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@jtaleric: The following test 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. |
…hift#82763) * Add driver-toolkit qualifier for 5.0 nightly verification jobs * Run make release-controllers to regenerate priv 5.0 config Regenerates core-services/release-controller/_releases/priv/release-ocp-5.0.json to include the driver-toolkit qualifier, keeping generated output in sync with the release-qualifiers.yaml and release-ocp-5.0.json changes.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: jtaleric 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 |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-4.22-nightly-x86.yaml (1)
41-42: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low valueThe new PQC job reuses the 05:00 Tue/Fri slot in both variants. Both new
control-plane-6nodes-pqcjobs usecron: 0 5 * * 2,5andcluster_profile: aws-perfscale-qe, and each variant already schedulescontrol-plane-24nodesin that slot. Concurrent large AWS installs on one shared profile can exhaust the quota and cause install failures or queueing.
ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-4.22-nightly-x86.yaml#L41-L42: offset this cron from thecontrol-plane-24nodesschedule at Line 224 (0 5 * * 2,5).ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-5.0-nightly-x86.yaml#L78-L79: offset this cron from thecontrol-plane-24nodesschedule at Line 226 (0 5 * * 6,2,4,5), which overlaps on Tuesday and Friday.🤖 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-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-4.22-nightly-x86.yaml` around lines 41 - 42, The new control-plane-6nodes-pqc cron schedules overlap with control-plane-24nodes on the shared AWS profile. Offset the cron in ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-4.22-nightly-x86.yaml lines 41-42 from the Tuesday/Friday 05:00 slot, and likewise offset the cron in ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-5.0-nightly-x86.yaml lines 78-79 to avoid its Tuesday/Friday overlaps; leave the control-plane-24nodes schedules unchanged.
🤖 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.
Nitpick comments:
In
`@ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-4.22-nightly-x86.yaml`:
- Around line 41-42: The new control-plane-6nodes-pqc cron schedules overlap
with control-plane-24nodes on the shared AWS profile. Offset the cron in
ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-4.22-nightly-x86.yaml
lines 41-42 from the Tuesday/Friday 05:00 slot, and likewise offset the cron in
ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-5.0-nightly-x86.yaml
lines 78-79 to avoid its Tuesday/Friday overlaps; leave the
control-plane-24nodes schedules unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: eec83430-5f8b-4af5-82e4-e775e3fa6644
📒 Files selected for processing (2)
ci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-4.22-nightly-x86.yamlci-operator/config/openshift-eng/ocp-perfscale/openshift-eng-ocp-perfscale-main__aws-5.0-nightly-x86.yaml
|
[REHEARSALNOTIFIER]
Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
Summary by CodeRabbit
This PR adds PQC coverage to the OpenShift QE perfscale CI infrastructure.
openshift-qe-pqcstep and step chain.APIServerPQC TLS security profile.TLSCurvePreferencesand runs PQC, worker-scale, control-plane, and Orion workflows.