Skip to content

Docs-site rollback

A commit to main in uber-docs has shipped a bad docs build — broken page, wrong copy, or a build regression that only surfaced in production. The bad image is live at kestrel.arbutus.cloud. This page is the emergency-button procedure to revert.

Rollback is a single MR revert on ubernetes-applications.

  1. Open the most recent MR with title chore(docs-site): bump image.tag to <sha> on ubernetes-applications.
  2. Click Revert in the GitLab UI. This opens a new MR that restores the previous image.tag.
  3. Merge the revert MR.
  4. ArgoCD reconciles within ~60 seconds and rolls the Deployment back to the previous image SHA.
  5. Verify at https://kestrel.arbutus.cloud that the bad content is gone.

End-to-end: ~2-3 minutes, most of which is the ArgoCD sync interval.

Every docs-site deploy is a specific image SHA pinned in environments/arbutus/kestrel/kestrel-prod/addons/docs-site/values.yaml. Reverting the MR that bumped the SHA restores the prior SHA. ArgoCD observes the values-file change and reconciles — because each image is immutable and SHA-tagged, the prior image is guaranteed to still exist in the GitLab Container Registry.

After the revert MR merges, the docs-site Application in ArgoCD goes from SyncedOutOfSyncSyncingSynced. The pod re-rolls with a brief Terminating on the old pod. Open https://kestrel.arbutus.cloud in a browser (hard refresh to bypass CDN/browser cache) and confirm the previous content is live.

If the site still shows the bad content after 5 minutes, check:

  • kubectl -n docs-site get deployment docs-site -o yaml | grep image: — should show the reverted SHA.
  • kubectl -n docs-site get pods — should show Running 1/1 with the reverted pod age.
  • kubectl -n argocd describe application docs-site — check for sync errors.

For deeper docs-site operational questions (pipeline health, image build failures, cert issuance problems), see the forthcoming platform-admin/docs-site-runbook.md (Phase 8 deliverable).