Skip to content

Switch OSAC CI from kustomize to helm-based refresh - #80807

Merged
openshift-merge-bot[bot] merged 7 commits into
openshift:mainfrom
omer-vishlitzky:osac-use-helm-refresh
Jun 21, 2026
Merged

openshift-merge-bot[bot] merged 7 commits into
openshift:mainfrom
omer-vishlitzky:osac-use-helm-refresh

Conversation

@omer-vishlitzky

@omer-vishlitzky omer-vishlitzky commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Boot step uses vmaas-helm snapshot flavor and refresh-after-snapshot.py (helm upgrade) instead of kustomize
  • Component image overrides use sed on helm values YAML instead of kustomize edit set image
  • AAP project/image overrides target helm values fields (projectGitBranch, projectGitUri, eeImage)
  • VMaaS periodic bumped from twice-daily to hourly
  • Kustomize full-setup job dropped (helm full-setup remains)

Depends on osac-project/osac-installer#296

Test plan

  • Verify e2e-vmaas presubmit passes on an osac-installer PR
  • Verify component override works for fulfillment-service, osac-operator, osac-aap PRs
  • Verify hourly vmaas periodic runs

🤖 Generated with Claude Code

Summary by CodeRabbit

This PR updates the OpenShift as a Code (OSAC) CI “VMaaS” cluster refresh flow in the osac-project CI infrastructure to use a Helm-based refresh approach instead of the previous kustomize/overlay workflow, and adjusts the related presubmit/periodic jobs to validate component overrides and higher-frequency VMaaS execution.

What changed (practically)

Cluster boot + refresh migrated to Helm

  • Updated the reusable osac-project-cluster-tool steps to boot with the vmaas-helm flavor (and use a Helm values file via E2E_VALUES_FILE, defaulting to values/vmaas-ci/values.yaml) instead of the kustomize flavor/overlay flow.
  • Reworked the refresh phase to run python3 -u scripts/refresh-after-snapshot.py for the Helm-based refresh, including mounting:
    • the license at /installer/${VALUES_DIR}/license.zip
    • the pull secret into /installer/pull-secret.json

Component overrides + AAP overrides now edit Helm values directly

  • Migrated component image overrides from kustomize “set image” behavior to sed edits of the installer Helm values YAML (handling both image:tag and separate repository/tag forms).
  • Migrated AAP configuration overrides to Helm values fields (projectGitBranch, optional projectGitUri, and eeImage) using the same values YAML and guarded with verification checks to fail fast if edits don’t match expectations.

Fix for intermittent EE image pull failures

  • Ensures the pull secret used during refresh is mounted/available so refresh-after-snapshot.py can create the needed namespace-level secret for AAP job pods (preventing ErrImagePull scenarios when the global pull secret hasn’t propagated to CRI-O in time).

Kustomize-based full-setup periodic job removed

  • The periodic job targeting full setup now exists only for the Helm variant (e2e-vmaas-full-setup-helm); kustomize full-setup targeting is no longer present.

CI workflow updates

  • osac-project/osac-installer: widened the e2e-vmaas run_if_changed trigger to include changes under values/ (in addition to the existing base/overlays/scripts/prerequisites/charts paths).
  • osac-project/osac-test-infra: changed the e2e-vmaas-periodic cron schedule from twice daily to hourly (7 * * * *).

Diagnostics improvements

  • Enhanced the osac-project-gather step to collect more CNV and storage/MachineConfig diagnostics (including per-namespace pod inventories/logs and additional storage/MCO-related data) to improve debugging for VMaaS-related failures.

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-ci
openshift-ci Bot requested review from adriengentil and eranco74 June 20, 2026 20:00
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 20, 2026
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

The PR migrates vmaas cluster boot from kustomize overlays to Helm values files. Step configuration adds E2E_VALUES_FILE and updates flavor image to vmaas-helm. Boot script introduces values-file parameter passing, replaces kustomize overrides with sed edits to YAML fields, and switches refresh execution to Python. Dependent destroy and test steps reference the new clone name. Test diagnostics expand to capture storage, MachineConfig, and pod logs. CI infrastructure extends trigger patterns to include values/ and reschedules periodic job hourly.

Changes

vmaas Helm Values Migration and Testing

Layer / File(s) Summary
Step environment configuration and defaults
ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-ref.yaml
Adds E2E_VALUES_FILE env var defaulting to values/vmaas-ci/values.yaml; changes CLUSTER_TOOL_FLAVOR_IMAGE default from vmaas-kustomize to vmaas-helm; updates step documentation.
Boot script initialization and local setup
ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh
Sets CLONE_NAME to vmaas-helm, updates boot flavor command to vmaas-helm, logs E2E_VALUES_FILE, and prepares SSH invocation to pass values file parameter to remote script.
Remote parameter handling and values file setup
ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh
Remote boot script accepts VALUES_FILE as positional parameter $5, derives VALUES_DIR from values file path for subsequent mount and path construction.
Component image override via sed
ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh
Replaces kustomize download and build flow with direct sed edits to /installer/${VALUES_FILE}, updating component image references in both full image:tag and split repository/tag YAML forms, verified with grep and fast-fail on mismatch.
AAP configuration override via sed
ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh
Replaces kustomize variable patching with sed edits to YAML fields (projectGitBranch, projectGitUri, eeImage) derived from environment variables, verified with grep against AAP_SOURCE_SHA and exit 1 on failure.
Refresh container and Python script invocation
ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh
Removes overlay-specific volume mounts and INSTALLER_KUSTOMIZE_OVERLAY; mounts license to /installer/${VALUES_DIR}/license.zip; passes VALUES_FILE, INSTALLER_VM_TEMPLATE, INSTALLER_NAMESPACE as env vars; invokes python3 scripts/refresh-after-snapshot.py with overrides applied.
Destroy and test step alignment
ci-operator/step-registry/osac-project/cluster-tool/destroy/osac-project-cluster-tool-destroy-commands.sh, ci-operator/step-registry/osac-project/cluster-tool/test/osac-project-cluster-tool-test-commands.sh
Updates CLONE_NAME from vmaas-kustomize to vmaas-helm in both destroy and test steps, aligning kubeconfig paths and resource cleanup with the new cluster identifier.
Enhanced test diagnostics collection
ci-operator/step-registry/osac-project/gather/osac-project-gather-commands.sh
Expands CNV diagnostics to record pod inventory and capture --all-containers logs per subnet namespace. Adds storage diagnostics collecting pod/event info and storage CRs (LVM, SC, PV, PVC, volumeattachments). Adds MachineConfig and service-account diagnostics including pull-secret registry extraction via base64 decode and jq, plus secret inventory for E2E namespace.
CI trigger and scheduling configuration
ci-operator/config/osac-project/osac-installer/osac-project-osac-installer-main.yaml, ci-operator/config/osac-project/osac-test-infra/osac-project-osac-test-infra-main.yaml
Extends run_if_changed regex to include values/ directory pattern; changes e2e-vmaas-periodic cron schedule from 0 6,18 * * * to hourly at minute 7 (7 * * * *).

Sequence Diagram

sequenceDiagram
  participant BootStep as Boot Step
  participant Remote as Remote Boot Script
  participant ValuesYAML as Values YAML File
  participant Verify as Verification (grep)
  participant ClusterTool as cluster-tool boot
  participant Container as Refresh Container
  participant Python as refresh-after-snapshot.py

  BootStep->>BootStep: Set CLONE_NAME=vmaas-helm<br/>Export E2E_VALUES_FILE
  BootStep->>Remote: SSH with VALUES_FILE,<br/>E2E_VALUES_FILE, E2E_VALUES_DIR
  Remote->>Remote: Derive VALUES_DIR from VALUES_FILE
  Remote->>ValuesYAML: sed: rewrite component images<br/>(image:tag and repository/tag forms)
  Remote->>Verify: grep: verify component image changed
  Verify-->>Remote: match found or exit 1
  Remote->>ValuesYAML: sed: rewrite AAP config<br/>(projectGitBranch, eeImage)
  Remote->>Verify: grep: verify AAP_SOURCE_SHA
  Verify-->>Remote: match found or exit 1
  Remote->>ClusterTool: cluster-tool boot --flavor vmaas-helm
  BootStep->>Container: Mount license to<br/>VALUES_DIR/license.zip
  BootStep->>Container: Set env: VALUES_FILE,<br/>INSTALLER_VM_TEMPLATE,<br/>INSTALLER_NAMESPACE
  Container->>Python: python3 scripts/refresh-after-snapshot.py
  Python->>ValuesYAML: Read updated values
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

rehearsals-ack


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The gather script extracts the AAP admin password from a Kubernetes secret (line 156-157) and stores it in plaintext in the AAP_AUTH array (line 159: -u "admin:${AAP_ADMIN_PW}"), which is then pa... Use curl's --netrc or -H header with token-based auth instead of -u flag, or use a temporary credentials file with restricted permissions and --config flag to avoid exposing the password in process arguments.
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: switching OSAC CI from kustomize to helm-based refresh, which is the primary focus across all modified files and the stated PR objective.
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 PR modifies only CI infrastructure (YAML configs, shell scripts). No Ginkgo test files or test definitions (It(), Describe(), etc.) are present in the changes.
Test Structure And Quality ✅ Passed PR contains no Ginkgo test code—only CI configuration (YAML) and shell scripts. The custom check for test structure and quality is not applicable to this PR.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests are added in this PR. All modified files are CI configuration (YAML) and shell scripts (BASH), not Go test source code. The custom check only applies when new e2e tests are...
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR does not add any Ginkgo e2e tests. All modifications are to CI operator configuration YAML files and shell deployment scripts. The SNO compatibility check applies only to new e2e tests and...
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI infrastructure scripts and workflow configs (no Kubernetes deployment manifests, operators, or controllers). No scheduling constraints are introduced—no affinity rules, pod topo...
Ote Binary Stdout Contract ✅ Passed PR contains only YAML configs and shell scripts for CI infrastructure (no Go source code). The OTE Binary Stdout Contract check applies to compiled test binaries—this PR doesn't implement any OTE b...
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR does not add new Ginkgo e2e tests. It exclusively modifies CI/CD infrastructure and configuration files (YAML configs, shell scripts for cluster setup/teardown/testing). No test definitions...
No-Weak-Crypto ✅ Passed No weak cryptography patterns detected. PR contains CI config/script changes with no weak algorithms (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB), custom crypto implementations, or insecure credentia...
Container-Privileges ✅ Passed No privileged containers, hostPID/hostNetwork/hostIPC, SYS_ADMIN capabilities, allowPrivilegeEscalation, or root-running containers detected. All podman commands use standard unprivileged 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.

@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/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh`:
- Line 18: The CLONE_NAME variable in the boot step is set to "vmaas-helm" but
the corresponding test and destroy steps in the workflow use "vmaas-kustomize",
causing a mismatch where the test targets the wrong clone and the boot-created
clone is never cleaned up. Change the CLONE_NAME variable in
osac-project-cluster-tool-boot-commands.sh from "vmaas-helm" to
"vmaas-kustomize" to match the clone name used in the test and destroy workflow
steps, ensuring all three phases operate on the same clone throughout the
workflow chain.
- Around line 195-201: The split repository/tag override in the
COMPONENT_OVERRIDE_CMD at line 201 only updates the tag field but does not
update the repository field itself. When COMPONENT_IMAGE points to a different
registry or repository, the repository value remains unchanged, resulting in an
incomplete override. Extract the repository portion of COMPONENT_IMAGE
(everything before the colon) by using parameter expansion similar to how
COMPONENT_TAG is extracted, then add an additional sed command to the
COMPONENT_OVERRIDE_CMD that updates the repository field to this new
registry/path value alongside the existing tag update. Ensure both the
repository and tag fields are updated when handling the split format
configuration.
🪄 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: 29303d4c-3b0d-4930-b458-467397d22eae

📥 Commits

Reviewing files that changed from the base of the PR and between 2499c86 and 449107c.

📒 Files selected for processing (4)
  • ci-operator/config/osac-project/osac-installer/osac-project-osac-installer-main.yaml
  • ci-operator/config/osac-project/osac-test-infra/osac-project-osac-test-infra-main.yaml
  • ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh
  • ci-operator/step-registry/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-ref.yaml

echo "-------------------------------------------"

CLONE_NAME="vmaas-kustomize"
CLONE_NAME="vmaas-helm"

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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Clone names in osac cluster-tool scripts ==="
rg -n -C2 '^\s*CLONE_NAME=' ci-operator/step-registry/osac-project/cluster-tool/**/osac-project-cluster-tool-*-commands.sh

echo
echo "=== Workflow/chain wiring for boot/destroy ==="
rg -n -C3 'osac-project-cluster-tool-(boot|destroy)' ci-operator/step-registry/osac-project/cluster-tool -g '*workflow.yaml' -g '*chain.yaml'

Repository: openshift/release

Length of output: 3981


Fix critical clone-name mismatch across boot/test/destroy workflow steps.

The workflow osac-project-cluster-tool-vmaas-workflow.yaml chains boot, test, and destroy in sequence, but they use mismatched clone names:

  • Boot (pre phase): Creates vmaas-helm
  • Test (test phase): Expects vmaas-kustomize
  • Destroy (post phase): Destroys vmaas-kustomize

This causes test operations to target the wrong clone and leaves vmaas-helm orphaned without cleanup. All three steps must use the same clone name, or the workflow will fail.

🤖 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/osac-project/cluster-tool/boot/osac-project-cluster-tool-boot-commands.sh`
at line 18, The CLONE_NAME variable in the boot step is set to "vmaas-helm" but
the corresponding test and destroy steps in the workflow use "vmaas-kustomize",
causing a mismatch where the test targets the wrong clone and the boot-created
clone is never cleaned up. Change the CLONE_NAME variable in
osac-project-cluster-tool-boot-commands.sh from "vmaas-helm" to
"vmaas-kustomize" to match the clone name used in the test and destroy workflow
steps, ensuring all three phases operate on the same clone throughout the
workflow chain.

omer-vishlitzky and others added 3 commits June 20, 2026 23:17
- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-osac-project-osac-installer-main-e2e-vmaas pull-ci-osac-project-osac-aap-main-e2e-vmaas pull-ci-osac-project-fulfillment-service-main-e2e-vmaas pull-ci-osac-project-osac-operator-main-e2e-vmaas pull-ci-osac-project-osac-test-infra-main-e2e-vmaas periodic-ci-osac-project-osac-test-infra-main-e2e-vmaas-periodic

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-osac-project-osac-installer-main-e2e-vmaas pull-ci-osac-project-osac-aap-main-e2e-vmaas pull-ci-osac-project-fulfillment-service-main-e2e-vmaas pull-ci-osac-project-osac-operator-main-e2e-vmaas pull-ci-osac-project-osac-test-infra-main-e2e-vmaas periodic-ci-osac-project-osac-test-infra-main-e2e-vmaas-periodic

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@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: 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/osac-project/gather/osac-project-gather-commands.sh`:
- Around line 134-136: The oc logs command in the pod logging loop fails
silently on multi-container pods because the || true operator masks errors and
the command only captures logs from a single container per pod. Add the
--all-containers flag to the oc logs command that processes "${pod}" in the
openshift-storage namespace loop to ensure all containers within each pod have
their logs captured and written to the ARTIFACT_DIR without missing any
diagnostic information.
🪄 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: bb5a6f66-f8ca-4b3b-87af-ad0be7fc5275

📥 Commits

Reviewing files that changed from the base of the PR and between 20fef9b and d0726ab.

⛔ Files ignored due to path filters (2)
  • ci-operator/jobs/osac-project/osac-installer/osac-project-osac-installer-main-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/osac-project/osac-test-infra/osac-project-osac-test-infra-main-periodics.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/step-registry/osac-project/gather/osac-project-gather-commands.sh

Comment on lines +134 to +136
for pod in $(oc get pods -n openshift-storage -o jsonpath='{.items[*].metadata.name}' 2>/dev/null); do
oc logs "${pod}" -n openshift-storage > "${ARTIFACT_DIR}/storage/pod-${pod}.log" 2>&1 || true
done

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.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Capture all storage pod containers to avoid silent log gaps.

At Line 135, oc logs "${pod}" -n openshift-storage can fail on multi-container pods, and || true masks it. Use --all-containers (or iterate containers) so diagnostics are complete.

Suggested patch
 for pod in $(oc get pods -n openshift-storage -o jsonpath='{.items[*].metadata.name}' 2>/dev/null); do
-    oc logs "${pod}" -n openshift-storage > "${ARTIFACT_DIR}/storage/pod-${pod}.log" 2>&1 || true
+    oc logs "${pod}" -n openshift-storage --all-containers > "${ARTIFACT_DIR}/storage/pod-${pod}.log" 2>&1 || true
 done
📝 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.

Suggested change
for pod in $(oc get pods -n openshift-storage -o jsonpath='{.items[*].metadata.name}' 2>/dev/null); do
oc logs "${pod}" -n openshift-storage > "${ARTIFACT_DIR}/storage/pod-${pod}.log" 2>&1 || true
done
for pod in $(oc get pods -n openshift-storage -o jsonpath='{.items[*].metadata.name}' 2>/dev/null); do
oc logs "${pod}" -n openshift-storage --all-containers > "${ARTIFACT_DIR}/storage/pod-${pod}.log" 2>&1 || true
done
🤖 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/osac-project/gather/osac-project-gather-commands.sh`
around lines 134 - 136, The oc logs command in the pod logging loop fails
silently on multi-container pods because the || true operator masks errors and
the command only captures logs from a single container per pod. Add the
--all-containers flag to the oc logs command that processes "${pod}" in the
openshift-storage namespace loop to ensure all containers within each pod have
their logs captured and written to the ARTIFACT_DIR without missing any
diagnostic information.

@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse more pull-ci-osac-project-osac-installer-main-e2e-vmaas pull-ci-osac-project-osac-aap-main-e2e-vmaas pull-ci-osac-project-fulfillment-service-main-e2e-vmaas pull-ci-osac-project-osac-operator-main-e2e-vmaas pull-ci-osac-project-osac-test-infra-main-e2e-vmaas periodic-ci-osac-project-osac-test-infra-main-e2e-vmaas-periodic

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@omer-vishlitzky: 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

@omer-vishlitzky: job(s): more either don't exist or were not found to be affected, and cannot be rehearsed

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse more

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Jun 21, 2026
@openshift-merge-bot openshift-merge-bot Bot removed the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Jun 21, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@omer-vishlitzky: 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-osac-project-osac-installer-main-e2e-vmaas osac-project/osac-installer presubmit Ci-operator config changed
pull-ci-osac-project-osac-aap-main-e2e-vmaas osac-project/osac-aap presubmit Registry content changed
pull-ci-osac-project-fulfillment-service-main-e2e-vmaas osac-project/fulfillment-service presubmit Registry content changed
pull-ci-osac-project-osac-operator-main-e2e-vmaas osac-project/osac-operator presubmit Registry content changed
pull-ci-osac-project-osac-test-infra-main-e2e-vmaas osac-project/osac-test-infra presubmit Registry content changed
periodic-ci-osac-project-osac-test-infra-main-e2e-vmaas-full-setup-helm N/A periodic Ci-operator config changed
periodic-ci-osac-project-osac-test-infra-main-e2e-vmaas-periodic N/A periodic Ci-operator config changed
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 added the lgtm Indicates that a PR is ready to be merged. label Jun 21, 2026
@openshift-ci

openshift-ci Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: danmanor, omer-vishlitzky

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

@omer-vishlitzky

Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Jun 21, 2026
@openshift-merge-bot
openshift-merge-bot Bot merged commit 4f9cc92 into openshift:main Jun 21, 2026
18 checks passed
krisnababu pushed a commit to krisnababu/release that referenced this pull request Jun 29, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
krisnababu pushed a commit to oharan2/release that referenced this pull request Jul 3, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
andrej1991 pushed a commit to andrej1991/release that referenced this pull request Jul 6, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TimurMP pushed a commit to TimurMP/release that referenced this pull request Jul 8, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SachinNinganure pushed a commit to SachinNinganure/release that referenced this pull request Jul 20, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
amogh-redhat pushed a commit to amogh-redhat/release that referenced this pull request Aug 5, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TimurMP pushed a commit to TimurMP/release that referenced this pull request Sep 5, 2026
* Switch OSAC CI from kustomize to helm-based refresh

Replace the kustomize-based refresh flow with the Python helm refresh
script (refresh-after-snapshot.py). The boot step now uses the
vmaas-helm snapshot flavor and deploys via helm upgrade instead of
oc apply -k.

Changes:
- Boot ref: E2E_VALUES_FILE replaces E2E_KUSTOMIZE_OVERLAY, flavor
  defaults to vmaas-helm
- Boot script: license mounts to values dir, component overrides use
  sed on helm values YAML (handles both image:tag and split
  repository/tag formats), refresh runs python3 -u refresh-after-snapshot.py
- osac-installer config: add values/ to run_if_changed trigger
- osac-test-infra config: bump vmaas periodic to hourly, drop
  kustomize full-setup job

Depends on osac-project/osac-installer#296

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix clone name mismatch, operator override, and AAP verification

- Update CLONE_NAME to vmaas-helm in test and destroy steps to match
  the boot step — prevents kubeconfig-not-found and VM leak
- Fix split repository/tag component override to also replace the
  repository line (not just the tag) so osac-operator PRs get the
  correct CI registry image
- Restore grep -q verification after AAP sed overrides to fail fast
  if the field name changes in the values file

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add grep verification for component image override

Fail fast if the sed replacement didn't match anything in the values
file, instead of silently testing against the pinned image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* make jobs

* Add storage, MCO, and subnet pod diagnostics to gather script

Collect LVMS/topolvm state (pods, events, logs, LVMCluster,
VolumeAttachments), MachineConfig status and pull-secret registry
list, CDI importer pod logs from subnet namespaces, and service
account imagePullSecrets state. These were missing when debugging
CI failures involving volume mount timeouts and image pull errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Mount pull secret into installer container for namespace secret creation

The old kustomize flow created a quay-pull-secret in the OSAC namespace
via secretGenerator, giving AAP job pods credentials to pull CI-built
EE images. The helm migration dropped this mount, causing intermittent
ErrImagePull when the MCO hasn't propagated the global pull secret to
CRI-O before AAP launches automation jobs.

Re-add the pull secret as a volume mount at /installer/pull-secret.json
so refresh-after-snapshot.py can create the namespace-level secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Increase helm full install periodic frequency to every 4 hours

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants