How do I promote a release to production?¶
Keyword: How do I promote a release to production?
Promotion in SmartTouch is a pull request workflow. A merge to main deploys to staging automatically. A release tag opens a pull request against the prod overlay, which requires a Platform Engineer or Administrator to approve.
Goal¶
Promote the Remote Access Service from staging to prod.
Prerequisites¶
- The service is deployed and healthy in
staging - Smoke tests against
staginghave passed - You have a GitHub account with write access to the repository
Promotion path¶
dev ← automatic on every PR merge to main
↓
staging ← automatic on every merge to main (after dev is healthy)
↓
prod ← requires a tagged release + manual PR approval
Steps¶
Step 1—Verify staging is healthy¶
Before creating a release, confirm the service is running correctly in staging:
stctl status --env staging --service remote-access-service
Expected:
Status: Running
Replicas: 2/2 ready
Image: harbor.smarttouch.io/myteam/remote-access-service:1.1.0
Run a full probe against staging:
stctl remote-access probe --env staging
Expected:
✔ Probe session opened and closed successfully
Broker latency: 22ms
Step 2—Create a release tag¶
Tag the commit on main that you want to release:
git checkout main
git pull
git tag v1.1.0 -m "Release Remote Access Service v1.1.0"
git push origin v1.1.0
Step 3—GitHub Actions creates the prod promotion PR¶
When the tag is pushed, GitHub Actions automatically:
- Verifies the image for
1.1.0exists in Harbor - Runs the Harbor vulnerability scan
- Updates the image tag in
k8s/overlays/prod/ - Opens a pull request titled:
chore: promote remote-access-service v1.1.0 to prod
The pull request includes a deployment summary showing what changed between the current prod version and the new version.
Step 4—Platform Engineer or Administrator approves the PR¶
The prod promotion PR requires approval from a platform-engineer or administrator role. The approver verifies:
- The image tag matches the release tag
- The vulnerability scan passed
- The staging deployment is healthy
Step 5—Merge the pull request¶
After approval, merge the pull request. Argo CD detects the manifest change and deploys to prod.
Monitor the prod deployment:
stctl status --env prod --service remote-access-service
Step 6—Verify prod deployment¶
stctl remote-access probe --env prod
Expected:
✔ Probe session opened and closed successfully
Environment: prod
Broker latency: 19ms
Validation¶
Promotion is complete when:
| Check | Command | Expected |
|---|---|---|
| Correct version running | stctl status --env prod --service remote-access-service |
Image tag matches release tag |
| Broker active | stctl remote-access probe --env prod |
Probe succeeds |
Troubleshooting¶
GitHub Actions didn't create a prod PR after the tag push**¶
Check the Actions workflow run in GitHub. Common causes: the image for the tag doesn't exist in Harbor, or the vulnerability scan failed. Rebuild and push the image, then re-push the tag.
Approver cann't find the pull request**¶
The PR is opened against the prod branch in the same repository. Check the Pull Requests tab filtered by base: prod.