بنقرة واحدة
release-checklist
Full release checklist for multi-cloud deployment (GCP + AWS)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Full release checklist for multi-cloud deployment (GCP + AWS)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Scaffold and run batch scoring jobs (CronJob + Parquet output) that reuse the service's model + feature-engineering code without opening the live API
Root-cause a performance alert using sliced metrics + ground-truth
Review cloud costs against budget and identify optimization opportunities
Debug ML inference issues — latency spikes, wrong predictions, event loop blocking
Deploy ML service to EKS with Kustomize overlays and IRSA
Deploy ML service to GKE with Kustomize overlays and Workload Identity
استنادا إلى تصنيف SOC المهني
| name | release-checklist |
| description | Full release checklist for multi-cloud deployment (GCP + AWS) |
| allowed-tools | ["Read","Grep","Glob","Bash(git:*)","Bash(docker:*)","Bash(kubectl:*)","Bash(gh:*)","Bash(curl:*)"] |
| when_to_use | Use when preparing a version release to production across GCP and AWS. Examples: 'release v1.2.0', 'prepare production release', 'deploy new version', 'multi-cloud release' |
| argument-hint | <version-tag> [service-name] |
| arguments | ["version-tag"] |
| authorization_mode | {"pre_flight_checks":"AUTO","build_images":"AUTO","deploy_dev":"AUTO","deploy_staging":"CONSULT","deploy_production":"STOP","rollback_invocation":"STOP","escalation_triggers":[{"quality_gate_fail":"STOP"},{"sbom_missing":"STOP"},{"kyverno_policy_fail":"STOP"},{"disagreement_in_metrics":"CONSULT"}]} |
# Update version
export VERSION=v{MAJOR}.{MINOR}.{PATCH}
# Tag and push
git tag -a ${VERSION} -m "Release ${VERSION}: {summary}"
git push origin ${VERSION}
# For each service
for SERVICE in service-a service-b service-c; do
# GCP Artifact Registry
docker build -t ${GCP_REGISTRY}/${SERVICE}:${VERSION} ${SERVICE}/
docker push ${GCP_REGISTRY}/${SERVICE}:${VERSION}
# AWS ECR
docker build -t ${AWS_REGISTRY}/${SERVICE}:${VERSION} ${SERVICE}/
docker push ${AWS_REGISTRY}/${SERVICE}:${VERSION}
done
# Update overlays (production environment for release)
# k8s/overlays/gcp-prod/kustomization.yaml → newTag: ${VERSION} (CI replaces with @sha256 digest)
kubectl apply -k k8s/overlays/gcp-prod/
kubectl rollout status deployment --all -n {namespace} --timeout=300s
# Update overlays (production environment for release)
# k8s/overlays/aws-prod/kustomization.yaml → newTag: ${VERSION} (CI replaces with @sha256 digest)
kubectl apply -k k8s/overlays/aws-prod/
kubectl rollout status deployment --all -n {namespace} --timeout=300s
/health returning 200 on all services/predict returning valid predictions/metrics being scraped by PrometheusSmoke tests run inside the deploy chain via deploy-common.yml
(canonical SSOT). Each environment job invokes the smoke test step
against the freshly-deployed pods; failure halts the chain.
# Manual invocation (one service, one cloud) for debugging:
kubectl --context=$CLUSTER -n $NAMESPACE port-forward svc/$SERVICE 8000:8000 &
curl -fsS http://localhost:8000/health # liveness
curl -fsS http://localhost:8000/ready # readiness (gates traffic)
curl -fsS -X POST http://localhost:8000/predict \
-H 'content-type: application/json' \
-d "$(cat tests/fixtures/smoke_payload.json)"
kill %1
For a multi-service / multi-cloud sweep, drive the loop from a
runbook page or a CI workflow-dispatch — the template does not ship
a scripts/smoke_test.py script (would compete with deploy-common.yml
as SSOT).
If any issue detected within 30 minutes:
# Rollback all services
kubectl rollout undo deployment --all -n {namespace}
kubectl rollout status deployment --all -n {namespace}
The release is complete when ALL of the following hold across BOTH clouds:
/health 200, /ready 200, /predict
returns valid response, /metrics scraped by Prometheus)releases/v<version>.md publishedops/audit.jsonl with operation
= release_deploy, result = success for each cloud × env pairIf any of these signals appears, the release is NOT complete and must
be either rolled back via /rollback (STOP) or paused for human review:
.windsurf/workflows/release.mdrollback (consequence path on any failure mode)security-audit (gate before build)