원클릭으로
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 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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
| 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)