Write BEP for spec-driven multi-node deployment
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 368
Description
Write a BEP for the spec-driven multi-node deployment approach before decomposing implementation. This Task gates the Epic's implementation work.
Starting decisions (already agreed - carry into the BEP):
- Do NOT reintroduce pyinfra. The earlier pyinfra scaffold was removed as unused (#11231) because it duplicated install logic already in context.py.
- Reuse the existing install steps in context.py (funnel through run_exec / run_shell / copy_config / sed_in_place; addresses read from InstallInfo / HalfstackConfig / ServiceConfig in types.py).
- Externalize the spec: replace the hardcoded localhost hydrate_install_info() (context.py:129 "# TODO: multi-node setup") with a spec loader; a one-node localhost spec reproduces today's single-node behavior.
- Add a RemoteContext (Context subclass overriding the 4 primitives over SSH via a thin lib such as asyncssh) so existing steps run remotely unchanged.
- Keep install/ a locked leaf component (deps: common/cli/plugin), no heavy 3rd-party orchestration dependency.
BEP must cover: deployment spec schema, step DAG / ordering, RemoteContext + SSH inventory, HA wiring (Redis Sentinel, PostgreSQL, multi-Manager, webserver failover endpoints per BA-6696/BA-6699), and the migration/coexistence story with the TUI installer.
Process: reserve a BEP number in backend.ai/proposals/README.md, draft from BEP-0000-template.md, and run the bep-guide skill inside the backend.ai worktree.
## Success Criteria
- [ ] BEP number reserved in proposals/README.md (BEP Number Registry).
- [ ] proposals/BEP-XXXX-.md drafted from the template, covering the sections above.
- [ ] PR submitted for BEP discussion.
- [ ] Once accepted, implementation Stories are derived via /bep-to-issues under BA-4407.
JIRA Issue: BA-6724
Contributor guide
Research direction
Reserve a BEP number in backend.ai/proposals/README.md, then read BEP-0000-template.md and run the bep-guide skill in the worktree. Draft proposals/BEP-XXXX-.md covering the deployment spec, step DAG, RemoteContext and SSH inventory, HA wiring, and TUI migration; done means the BEP is complete and a discussion PR is submitted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- distributed-systems, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100