OCPQE-30425: Add metal SNO IPv6 http-proxy jobs for 4.18-5.0 - #83261
OCPQE-30425: Add metal SNO IPv6 http-proxy jobs for 4.18-5.0#83261snaoum-lang wants to merge 9 commits into
Conversation
dd baremetal-lab-sno-ipv6-static workflow/chain and amd64/arm64 periodics so SNO BIP with IPv6 single-stack and cluster-wide proxy is covered without changing existing SNO jobs.
|
@snaoum-lang: This pull request references OCPQE-30425 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 task to target the "5.0.0" version, but no target version was set. DetailsIn 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. |
|
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:
WalkthroughAdded an IPv6 static bare-metal SNO workflow, its provisioning chain, proxy and bootstrap configuration, ownership metadata, and scheduled amd64 and arm64 HTTP proxy test jobs for releases 4.18 through 5.0. ChangesIPv6 static SNO coverage
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant ReleaseSchedule
participant SNOWorkflow
participant SNOConfigChain
participant ProxyConfig
ReleaseSchedule->>SNOWorkflow: Start scheduled IPv6 HTTP proxy test
SNOWorkflow->>SNOConfigChain: Run IPv6 static SNO provisioning
SNOConfigChain->>ProxyConfig: Generate proxy and NO_PROXY settings
ProxyConfig-->>SNOConfigChain: Return generated proxy configuration
SNOConfigChain-->>SNOWorkflow: Provide configured SNO environment
SNOWorkflow-->>ReleaseSchedule: Report results and deprovision
Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error, 1 inconclusive)
✅ Passed checks (13 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yaml`:
- Around line 5545-5559: Regenerate the Prow job configuration by running make
update, then commit all resulting generated metadata and job changes for
metal-sno-ipv6-http-proxy-f28 in
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yaml#L5545-L5559
and
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__arm64-nightly.yaml#L658-L674,
and for metal-sno-ipv6-http-proxy-f7 in
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml#L5765-L5779,
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml#L699-L715,
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml#L4870-L4884,
and
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__arm64-nightly.yaml#L658-L674.
🪄 Autofix
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: a6f9e9c5-67c6-4521-b782-c77885eb46b8
⛔ Files ignored due to path filters (6)
ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.18-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.19-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.20-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (18)
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.18__amd64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.18__arm64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.19__amd64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.19__arm64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.20__amd64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.20__arm64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__arm64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yamlci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__arm64-nightly.yamlci-operator/step-registry/baremetal/lab/sno/ipv6/static/OWNERSci-operator/step-registry/baremetal/lab/sno/ipv6/static/baremetal-lab-sno-ipv6-static-workflow.metadata.jsonci-operator/step-registry/baremetal/lab/sno/ipv6/static/baremetal-lab-sno-ipv6-static-workflow.yamlci-operator/step-registry/baremetal/lab/sno/ipv6/static/conf/OWNERSci-operator/step-registry/baremetal/lab/sno/ipv6/static/conf/baremetal-lab-sno-ipv6-static-conf-chain.metadata.jsonci-operator/step-registry/baremetal/lab/sno/ipv6/static/conf/baremetal-lab-sno-ipv6-static-conf-chain.yaml
| - as: metal-sno-ipv6-http-proxy-f28 | ||
| capabilities: | ||
| - intranet | ||
| cron: 17 3 6,20 * * | ||
| steps: | ||
| cluster_profile: equinix-ocp-metal-qe | ||
| env: | ||
| AUX_HOST: openshift-qe-metal-ci.arm.eng.rdu2.redhat.com | ||
| RESERVE_BOOTSTRAP: "false" | ||
| architecture: amd64 | ||
| masters: "1" | ||
| workers: "0" | ||
| test: | ||
| - chain: openshift-e2e-test-qe | ||
| workflow: baremetal-lab-sno-ipv6-static |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Regenerate Prow jobs for the new periodic test definitions.
Each added test changes the generated Prow job configuration. Run make update and commit the resulting generated metadata and Prow job changes. Without those generated jobs, Prow will not schedule this periodic coverage.
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yaml#L5545-L5559: regenerate the job formetal-sno-ipv6-http-proxy-f28.ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__arm64-nightly.yaml#L658-L674: regenerate the ARM64 job formetal-sno-ipv6-http-proxy-f28.ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml#L5765-L5779: regenerate the AMD64 job formetal-sno-ipv6-http-proxy-f7.ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml#L699-L715: regenerate the ARM64 job formetal-sno-ipv6-http-proxy-f7.ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml#L4870-L4884: regenerate the AMD64 job formetal-sno-ipv6-http-proxy-f7.ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__arm64-nightly.yaml#L658-L674: regenerate the ARM64 job formetal-sno-ipv6-http-proxy-f7.
As per coding guidelines, CI configuration changes must run make update. Based on learnings, added test definitions are structural changes that require regenerated Prow job definitions.
📍 Affects 6 files
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yaml#L5545-L5559(this comment)ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__arm64-nightly.yaml#L658-L674ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml#L5765-L5779ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml#L699-L715ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml#L4870-L4884ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__arm64-nightly.yaml#L658-L674
🤖 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/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yaml`
around lines 5545 - 5559, Regenerate the Prow job configuration by running make
update, then commit all resulting generated metadata and job changes for
metal-sno-ipv6-http-proxy-f28 in
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__amd64-nightly.yaml#L5545-L5559
and
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.21__arm64-nightly.yaml#L658-L674,
and for metal-sno-ipv6-http-proxy-f7 in
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml#L5765-L5779,
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml#L699-L715,
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml#L4870-L4884,
and
ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__arm64-nightly.yaml#L658-L674.
Sources: Coding guidelines, Learnings
Use one-level OWNERS symlinks to match baremetal lab conventions and resolve do-not-merge/invalid-owners-file on the PR.
|
@snaoum-lang: |
Required by ci/prow/owners for new step-registry component paths.
|
@snaoum-lang: |
|
/pj-rehearse periodic-ci-openshift-release-master-periodic-ci-openshift-openshift-tests-private-release-4.22-periodics-metal-sno-ipv6-http-proxy-f7 |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-metal-sno-ipv6-http-proxy-f7 |
|
@snaoum-lang: your |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-metal-sno-ipv6-http-proxy-f7 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-metal-sno-ipv6-http-proxy-f7 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
Two issues were preventing SNO IPv6 with HTTP proxy from bootstrapping:
1. ipi-conf-proxy: Missing noProxy configuration caused installer to
route cluster-internal API traffic through the proxy. Now dynamically
builds noProxy list from cluster/service/machine CIDRs and domain.
2. baremetal-lab-upi-conf-grub2-ipv6-static: Missing BOOTSTRAP_IN_PLACE
check caused SNO to fetch wrong ignition file. Now matches IPv4 logic
to use bootstrap.ign for SNO instead of console-hook.ign.
Fixes: OCPQE-30425
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: snaoum-lang 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.
Actionable comments posted: 1
🤖 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/ipi/conf/proxy/ipi-conf-proxy-commands.sh`:
- Around line 29-41: Initialize CLUSTER_CIDRS, SERVICE_CIDRS, and MACHINE_CIDRS
to empty values before the NETWORK_PATCH file-existence check, so nounset-safe
references later in the script remain defined when the optional patch is absent.
Preserve the existing extraction and NO_PROXY updates inside the conditional
block.
🪄 Autofix
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: 671c0584-50ef-4c0d-abdb-77ef144e014e
📒 Files selected for processing (2)
ci-operator/step-registry/baremetal/lab/upi/conf/grub2/ipv6/static/baremetal-lab-upi-conf-grub2-ipv6-static-commands.shci-operator/step-registry/ipi/conf/proxy/ipi-conf-proxy-commands.sh
| NETWORK_PATCH="${SHARED_DIR}/network_patch_install_config.yaml" | ||
| if [ -f "${NETWORK_PATCH}" ]; then | ||
| # Extract cluster network CIDRs from patch | ||
| CLUSTER_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.clusterNetwork[*].cidr' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | ||
| [ -n "${CLUSTER_CIDRS}" ] && NO_PROXY="${NO_PROXY},${CLUSTER_CIDRS}" | ||
|
|
||
| # Extract service network CIDRs from patch | ||
| SERVICE_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.serviceNetwork[*]' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | ||
| [ -n "${SERVICE_CIDRS}" ] && NO_PROXY="${NO_PROXY},${SERVICE_CIDRS}" | ||
|
|
||
| # Extract machine network CIDRs from patch | ||
| MACHINE_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.machineNetwork[*].cidr' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | ||
| [ -n "${MACHINE_CIDRS}" ] && NO_PROXY="${NO_PROXY},${MACHINE_CIDRS}" |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
Initialize the CIDR variables before the optional patch check.
If ${SHARED_DIR}/network_patch_install_config.yaml is absent, Lines 55, 59, and 63 expand unset variables. set -o nounset then terminates the step before it can read network values from install-config.yaml.
Proposed fix
NETWORK_PATCH="${SHARED_DIR}/network_patch_install_config.yaml"
+CLUSTER_CIDRS=""
+SERVICE_CIDRS=""
+MACHINE_CIDRS=""
+
if [ -f "${NETWORK_PATCH}" ]; then📝 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.
| NETWORK_PATCH="${SHARED_DIR}/network_patch_install_config.yaml" | |
| if [ -f "${NETWORK_PATCH}" ]; then | |
| # Extract cluster network CIDRs from patch | |
| CLUSTER_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.clusterNetwork[*].cidr' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | |
| [ -n "${CLUSTER_CIDRS}" ] && NO_PROXY="${NO_PROXY},${CLUSTER_CIDRS}" | |
| # Extract service network CIDRs from patch | |
| SERVICE_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.serviceNetwork[*]' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | |
| [ -n "${SERVICE_CIDRS}" ] && NO_PROXY="${NO_PROXY},${SERVICE_CIDRS}" | |
| # Extract machine network CIDRs from patch | |
| MACHINE_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.machineNetwork[*].cidr' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | |
| [ -n "${MACHINE_CIDRS}" ] && NO_PROXY="${NO_PROXY},${MACHINE_CIDRS}" | |
| NETWORK_PATCH="${SHARED_DIR}/network_patch_install_config.yaml" | |
| CLUSTER_CIDRS="" | |
| SERVICE_CIDRS="" | |
| MACHINE_CIDRS" | |
| if [ -f "${NETWORK_PATCH}" ]; then | |
| # Extract cluster network CIDRs from patch | |
| CLUSTER_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.clusterNetwork[*].cidr' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | |
| [ -n "${CLUSTER_CIDRS}" ] && NO_PROXY="${NO_PROXY},${CLUSTER_CIDRS}" | |
| # Extract service network CIDRs from patch | |
| SERVICE_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.serviceNetwork[*]' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | |
| [ -n "${SERVICE_CIDRS}" ] && NO_PROXY="${NO_PROXY},${SERVICE_CIDRS}" | |
| # Extract machine network CIDRs from patch | |
| MACHINE_CIDRS=$(yq-go r "${NETWORK_PATCH}" 'networking.machineNetwork[*].cidr' 2>/dev/null | tr '\n' ',' | sed 's/,$//') | |
| [ -n "${MACHINE_CIDRS}" ] && NO_PROXY="${NO_PROXY},${MACHINE_CIDRS}" |
🤖 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/ipi/conf/proxy/ipi-conf-proxy-commands.sh` around
lines 29 - 41, Initialize CLUSTER_CIDRS, SERVICE_CIDRS, and MACHINE_CIDRS to
empty values before the NETWORK_PATCH file-existence check, so nounset-safe
references later in the script remain defined when the optional patch is absent.
Preserve the existing extraction and NO_PROXY updates inside the conditional
block.
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-metal-sno-ipv6-http-proxy-f7 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
The step was failing with 'unbound variable' error because the script references BOOTSTRAP_IN_PLACE but it wasn't defined in the ref.yaml. Added BOOTSTRAP_IN_PLACE env variable with default 'false'. The workflow overrides this to 'true' for SNO deployments to use bootstrap.ign instead of console-hook.ign files.
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-nightly-metal-sno-ipv6-http-proxy-f7 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
… jobs. Split versions across architectures following existing metal IPv6 job pattern.
|
@snaoum-lang, Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.21-arm64-nightly-metal-sno-ipv6-http-proxy-f28 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.21-arm64-nightly-metal-sno-ipv6-http-proxy-f28 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.21-arm64-nightly-metal-sno-ipv6-http-proxy-f28 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
After patching image-registry, kube-apiserver and openshift-apiserver may return ServiceUnavailable during rollouts, causing oc wait to fail immediately and killing the install step under set -o errexit. Split the combined wait into per-operator loops with up to 5 retries and 60s delay to handle transient unavailability gracefully.
|
[REHEARSALNOTIFIER]
A total of 1570 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-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse periodic-ci-openshift-openshift-tests-private-release-4.21-arm64-nightly-metal-sno-ipv6-http-proxy-f28 |
|
@snaoum-lang: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@snaoum-lang: The following tests 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. |
Summary
baremetal-lab-sno-ipv6-staticfor SNO BIP + IPv6 single-stack + cluster-wide HTTP proxy on RDU2 baremetal labbaremetal-lab-sno-ipv6-static-conf(usesbaremetal-lab-upi-conf-grub2-ipv6-staticinstead of IPv4 grub2 step)metal-sno-ipv6-http-proxy-*for OCP 4.18–5.0 (amd64 + arm64), reusing one workflow without per-version duplicationRelated
versioned-installer-packet-sno_bip-single_stack-http_proxyTest plan
make updatecompletedmetal-sno-ipv6-http-proxy-f7)Summary by CodeRabbit
Adds IPv6 single-stack and cluster-wide HTTP proxy coverage for RDU2 bare-metal SNO clusters.
baremetal-lab-sno-ipv6-staticworkflow and configuration chain.noProxyentries from cluster networks, service networks, cluster domain, and API endpoints.bootstrap.ignfor SNO bootstrap-in-place deployments.