ci: replace rsync deploy with Docker build+push+kubectl rollout #45

Merged
mik-tf merged 1 commit from development into main 2026-03-03 00:23:20 +00:00
Member

Replaces the broken rsync+systemctl production deploy with a Docker build+push+kubectl rollout approach.

Changes

  • Remove rsync/SSH/systemctl deploy steps (rsyncd module gone with old VM)
  • Build multi-stage Docker image from existing Dockerfile
  • Push :latest and :main tags to forge.ourworld.tf registry
  • Conditional kubectl rollout restart — skips gracefully if KUBECONFIG secret not yet set (see circle_ops#650)
  • Health check + smoke tests unchanged

Testing

  • build-container.yml already proved runs-on: docker + docker.io install pattern works
  • Rollout step is safe to skip until ops provisions KUBECONFIG secret

Closes circle_ops#650

Replaces the broken rsync+systemctl production deploy with a Docker build+push+kubectl rollout approach. ## Changes - Remove rsync/SSH/systemctl deploy steps (rsyncd module gone with old VM) - Build multi-stage Docker image from existing Dockerfile - Push `:latest` and `:main` tags to `forge.ourworld.tf` registry - Conditional `kubectl rollout restart` — skips gracefully if `KUBECONFIG` secret not yet set (see circle_ops#650) - Health check + smoke tests unchanged ## Testing - `build-container.yml` already proved `runs-on: docker` + `docker.io` install pattern works - Rollout step is safe to skip until ops provisions `KUBECONFIG` secret Closes circle_ops#650
ci: replace rsync deploy with Docker build+push+kubectl rollout
All checks were successful
Test / check (pull_request) Successful in 10m32s
Deploy Dev / build-and-deploy (push) Successful in 12m49s
Test / check (push) Successful in 7m1s
6c966ebaa9
Production now runs on k3s with imagePullPolicy: Always.
The old rsync/systemctl approach no longer works (rsyncd module
'mycportal' was removed with the VM). New workflow:
  1. Build multi-stage Docker image from Dockerfile
  2. Push :latest and :main tags to forge.ourworld.tf registry
  3. kubectl rollout restart (skips gracefully if KUBECONFIG secret
     not yet set — see circle_ops#650)
  4. Health check + smoke tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mik-tf changed title from WIP: ci: replace rsync deploy with Docker build+push+kubectl rollout to ci: replace rsync deploy with Docker build+push+kubectl rollout 2026-03-03 00:23:16 +00:00
mik-tf merged commit 51476789c8 into main 2026-03-03 00:23:20 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mycelium/www_migrate_mycelium!45
No description provided.