feat: split bootstrap into configure/migrate/up commands - #8
Open
BKJN1 wants to merge 2 commits into
Open
Conversation
🤖 Augment PR SummarySummary: This PR splits the deployment workflow into explicit configuration, migration, and startup phases.
🤖 Was this summary useful? React with 👍 or 👎 |
| Use: "configure <target> <version>", | ||
| Short: "Prepare a deployment without starting it", | ||
| Long: `configure checks the machine, generates this release's configs, and | ||
| resolves its secrets against OpenBao. It doesn't start anything and |
There was a problem hiding this comment.
configure does start OpenBao when the target's container is not already running (deploy.Configure runs docker compose ... up -d openbao), so this promise is inaccurate for a fresh deployment. That is particularly misleading for the new workflow's intended boundary between preparation and starting services. Other locations where this applies: README.md:178.
Severity: low
Other Locations
README.md:178
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Collaborator
Author
|
augment review |
|
Sorry, Augment failed to review this pull request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The three steps bootstrap always ran together are now available individually. Needed for deploying to the VPS: "change the database schema" should be a decision someone makes on purpose, not a side effect of starting a service.
configure — machine checks, config generation via versola-tools, secret resolution against OpenBao. Starts nothing, touches no database.
migrate — applies each service's own migrations (central/auth/edge each own their schema) in throwaway containers with MIGRATE_ONLY=true (see companion PR). No server starts. --no-deps matters here: without it, auth/edge would pull central up as a full server and the point of an independent step would be lost.
up — starts the stack and waits until it's actually serving. Assumes migrate already ran; services validate their schema at startup and refuse to start against an out-of-date one.
bootstrap is unchanged from the outside — it just chains the three, asking for vps confirmation once up front rather than three times.
Also closed: configure vps now asks for confirmation too. It looks like the harmless step (it starts nothing), but its Finalize is irreversible — it overwrites state.json and deletes the previous bundle, and on vps that record is the only handle status/down/uninstall have on the live deployment. Without a prompt, running configure directly would have been a way around the exact guard #7 asked for.
Smaller things: MigratedAt is no longer a dead field (shown in status, warned about in up), orphaned migrate containers from an interrupted run are cleaned up before retrying, README documents the new commands.
Verified end-to-end on docker-local, including admin console login.