fix: docs: nomad-cutover-runbook.md — end-to-end cutover procedure (#1060) #1065
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#1065
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-1060"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #1060
Changes
AI Review
Summary\n\nPure documentation addition: end-to-end cutover runbook for migrating from docker-compose on disinto-dev-box to Nomad on disinto-nomad-box.\n\n### Claim verification\n\n- ****: All three flags confirmed implemented in disinto — autonomous code factory CLI
Usage:
disinto init [options] Bootstrap a new project
disinto up Start the full stack (docker compose)
disinto down Stop the full stack
disinto logs [service] Tail service logs
disinto shell Shell into the agent container
disinto status Show factory status
disinto secrets Manage encrypted secrets
disinto run Run action in ephemeral runner container
disinto ci-logs [--step ]
Read CI logs from Woodpecker SQLite
disinto release Create vault PR for release (e.g., v1.2.0)
disinto hire-an-agent [--formula ] [--local-model ] [--model ]
Hire a new agent (create user + .profile repo; re-run to rotate credentials)
disinto agent Manage agent state (enable/disable)
disinto backup create Export factory state (issues + ops bundle)
disinto edge [options] Manage edge tunnel registrations
Edge subcommands:
register [project] Register a new tunnel (generates keypair if needed)
deregister Remove a tunnel registration
status Show registered tunnels
Agent subcommands:
disable Remove state file to disable agent
enable Create state file to enable agent
disable --all Disable all agents
enable --all Enable all agents
status Show which agents are enabled/disabled
Init options:
--branch Primary branch (default: auto-detect)
--repo-root Local clone path (default: ~/name)
--ci-id Woodpecker CI repo ID (default: 0 = no CI)
--forge-url Forge base URL (default: http://localhost:3000)
--backend Orchestration backend: docker (default) | nomad
--with (nomad) Deploy services: forgejo,woodpecker,agents,staging,chat,edge[,...] (S1.3, S3.4, S4.2, S5.2, S5.5)
--empty (nomad) Bring up cluster only, no jobs (S0.4)
--bare Skip compose generation (bare-metal setup)
--build Use local docker build instead of registry images (dev mode)
--yes Skip confirmation prompts
--rotate-tokens Force regeneration of all bot tokens/passwords (idempotent by default)
--dry-run Print every intended action without executing
--import-env (nomad) Path to .env file for import into Vault KV (S2.5)
--import-sops (nomad) Path to sops-encrypted .env.vault.enc for import (S2.5)
--age-key (nomad) Path to age keyfile (required with --import-sops) (S2.5)
Hire an agent options:
--formula Path to role formula TOML (default: formulas/.toml)
--local-model Base URL for local model server (e.g., http://10.10.10.1:8081)
--model Model name for local model (e.g., unsloth/Qwen3.5-35B-A3B)
--poll-interval
Poll interval in seconds (default: 60)CI logs options:
--step Filter logs to a specific step (e.g., smoke-init) (lines 1128–1131, 1138–1139).\n- **** (#1057): Implemented in , wired into disinto — autonomous code factory CLI
Usage:
disinto init [options] Bootstrap a new project
disinto up Start the full stack (docker compose)
disinto down Stop the full stack
disinto logs [service] Tail service logs
disinto shell Shell into the agent container
disinto status Show factory status
disinto secrets Manage encrypted secrets
disinto run Run action in ephemeral runner container
disinto ci-logs [--step ]
Read CI logs from Woodpecker SQLite
disinto release Create vault PR for release (e.g., v1.2.0)
disinto hire-an-agent [--formula ] [--local-model ] [--model ]
Hire a new agent (create user + .profile repo; re-run to rotate credentials)
disinto agent Manage agent state (enable/disable)
disinto backup create Export factory state (issues + ops bundle)
disinto edge [options] Manage edge tunnel registrations
Edge subcommands:
register [project] Register a new tunnel (generates keypair if needed)
deregister Remove a tunnel registration
status Show registered tunnels
Agent subcommands:
disable Remove state file to disable agent
enable Create state file to enable agent
disable --all Disable all agents
enable --all Enable all agents
status Show which agents are enabled/disabled
Init options:
--branch Primary branch (default: auto-detect)
--repo-root Local clone path (default: ~/name)
--ci-id Woodpecker CI repo ID (default: 0 = no CI)
--forge-url Forge base URL (default: http://localhost:3000)
--backend Orchestration backend: docker (default) | nomad
--with (nomad) Deploy services: forgejo,woodpecker,agents,staging,chat,edge[,...] (S1.3, S3.4, S4.2, S5.2, S5.5)
--empty (nomad) Bring up cluster only, no jobs (S0.4)
--bare Skip compose generation (bare-metal setup)
--build Use local docker build instead of registry images (dev mode)
--yes Skip confirmation prompts
--rotate-tokens Force regeneration of all bot tokens/passwords (idempotent by default)
--dry-run Print every intended action without executing
--import-env (nomad) Path to .env file for import into Vault KV (S2.5)
--import-sops (nomad) Path to sops-encrypted .env.vault.enc for import (S2.5)
--age-key (nomad) Path to age keyfile (required with --import-sops) (S2.5)
Hire an agent options:
--formula Path to role formula TOML (default: formulas/.toml)
--local-model Base URL for local model server (e.g., http://10.10.10.1:8081)
--model Model name for local model (e.g., unsloth/Qwen3.5-35B-A3B)
--poll-interval
Poll interval in seconds (default: 60)CI logs options:
--step Filter logs to a specific step (e.g., smoke-init). Confirmed.\n- **** (#1058): Not yet in the codebase. However, the pre-cutover checklist (§1) explicitly gates execution on both tools being "landed" — so the runbook correctly describes a future state where #1058 is merged. Not a defect.\n\n### Note (non-blocking)\n\nThe existing shows a different invocation that includes and flags. The new runbook uses a backup-centric approach instead (create backup → import backup → init). These represent complementary migration strategies. Once #1058 lands, a follow-up to clarify which doc supersedes the other would be useful, but that's out of scope here.\n\n### No issues found\n\nNo security concerns, no broken command references (given the stated prerequisites), no dropped configuration, no behavioral code changes requiring AGENTS.md updates.
Verdict
APPROVE — New runbook is coherent, commands verified against codebase, backup import correctly flagged as prerequisite
Reviewed at
2c7c8d0| AGENTS.mdAI Review: APPROVE — New runbook is coherent, commands verified against codebase, backup import correctly flagged as prerequisite