npx skills add ...
npx skills add openshift/release-tests --skill release-workflow
OpenShift z-stream release workflow and orchestration expert. Use when discussing release tasks, build promotion, test analysis, advisory workflows, or any aspect of the Konflux/Errata release pipeline. Provides context on task sequencing, checkpoints, and MCP execution for releases 4.12-4.20.
npx skills add openshift/release-tests --skill release-workflow
This document defines the complete workflow for OpenShift z-stream release orchestration under the Konflux release platform. All releases from 4.12 to 4.20 follow this flow.
Target Audience: AI agents (Claude Code) and human release engineers
Execution Method: All oar commands are executed via the MCP (Model Context Protocol) server, NOT local CLI. The MCP server exposes OAR commands as structured tools with proper input validation and output parsing.
_releases/{y-stream}/statebox/{release}.yamloar_get_release_status(release)_releases/ocp-test-result-{build}-amd64.jsonaggregated: true/false - All test jobs completed and results collectedaccepted: true/false - BO3 verification passedKey Characteristics:
analyze-candidate-build runs independently (tests already completed when flow starts)push-to-cdn-staging starts immediately after check-rhcos-security-alerts (runs while waiting for build promotion)Candidate Build:
4.20.0-0.nightly-2025-01-28-123456oar_get_release_metadata(release) → candidate_builds.x86_64Promoted Build:
X.Y.Z (z-stream version, e.g., 4.20.1)API Endpoint:
Success Criteria:
MCP Execution: Not a direct OAR command - AI must fetch URL and parse JSON response.
When to Check:
/release:drive {release} commandphase != "Accepted"), AI reports status to user/release:drive periodically until promotion completesWhen to run: Can start immediately when release flow begins (tests already completed)
Execution Flow:
Slash Command:
The slash command provides:
When to run: After build promotion detected (phase == "Accepted")
Execution Flow:
Slash Command:
ENHANCED LOGIC (Early Async Task Triggering):
The gate check has been optimized to trigger async tasks as soon as the stable build is promoted, without waiting for blocking tests analysis to complete.
Condition to Trigger Async Tasks:
Rationale: Once the stable build is accepted by ART and promoted to the release stream, we can immediately start parallel async tasks (image-consistency-check, stage-testing) to save time. The blocking tests analysis happens independently and doesn't need to gate these operations.
Condition to PROCEED to Final Approval:
Note: Candidate build analysis runs independently and doesn't block the gate check. It's informational for context.
If promoted build test analysis FAILS:
If promoted build test analysis PASSES:
Purpose: Initialize Google Sheets test report and ConfigStore entry
MCP Tool: oar_create_test_report(release)
Input:
release: Z-stream version (e.g., 4.20.1)Success Detection:
Failure Detection:
Expected Duration: 5 mins
Next Action: Proceed to take-ownership
Purpose: Assign release ownership to QE team member
MCP Tool: oar_take_ownership(release, email)
Input:
release: Z-stream versionemail: Owner email (e.g., user@redhat.com)AI Decision Logic:
/release:drive command: Use that emailoar_get_release_metadata(release) for current ownerSuccess Detection:
Expected Duration: 10 seconds
Next Action: Proceed to check-cve-tracker-bug
Purpose: Verify CVE tracker bug coverage for release
MCP Tool: oar_check_cve_tracker_bug(release)
Input:
release: Z-stream versionBehavior:
Success Detection:
Expected Duration: 1 minute
Next Action: Proceed to check-rhcos-security-alerts
Purpose: Check for blocking security alerts on RHCOS advisory (Konflux flow only)
When to run: Konflux release flow only (releases with shipment_mr in metadata)
Prerequisites: check-cve-tracker-bug completed
Implementation: Uses curl with Kerberos authentication (no existing MCP tool)
Execution Steps:
Step 1: Verify Kerberos ticket exists
If no ticket or ticket expired:
Step 2: Get RHCOS advisory ID
Step 3: Fetch security alerts from Errata Tool
Step 4: Parse response and check for blocking alerts
Success Detection:
Expected Duration: 10 seconds
Errata Tool API Response Format:
Key Fields:
.alerts.alerts[] (array) - List of individual alerts.alerts.alerts[].blocking (boolean) - Per-alert blocking status (THIS is what we check).alerts.blocking (boolean) - Top-level blocking status (informational only)Next Action:
Purpose: Push release images to CDN staging environment
MCP Tool: oar_push_to_cdn_staging(release)
Input:
release: Z-stream versionPrerequisites: check-cve-tracker-bug completed
Execution Phases:
Phase 1 - Trigger:
Phase 2 - Check Status:
When user invokes /release:drive, re-execute oar_push_to_cdn_staging(release) to check current status
Phase 3 - Complete:
Expected Duration: 30-60 minutes (user should check status every 5-10 minutes)
Note: This task runs in parallel with build promotion waiting. It doesn't depend on promotion status.
Failure Handling: If fails, mark overall status "Red", notify owner
Purpose: Evaluate test results from candidate nightly build
MCP Tool: Uses slash command /ci:analyze-build-test-results
Prerequisites: None - can run immediately when release flow starts
Input:
candidate_build: Retrieved from oar_get_release_metadata(release).candidate_builds.x86_64Execution Steps:
Step 1: Fetch test result file
Step 2: Check aggregation status
Step 3: Check acceptance status
Expected Duration: 2-5 minutes (if analysis needed)
Note: This task runs independently and provides context. It doesn't block the main pipeline gate check.
Purpose: Evaluate test results from promoted stable build
MCP Tool: Uses slash command /ci:analyze-build-test-results
Prerequisites: Build promotion detected (phase == "Accepted")
Input:
release: The z-stream version (e.g., 4.20.1)Execution Steps:
Step 1: Check for test result file
Step 2: Check for aggregation
Step 3: Check acceptance status and gate check
Expected Duration:
Next Action: If gate check passes, trigger async tasks (image-consistency-check, stage-testing)
Purpose: Verify payload images match shipment MR
MCP Tool: oar_image_consistency_check(release, job_id=None)
Input:
release: Z-stream versionjob_id: Optional Prow job ID (for status check)Prerequisites:
Execution Phases:
Phase 1 - Trigger:
Phase 2 - Check Status:
Phase 3 - Complete:
Expected Duration: 90-120 minutes after trigger succeeds
Failure Handling:
Purpose: Run stage testing jobs on Jenkins
MCP Tool: oar_stage_testing(release, build_number=None)
Input:
release: Z-stream versionbuild_number: Optional Jenkins build number (for status check)Prerequisites:
Execution Phases:
Phase 1 - Trigger:
Phase 2 - Check Status:
Phase 3 - Complete:
Expected Duration: 2-4 hours after trigger succeeds
Failure Handling:
Purpose: Verify release images are properly signed
MCP Tool: oar_image_signed_check(release)
Input:
release: Z-stream versionPrerequisites: All 3 async tasks (push-to-cdn-staging, image-consistency-check, stage-testing) must complete successfully
Success Detection:
Expected Duration: 2 minutes
Next Action: Proceed to change-advisory-status
Purpose: Change advisory status from QE to REL_PREP (final QE approval)
MCP Tool: oar_change_advisory_status(release)
Input:
release: Z-stream versionPrerequisites: All previous tasks must be "Pass"
Timing Guidance: This task should be run 1 day before the scheduled release date for optimal results.
How to determine release date:
Execution Flow:
Phase 1 - Trigger (Immediate Return):
IMPORTANT - Asynchronous Execution:
Phase 2 - Background Process (Runs Independently):
/tmp/oar_logs/metadata_checker_<release>.logPhase 3 - Completion:
If task times out:
oar_change_advisory_status(release) - checker restarts with fresh 2-day timeoutFinal Action: When background process succeeds, overall status marked "Green" and Slack notifications sent
Before making ANY decisions, AI must retrieve release state:
This returns task statuses, metadata, and any blocking issues from StateBox (or Google Sheets as fallback).
For Sequential Tasks:
For Test Result Analysis:
For Async Tasks:
For Parallel Tasks After Build Promotion (ENHANCED):
Transient Errors (Retry):
Permanent Errors (STOP):
Error Response:
Success Notifications:
Failure Notifications:
/ci:analyze-build-test-resultsSymptom: image-consistency-check or stage-testing fails to trigger
Diagnosis:
oar_get_release_metadata(release).shipment_mrCommon Causes:
Resolution:
/release:drivecd mcp_server && python3 server.py