Skip to content

Upgrades

Upgrades within the 0.1 patch stream: back up, upgrade the instance, let migrations run, then roll workers.

  • Back up PostgreSQL. Migrations are forward-only; the backup is the downgrade path.
  • Read the changelog for the target release.
  • Optionally pause admission on busy pools so drained workers are not replaced mid-upgrade.

Schema migrations run automatically when vulcand starts on a newer version. To run them separately — required when running more than one replica — start with --no-migrate and run:

Terminal window
$ vulcand migrate --config /etc/vulcan/vulcand.yaml
applying 3 migrations done (1.2s)

Migrations hold a lock, so concurrent runs are safe; the losers wait and exit cleanly. Running builds are not interrupted — steps in flight finish against the old schema and reconcile on completion.

Instance first, workers second. Workers older than the instance keep working within 0.1; the reverse is not supported.

Terminal window
$ curl -sSf https://get.vulcan-ci.io/vulcand | sh
$ systemctl restart vulcand
Terminal window
$ docker pull ghcr.io/vulcan-ci/vulcand:0.1
$ docker stop vulcand && docker rm vulcand
$ docker run -d --name vulcand # same flags as installation
Terminal window
$ helm upgrade vulcan vulcan-ci/vulcand --version 0.1.0 --reuse-values

Workers do not self-update. Quarantine a worker on the pool page (it finishes running steps, takes no new ones), reinstall the worker binary, and re-enrol. For autoscaled fleets, rotate the image and let admission replace the fleet.

Terminal window
$ vulcan worker enroll --pool linux-arm64 --token $ENROLLMENT_TOKEN
  • Backups — PostgreSQL is the only state that matters; artifacts are reproducible. Nightly pg_dump is sufficient for most instances.
  • HealthGET /healthz returns instance, database, and queue status; wire it into your monitoring.
  • Retention — set build retention per project (by count or age) to bound database growth. The delivery log prunes itself after 90 days; export first if you need longer.
  • Certificates and secretsvulcand reloads TLS certificates and the config file on SIGHUP, without dropping builds.