Skip to main content

Runbook: Update Service

Purpose

Update a running service with new images or configuration changes while minimizing downtime.

Prerequisites

  • SSH access to odin
  • Service compose directory under ~/ravenhelm/services/<service>
  • Maintenance window if the service is user-facing

Procedure

Step 1: Identify the service

# Confirm container is running
ssh ravenhelm@100.115.101.81 "docker ps | grep <service>"

Step 2: Pull latest changes

ssh ravenhelm@100.115.101.81 "cd ~/ravenhelm/services/<service> && docker compose pull"

If the update includes config changes tracked in git:

ssh ravenhelm@100.115.101.81 "cd ~/ravenhelm/services/<service> && git status"

Step 3: Apply the update

ssh ravenhelm@100.115.101.81 "cd ~/ravenhelm/services/<service> && docker compose up -d"

Step 4: Verify

ssh ravenhelm@100.115.101.81 "docker logs <service> --tail 100"
ssh ravenhelm@100.115.101.81 "docker ps | grep <service>"

Rollback

If the update fails, pin the previous image tag or revert configuration:

# Revert local config changes if needed
ssh ravenhelm@100.115.101.81 "cd ~/ravenhelm/services/<service> && git checkout -- ."

# Re-apply the previous tag and restart
ssh ravenhelm@100.115.101.81 "cd ~/ravenhelm/services/<service> && docker compose up -d"