Deployment Runbook: Local¶
Preconditions¶
- k3d cluster
akshaya-stagingexists and is reachable (kubectl --context k3d-akshaya-staging get nodes). - Namespace-local
mysql-local/redis-localpods running in thestagingnamespace. akshayabazaar-local-secretsSecret already applied instaging.- hosts file entry:
127.0.0.1 staging.akshaya.local.
See Local Development → First-time setup if any of the above isn't true yet.
Backup/checkpoint¶
Not applicable - local data is disposable by design. If you want a checkpoint anyway:
Build¶
Buildsakshayabazaar-backend:local and akshayabazaar-frontend:local, imports both into the
k3d cluster.
Deploy¶
Runshelm upgrade --install akshaya-local helm/akshayabazaar -f values-local-staging.yaml
--set backend.image.tag=local --set frontend.image.tag=local --namespace staging --wait.
Database migration¶
Runs automatically as a pre-install,pre-upgrade Helm hook Job - no separate step. See
Kubernetes → Helm → Migrations.
Verification¶
.\scripts\verify-staging.ps1 `
-Context k3d-akshaya-staging `
-Namespace staging `
-ReleaseName akshaya-local `
-IngressHost staging.akshaya.local `
-IngressPort 80
Expected result¶
Smoke testing¶
Monitoring¶
Not applicable to local - monitoring.enabled: false in values-local-staging.yaml. Watch pods
directly:
Rollback¶
.\scripts\rollback-staging.ps1 -Context k3d-akshaya-staging -Namespace staging -ReleaseName akshaya-local -Yes
.\scripts\stop-staging.ps1 -Context k3d-akshaya-staging -Namespace staging -ReleaseName akshaya-local -Yes