Skip to content

BD-6 Prerequisites Checklist

Sign-off document for BD-6.0 (oep-stg end-to-end deploy + parity verify). All items must be ticked with evidence before BD-6.1 execution begins.

Scripted checks: scripts/bd4-preflight.sh covers the cluster/platform layer (items 1-7). Items 8-16 are manual.

Date signed off: pending Signed off by: pending


Cluster + platform layer

# Check Pass/Fail Evidence
1 kubeconfig set to do-ams3-oep-prd-cluster (kubectl config current-context)
2 Argo CD port-forward works: kubectl --context do-ams3-oep-prd-cluster -n argocd port-forward svc/argo-cd-argocd-server 8080:80
3 argocd app list shows root + all platform apps Synced/Healthy
4 3 ClusterSecretStore resources Valid (kubectl get clustersecretstore)
5 Doppler oep-stg config populated >= 45 keys
6 Gateway listeners :443 + :6001 Accepted + ResolvedRefs
7 Gateway LB IP known and noted here:

DOCR + image readiness

# Check Pass/Fail Evidence
8 DOCR basic tier (doctl registry get -o json \| jq -r '.[0].subscription_tier_slug' = basic)
9 Image v1.0.2 present in DOCR (doctl registry repository list-tags api \| grep v1.0.2)

Chart + CI

# Check Pass/Fail Evidence
10 apps/laravel/ chart on unipuka-infra-ops master, helm-lint.yml CI passing
11 values-oep-stg.yaml, values-mansety-prd.yaml, values-us-prd.yaml all committed

GitHub Actions secrets + environments

# Check Pass/Fail Evidence
12 GH repo secrets set on unipuka/soa: DIGITALOCEAN_TOKEN, INFRA_OPS_DEPLOY_TOKEN, SENTRY_AUTH_TOKEN, SLACK_WEBHOOK_URL
13 GH Environments oep-stg, mansety-prd, us-prd exist in unipuka/soa settings
14 GH Environment secret BUGSNAG_API_KEY set per-env (see Doppler oep/<tenant>BUGSNAG_API_KEY)

Smoke test prerequisites

# Check Pass/Fail Evidence
15 Test account exists on oep-stg: phone + password known to operator
16 REVERB_APP_KEY for oep-stg available from Doppler (doppler secrets get REVERB_APP_KEY --project oep --config oep-stg --plain)

Gate commands (run in order)

# 1. kubeconfig
kubectl config current-context
# expect: do-ams3-oep-prd-cluster

# 2-3. Argo access + health (run port-forward in bg first)
kubectl --context do-ams3-oep-prd-cluster \
  -n argocd port-forward svc/argo-cd-argocd-server 8080:80 &
sleep 3
argocd login localhost:8080 \
  --username admin \
  --password "$(doppler secrets get ARGOCD_ADMIN_PASSWORD --plain --project oep --config base)" \
  --plaintext --insecure
argocd app list

# 4. ClusterSecretStores
kubectl --context do-ams3-oep-prd-cluster get clustersecretstore

# 5. Doppler key count
doppler secrets --project oep --config oep-stg --only-names 2>/dev/null | wc -l
# expect: >= 45

# 6-7. Gateway
kubectl --context do-ams3-oep-prd-cluster -n gateway get gateway shared -o jsonpath='{.status.listeners}' | jq .
kubectl --context do-ams3-oep-prd-cluster -n gateway get svc -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}'

# 8. DOCR tier
doctl registry get -o json | jq -r '.[0].subscription_tier_slug'
# expect: basic

# 9. Image tag
doctl registry repository list-tags api | grep v1.0.2

Ticks added as BD-6 tickets land

Ticket Checklist item to tick
BD-6.1 Argo root + platform Synced/Healthy confirmed (item 3)
BD-6.2 ApplicationSet applied, 3 tenant apps visible
BD-6.3 AppProjects platform + tenants created
BD-6.4 First deploy v1.0.2 to oep-stg: all 4 pods Running
BD-6.5 scripts/smoke.sh oep-stg exits 0
BD-6.7 Bugsnag dashboard shows release per deploy