HYPERFLEET-1038: prefix Gangway-overridable e2e params with MULTISTAGE_PARAM_OVERRIDE_#79699
HYPERFLEET-1038: prefix Gangway-overridable e2e params with MULTISTAGE_PARAM_OVERRIDE_#79699ciaranRoche wants to merge 1 commit into
Conversation
ci-operator's MULTISTAGE_PARAM_OVERRIDE_* env-var path stores overrides in the test Environment map with the prefix intact (cmd/ci-operator/main.go applyEnvOverrides; verified against ci-tools main_test.go). The step-pod env generator (pkg/steps/multi_stage/gen.go generateParams) then looks each parameter up by the bare name declared in the step ref, so a prefixed override never matches a bare-named parameter and gets silently dropped. Rename E2E_REF, NAMESPACE_PREFIX, API_IMAGE_TAG, ADAPTER_IMAGE_TAG, and SENTINEL_IMAGE_TAG to use the MULTISTAGE_PARAM_OVERRIDE_ prefix in the e2e setup and test step refs and the nightly + rc-e2e variant configs. Step scripts now read the prefixed env var and assign to the bare internal name that deploy-clm.sh and the rest of the script expect. Defaults are unchanged, so nightly behavior is identical (rehearses must stay green). The fix unblocks Gangway-driven RC E2E runs from hyperfleet-release: E2E_REF=<branch> will now actually clone+build hyperfleet-e2e at that ref, and per-component image tags can finally be overridden for real RCs. Matches the prefixed-name convention used across the openshift/release step-registry (83 files, 42 distinct override parameters in aro-hcp, lvms, hypershift, quay, etc.). Follow-up to openshift#79515. Signed-off-by: Ciaran Roche <croche@redhat.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@ciaranRoche: This pull request references HYPERFLEET-1038 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. 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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (6)
WalkthroughThis pull request systematically updates OpenShift Hyperfleet E2E CI configuration and step registry to use ChangesHyperfleet E2E Multistage Parameter Overrides
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 12✅ Passed checks (12 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ciaranRoche The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
[REHEARSALNOTIFIER]
Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals. Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse auto-ack |
|
@ciaranRoche: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@ciaranRoche: all tests passed! 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
Follow-up to #79515. The
MULTISTAGE_PARAM_OVERRIDE_E2E_REFoverride sent via Gangway was silently being dropped — the step pod receivedE2E_REFwith an empty value and the new clone+build path never fired. Confirmed againstopenshift/ci-tools:applyEnvOverrides(cmd/ci-operator/main.go) storesMULTISTAGE_PARAM_OVERRIDE_*env vars in the test Environment map with the prefix intact (see ci-tools main_test.go test case "Apply overrides").generateParams(pkg/steps/multi_stage/gen.go) builds step-pod env vars by looking each step-ref parameter up in that map by its declared name. Since our step refs declared bare names (E2E_REF,API_IMAGE_TAG, …), the prefixed map entries never matched.The convention across the rest of the step-registry (
aro-hcp,lvms,hypershift,quay, telco, etc. — 83 files, 42 distinct override parameters) is to use the prefixed name as the parameter name end-to-end: declared in the ref, read in the script, sent by Gangway.Changes
Rename to
MULTISTAGE_PARAM_OVERRIDE_*in the e2e step refs, scripts, and both variant configs (nightly + rc-e2e):E2E_REFNAMESPACE_PREFIXAPI_IMAGE_TAGADAPTER_IMAGE_TAGSENTINEL_IMAGE_TAGStep scripts now read the prefixed env var and assign to the bare internal name that
deploy-clm.shand the rest of the script consume. Defaults are unchanged.Other params (
CLUSTER_NAME,REGION,IMAGE_REGISTRY,*_CHART_*,*_IMAGE_REPO,LABEL_FILTER, retry knobs) stay bare — they're not currently sent by the trigger script.Nightly impact
None. Default values in
steps.envare identical; only the keys are prefixed so that ci-operator'sgenerateParamsfinds them under the new ref-declared parameter names. The PR will rehearse-e2e-tier0-nightly,-e2e-tier1-nightly,-e2e-tier2-nightly, and-rc-e2e-rc-e2e. Tier0 nightly green is sufficient evidence the rename is non-regressing.Test plan
scratch/trigger-rc-e2e.sh(in the HyperFleet team's local tooling) withE2E_REF=rc-test:=== Building E2E from ref: rc-test ===followed by git clone +make buildoutput${SHARED_DIR}/...paths instead of/e2e/...jqshows{"name":"MULTISTAGE_PARAM_OVERRIDE_E2E_REF","value":"rc-test"}in the setup pod env🤖 Generated with Claude Code