Skip to main content Skills Marketplace Discover and explore AI skills built by the community.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Copy promptShow prompt details A direct command skips the review prompt. Inspect the source before running it.
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill configure-downstreamThe command stays on one line. Scroll horizontally to inspect it before copying.
Prefer a local copy? Download the files currently available to SkillsMP.
Download Zip Downloading... More from this repository
Related occupations SOC
Based on SOC occupation classification
name configure-downstream description Configure Konflux for new Submariner version - creates overlays, tenant config, and RPAs for Y-stream releases. version 1.0.0 argument-hint <new-version> user-invocable true allowed-tools Bash, Read, Glob
Configure Downstream Release
Configures Konflux CI/CD for a new Submariner minor version (Y-stream releases).
Usage:
/configure-downstream 0.23
/configure-downstream 0.23.0
What it does:
Auto-detects previous version from existing overlays
Creates feature branch (subm-configure-v0.23) from main
Creates 3 commits with 49 total files:
Commit 1: 26 YAML overlay files
Commit 2: 22 auto-generated Kustomize manifests
Commit 3: 2 ReleasePlanAdmission files (stage + prod)
Verifies all changes before committing
Outputs push command and MR instructions
Arguments: $ARGUMENTS
set -euo pipefail
INPUT_VERSION="$ARGUMENTS "
cd ~/konflux/konflux-release-data || {
echo "❌ Error: konflux-release-data repository not found at ~/konflux/konflux-release-data"
exit 1
}
test -f "tenants-config/build-single.sh" || {
echo "❌ Error: Invalid konflux-release-data repository (missing build-single.sh)"
exit 1
}
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
if [ "$CURRENT_BRANCH " != "main" ]; then
echo "❌ Error: Must be on main branch to start"
echo " Current branch: $CURRENT_BRANCH "
echo " Run: git checkout main"
exit 1
fi
git diff-index --quiet HEAD -- 2>/dev/null || {
echo "❌ Error: Working tree has uncommitted changes on main"
echo " Commit or stash changes before running this skill"
git status --short
exit 1
}
git fetch origin main 2>/dev/null || echo "⚠️ git fetch failed - working with cached remote state"
if ! git merge-base --is-ancestor origin/main HEAD 2>/dev/null;
1
| grep -qE || {
1
}
MAJOR_MINOR=$( | grep -oE )
NEW_MINOR=$( | -d. -f2)
NEW=
OVERLAY_DIR=
[ -d ];
1
EXISTING_VERSIONS=$( -1d /[0-9]*-overlay 2>/dev/null | \
xargs -n1 | sed | sed | -n)
[ -z ];
1
PREV_MINOR=$( | -1)
PREV=
PREV_ACM=
NEW_ACM=
[ -lt 0 ];
1
BRANCH=
git show-ref --verify --quiet ;
1
git show-ref --verify --quiet ;
git branch -D >/dev/null 2>&1
git checkout -b || {
1
}
-r
find . -name - sed -i \
-e \
-e \
-e {} +
FILE_COUNT=$(find . -name | -l)
[ -eq 26 ] || { ; 1; }
grep -q kustomization.yaml || { ; 1; }
grep -q *.yaml || { ; 1; }
grep -q component-patch.yaml || { ; 1; }
grep -rEq .;
grep -rE . | -3
1
git add
git commit -s -m
~/konflux/konflux-release-data/tenants-config/cluster/kflux-prd-rh02/tenants/submariner-tenant
grep -q kustomization.yaml || {
sed -i kustomization.yaml
}
~/konflux/konflux-release-data/tenants-config
./build-single.sh submariner-tenant
COUNT=$( * 2>/dev/null | -l)
[ -eq 22 ] || { ; 1; }
git add tenants-config/cluster/kflux-prd-rh02/tenants/submariner-tenant/kustomization.yaml
git add tenants-config/auto-generated/cluster/kflux-prd-rh02/tenants/submariner-tenant/
git commit -s -m
~/konflux/konflux-release-data/config/kflux-prd-rh02.0fk9.p1/product/ReleasePlanAdmission/submariner
sed -i -e \
-e \
-e \
-e \
*
grep -q || { ; 1; }
grep -q || { ; 1; }
COMPONENT_COUNT=$(grep -c )
[ -eq 9 ] || { ; 1; }
grep -q || { ; 1; }
PATCH_MATCHES=$(grep -E * 2>/dev/null)
[ -n ];
| -3
1
git add *
git commit -s -m
then
echo
"❌ Error: Local main is not up to date with origin/main"
echo
" Run: git pull origin main"
exit
fi
echo
"$INPUT_VERSION "
'^0\.[0-9]+(\.[0-9]+)?$'
echo
"❌ Error: Invalid version format '$INPUT_VERSION '"
echo
" Expected: 0.Y or 0.Y.Z (e.g., 0.23 or 0.23.1)"
exit
echo
"$INPUT_VERSION "
'^[0-9]+\.[0-9]+'
echo
"$MAJOR_MINOR "
cut
"0-${NEW_MINOR} "
"$HOME /konflux/konflux-release-data/tenants-config/cluster/kflux-prd-rh02/tenants/submariner-tenant/overlay/application-submariner"
if
"${OVERLAY_DIR} /${NEW} -overlay"
then
echo
"❌ Error: Version ${MAJOR_MINOR} already configured"
echo
" Overlay directory exists: ${NEW} -overlay"
exit
fi
ls
"${OVERLAY_DIR} "
basename
's/-overlay$//'
's/^0-//'
sort
if
"$EXISTING_VERSIONS "
then
echo
"❌ Error: No previous versions found"
echo
" Cannot auto-detect without existing overlays"
echo
" Expected at least one directory matching: ${OVERLAY_DIR} /0-*-overlay"
exit
fi
echo
"$EXISTING_VERSIONS "
tail
"0-${PREV_MINOR} "
"2.$((PREV_MINOR - 7) )"
"2.$((NEW_MINOR - 7) )"
if
"$((NEW_MINOR - 7) )"
then
echo
"❌ Error: ACM version would be negative: 2.$((NEW_MINOR - 7) )"
echo
" Minimum supported version is 0.7 (ACM 2.0)"
exit
fi
echo
"✓ Version detection:"
echo
" Previous: ${PREV} (ACM ${PREV_ACM} )"
echo
" New: ${NEW} (ACM ${NEW_ACM} )"
echo
""
"subm-configure-v${NEW//-/.} "
if
"refs/remotes/origin/$BRANCH "
then
echo
"❌ Error: Branch $BRANCH already exists on remote"
echo
" Delete it first: git push origin --delete $BRANCH "
echo
" Then re-run this skill"
exit
fi
if
"refs/heads/$BRANCH "
then
echo
"⚠️ Local branch $BRANCH exists - deleting and recreating"
"$BRANCH "
fi
"$BRANCH "
echo
"❌ Error: Failed to create branch $BRANCH "
exit
echo
"✓ Created feature branch: $BRANCH "
echo
" (All commits will be made on this branch)"
echo
""
cd
"${OVERLAY_DIR} "
cp
"${PREV} -overlay"
"${NEW} -overlay"
cd
"${NEW} -overlay"
"*.yaml"
exec
"s/$PREV /$NEW /g"
"s/${PREV//-/.} /${NEW//-/.} /g"
"s/\/$PREV_ACM \//\/$NEW_ACM \//g"
"*.yaml"
wc
"$FILE_COUNT "
echo
"❌ Expected 26 YAML files, found $FILE_COUNT "
exit
"nameSuffix: -$NEW "
echo
"❌ nameSuffix not updated in kustomization.yaml"
exit
"value: submariner-$NEW "
echo
"❌ Application name not updated to submariner-$NEW "
exit
"value: release-${NEW//-/.} "
echo
"❌ Git branch not updated to release-${NEW//-/.} "
exit
if
"${PREV} |${PREV//-/.} |${PREV_ACM} "
then
echo
"❌ Old version references still present:"
"${PREV} |${PREV//-/.} |${PREV_ACM} "
head
exit
fi
echo
" ✓ All verifications passed"
cd
"$(git rev-parse --show-toplevel) "
"tenants-config/cluster/kflux-prd-rh02/tenants/submariner-tenant/overlay/application-submariner/${NEW} -overlay"
"Add Submariner v${NEW//-/.} overlay structure"
echo
"✅ Commit 1: Created overlay structure (26 files)"
echo
" - Copied ${PREV} -overlay → ${NEW} -overlay"
echo
" - Updated version strings (${PREV} → ${NEW} , ${PREV_ACM} → ${NEW_ACM} )"
echo
" - Verified: nameSuffix, application name, git branch, no old versions"
echo
" - Committed: Add Submariner v${NEW//-/.} overlay structure"
echo
""
cd
"overlay/application-submariner/$NEW -overlay"
"/overlay\\/application-submariner\\/$PREV -overlay/a\\ - overlay/application-submariner/$NEW -overlay"
cd
ls
"auto-generated/cluster/kflux-prd-rh02/tenants/submariner-tenant/"
"-${NEW} .yaml"
wc
"$COUNT "
echo
"❌ Error: Expected 22 auto-generated files, found $COUNT "
exit
cd
"$(git rev-parse --show-toplevel) "
"Enable Submariner v${NEW//-/.} in tenant config"
echo
"✅ Commit 2: Enabled overlay in tenant config (22 files)"
echo
" - Added overlay entry to kustomization.yaml"
echo
" - Ran build-single.sh submariner-tenant"
echo
" - Generated 22 auto-generated manifests"
echo
" - Committed: Enable Submariner v${NEW//-/.} in tenant config"
echo
""
cd
cp
"submariner-release-plan-admission-prod-$PREV .yaml"
"submariner-release-plan-admission-prod-$NEW .yaml"
cp
"submariner-release-plan-admission-stage-$PREV .yaml"
"submariner-release-plan-admission-stage-$NEW .yaml"
"s/$PREV /$NEW /g"
"s/${PREV//-/.} /${NEW//-/.} /g"
"s/\"$PREV_ACM \"/\"$NEW_ACM \"/g"
"s/\\/$PREV_ACM \\//\\/$NEW_ACM \\//g"
"submariner-release-plan-admission-"
"-$NEW .yaml"
"intention: staging"
"submariner-release-plan-admission-stage-$NEW .yaml"
echo
"❌ Stage RPA intention not 'staging'"
exit
"intention: production"
"submariner-release-plan-admission-prod-$NEW .yaml"
echo
"❌ Prod RPA intention not 'production'"
exit
"url: registry"
"submariner-release-plan-admission-prod-$NEW .yaml"
"$COMPONENT_COUNT "
echo
"❌ Expected 9 components in RPA, found $COMPONENT_COUNT "
exit
"product_version: \"$NEW_ACM \""
"submariner-release-plan-admission-prod-$NEW .yaml"
echo
"❌ Product version not set to \"$NEW_ACM \""
exit
"v${NEW//-/.} \.[0-9]+-"
"submariner-release-plan-admission-"
"-$NEW .yaml"
if
"$PATCH_MATCHES "
then
echo
"❌ Found patch version in RPA tags (should use minor version only)"
echo
"$PATCH_MATCHES "
head
exit
fi
echo
" ✓ All verifications passed"
cd
"$(git rev-parse --show-toplevel) "
"config/kflux-prd-rh02.0fk9.p1/product/ReleasePlanAdmission/submariner/submariner-release-plan-admission-"
"-$NEW .yaml"
"Add Submariner v${NEW//-/.} stage/prod RPAs"
echo
"✅ Commit 3: Added stage/prod RPAs (2 files)"
echo
" - Copied RPA files (stage, prod)"
echo
" - Updated version strings and ACM version"
echo
" - Verified: intentions, component count (9), product version, tag format"
echo
" - Committed: Add Submariner v${NEW//-/.} stage/prod RPAs"
echo
""
echo
"━━━ SUMMARY ━━━"
echo
""
echo
"✅ All 3 commits completed successfully"
echo
" - 26 overlay files created"
echo
" - 22 auto-generated manifests built"
echo
" - 2 RPA files configured"
echo
" - Total: 49 files added"
echo
" - Branch: $BRANCH (currently checked out)"
echo
""
echo
"📋 Review changes:"
echo
" git log --oneline -3 # View commit messages"
echo
" git diff main...$BRANCH --stat # View file changes summary"
echo
" git diff main...$BRANCH # View full diff"
echo
""
echo
"🚀 Next steps:"
echo
" 1. Review the commits above"
echo
" 2. Push: git push origin $BRANCH "
echo
" 3. Create MR in GitLab UI (auto-opens after push)"
echo
" 4. After merge, wait for ArgoCD deploy (~5-10 min)"
echo
" 5. Verify: oc get releaseplans -n submariner-tenant | grep -E \"stage-${NEW} |prod-${NEW} \""
echo
""
echo
"💡 If you need to start over:"
echo
" git checkout main"
echo
" git branch -D $BRANCH "