You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrate OADP's e2e failure analysis from the current in-repo Claude CLI setup to the shared claude-ai-helpers step-registry pattern now used by other CI teams (e.g. medik8s, hypershift).
build/ci-Dockerfile installs Node.js + @anthropic-ai/claude-code (or the claude.ai/install.sh installer on oadp-dev) directly into the test-oadp-operator image.
Makefile's test-e2e target invokes tests/e2e/scripts/analyze_failures.sh after Ginkgo exits, wiring GOOGLE_APPLICATION_CREDENTIALS / CLAUDE_CODE_USE_VERTEX / ANTHROPIC_VERTEX_PROJECT_ID from files expected under /var/run/oadp-credentials/gcp-claude-code-*.
Those gcp-claude-code-* files were never actually added to the oadp-credentials vault collection / to the openshift/release config, so in practice analyze_failures.sh always hits the "Vertex AI not configured — skipping" branch and no-ops today.
New approach (already used by medik8s, hypershift, security/adversary-scan, etc.)
openshift/release publishes a shared claude-ai-helpers base image (ci namespace, built from openshift-eng/ai-helpers) with Claude Code and CI-analysis skills preinstalled, plus a shared, already-provisioned credential test-credentials/sa-claude-openshift-ci. Consuming repos just add a step-registry post-step to their ci-operator config test — no changes needed inside the repo's own container image or Makefile. See medik8s-analyze-e2e-failure / hypershift-analyze-e2e-failure refs in openshift/release for the pattern.
A companion openshift/release PR adds oadp-analyze-e2e-failure and wires it into the oadp-1.6 and oadp-dev ci-operator configs (the only branches currently carrying the Makefile hook — oadp-1.3/oadp-1.4/oadp-1.5 were checked and don't have it).
Requirements / follow-up changes needed in this repo
No vault/credential changes needed here — the new post-step uses the already-shared test-credentials/sa-claude-openshift-ci secret, so the planned gcp-claude-code-credentials / gcp-claude-code-project-id additions to the oadp-credentials collection are no longer necessary.
While verifying post-step compatibility across branches, found oadp-1.4's test-e2e target never generates junit_report.xml (missing --ginkgo.junit-report flag, unrelated to the Claude hook — tracked separately in #2410/#2411).
Summary
Migrate OADP's e2e failure analysis from the current in-repo Claude CLI setup to the shared
claude-ai-helpersstep-registry pattern now used by other CI teams (e.g.medik8s,hypershift).Current approach (this repo)
Added in #2038, present on
oadp-devandoadp-1.6:build/ci-Dockerfileinstalls Node.js +@anthropic-ai/claude-code(or theclaude.ai/install.shinstaller onoadp-dev) directly into thetest-oadp-operatorimage.Makefile'stest-e2etarget invokestests/e2e/scripts/analyze_failures.shafter Ginkgo exits, wiringGOOGLE_APPLICATION_CREDENTIALS/CLAUDE_CODE_USE_VERTEX/ANTHROPIC_VERTEX_PROJECT_IDfrom files expected under/var/run/oadp-credentials/gcp-claude-code-*.gcp-claude-code-*files were never actually added to theoadp-credentialsvault collection / to theopenshift/releaseconfig, so in practiceanalyze_failures.shalways hits the "Vertex AI not configured — skipping" branch and no-ops today.New approach (already used by medik8s, hypershift, security/adversary-scan, etc.)
openshift/releasepublishes a sharedclaude-ai-helpersbase image (cinamespace, built fromopenshift-eng/ai-helpers) with Claude Code and CI-analysis skills preinstalled, plus a shared, already-provisioned credentialtest-credentials/sa-claude-openshift-ci. Consuming repos just add a step-registry post-step to their ci-operator config test — no changes needed inside the repo's own container image or Makefile. Seemedik8s-analyze-e2e-failure/hypershift-analyze-e2e-failurerefs inopenshift/releasefor the pattern.A companion
openshift/releasePR addsoadp-analyze-e2e-failureand wires it into theoadp-1.6andoadp-devci-operator configs (the only branches currently carrying the Makefile hook —oadp-1.3/oadp-1.4/oadp-1.5were checked and don't have it).Requirements / follow-up changes needed in this repo
build/ci-Dockerfile. (Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2408, [oadp-1.6] Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2409)test-e2eMakefile hook that shells out totests/e2e/scripts/analyze_failures.sh(and theGOOGLE_APPLICATION_CREDENTIALS/CLAUDE_CODE_USE_VERTEX/ANTHROPIC_VERTEX_PROJECT_IDwiring inMakefile). (Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2408, [oadp-1.6] Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2409)tests/e2e/scripts/analyze_failures.sh— analysis now runs as a post-step outside the test container, driven fromopenshift/release. (Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2408, [oadp-1.6] Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2409)test-credentials/sa-claude-openshift-cisecret, so the plannedgcp-claude-code-credentials/gcp-claude-code-project-idadditions to theoadp-credentialscollection are no longer necessary.CLAUDE.md's "Automated Failure Analysis with Claude" section anddocs/design/claude-prow-failure-analysis_design.mdto describe the new architecture. (Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2408, [oadp-1.6] Migrate Claude e2e failure analysis to claude-ai-helpers step-registry #2409)Pull Requests
oadp-devoadp-1.6(backport, same diff)Follow-up (separate scope)
While verifying post-step compatibility across branches, found
oadp-1.4'stest-e2etarget never generatesjunit_report.xml(missing--ginkgo.junit-reportflag, unrelated to the Claude hook — tracked separately in #2410/#2411).References
openshift/releaseinspiration PRs: Add AI analysis to medik8s jobs release#82802, ROSAENG-64876: Add adversary security scan for rosa-hyperfleet release#83297openshift/releasePR: oadp-operator: migrate e2e Claude failure analysis to claude-ai-helpers post-step release#83957Note
Responses generated with Claude