Upgrades
Upgrades within the 0.1 patch stream: back up, upgrade the instance, let migrations run, then roll workers.
Before you upgrade
Section titled “Before you upgrade”- 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.
Migrations
Section titled “Migrations”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:
$ vulcand migrate --config /etc/vulcan/vulcand.yamlapplying 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.
Upgrade procedure
Section titled “Upgrade procedure”Instance first, workers second. Workers older than the instance keep working within 0.1; the reverse is not supported.
$ curl -sSf https://get.vulcan-ci.io/vulcand | sh$ systemctl restart vulcandDocker
Section titled “Docker”$ docker pull ghcr.io/vulcan-ci/vulcand:0.1$ docker stop vulcand && docker rm vulcand$ docker run -d --name vulcand … # same flags as installationKubernetes
Section titled “Kubernetes”$ helm upgrade vulcan vulcan-ci/vulcand --version 0.1.0 --reuse-valuesRolling workers
Section titled “Rolling workers”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.
$ vulcan worker enroll --pool linux-arm64 --token $ENROLLMENT_TOKENRoutine maintenance
Section titled “Routine maintenance”- Backups — PostgreSQL is the only state that matters; artifacts are reproducible. Nightly
pg_dumpis sufficient for most instances. - Health —
GET /healthzreturns 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 secrets —
vulcandreloads TLS certificates and the config file onSIGHUP, without dropping builds.