chore: review and align the deployer-ui and backend bundle config contract
Wave: WAVE_04 (since 2026-06-05)
Related: #170 (deployer-ui bundle), #171 (backend bundle)
Status - it works
The bundles deploy the deployer-ui + backend on dev_deployer_ui_lab and the stack is functional end to end :
the backend container is up and healthy on :8000, the UI is up, and the backend reaches the Proxmox API. The
POC path is green.
Where things live
- deployer-ui bundle :
range42-playbooks/bundles/admin/software.install.deployer-ui/
- backend bundle :
range42-playbooks/bundles/admin/software.install.deployer-api-backend/
- scenario :
range42-playbooks/scenarios/dev_deployer_ui_lab/
- bundle call-sites :
scenarios/dev_deployer_ui_lab/02_dev_deployer_ui_lab_infrastructure/stage_01-vm_configure/dev-backend.yml and dev-deployer-ui.yml
The ask
The app and its containerisation have grown and largely live on your side now ; from the deployer-cli side we
mainly feed variables at deploy time. When you have bandwidth, could you take ownership of the deployer-ui +
backend bundles' app-facing config and flag what you would like to improve or align ? The aim is to keep the
config/wiring contract clean as the deployer-cli conventions evolve (key naming, workspace layout, vault).
No urgency.
Proposed split (simplest path)
- You : own the backend Dockerfile and the two bundles' app-facing config, iterating on
dev_deployer_ui_lab.
- Us : feed the runtime variables to the containers at deploy, from the active workspace vault. Just tell
us the interface you prefer - .env, a config file, or an API call - and we wire the bundle to feed it.
Context - a few spots we noticed (no pressure, just what we saw)
- Naming + structure : SSH key naming and the workspace/vault layout are moving to the deployer-cli
convention (r42.<C>-<S>-...) ; the bundle bridges via symlinks for now. We will share the new layout so
the app can read it directly and we drop the bridge.
- Vault keys : the Proxmox host seed reads 5 keys (
proxmox_api_host/node/user/token_id/token_secret) ;
the scenario vault example documents only one - we will fix the example on our side.
- SSH key unlocking in the container : the range42 SSH keys are passphrase-protected by default, and the
backend's in-container ansible-runner needs them to reach the Proxmox jump + the VMs - with no interactive
ssh-agent inside a container. How does the current backend unlock them (an in-container agent, the
passphrase from the vault, or passphrase-less keys) ? Have you already planned this, or is it something to
sort out together ?
- Your call, we adapt : how you would like the Git sources + PAT handed over, the
scenarios/_universal
entrypoint the backend runs, and whether the schema bootstrap (alembic upgrade head) stays app-side or
bundle-side. Whatever you pick, we align the bundle.
chore: review and align the deployer-ui and backend bundle config contract
Status - it works
The bundles deploy the deployer-ui + backend on
dev_deployer_ui_laband the stack is functional end to end :the backend container is up and healthy on :8000, the UI is up, and the backend reaches the Proxmox API. The
POC path is green.
Where things live
range42-playbooks/bundles/admin/software.install.deployer-ui/range42-playbooks/bundles/admin/software.install.deployer-api-backend/range42-playbooks/scenarios/dev_deployer_ui_lab/scenarios/dev_deployer_ui_lab/02_dev_deployer_ui_lab_infrastructure/stage_01-vm_configure/dev-backend.ymlanddev-deployer-ui.ymlThe ask
The app and its containerisation have grown and largely live on your side now ; from the deployer-cli side we
mainly feed variables at deploy time. When you have bandwidth, could you take ownership of the deployer-ui +
backend bundles' app-facing config and flag what you would like to improve or align ? The aim is to keep the
config/wiring contract clean as the deployer-cli conventions evolve (key naming, workspace layout, vault).
No urgency.
Proposed split (simplest path)
dev_deployer_ui_lab.us the interface you prefer -
.env, a config file, or an API call - and we wire the bundle to feed it.Context - a few spots we noticed (no pressure, just what we saw)
convention (
r42.<C>-<S>-...) ; the bundle bridges via symlinks for now. We will share the new layout sothe app can read it directly and we drop the bridge.
proxmox_api_host/node/user/token_id/token_secret) ;the scenario vault example documents only one - we will fix the example on our side.
backend's in-container ansible-runner needs them to reach the Proxmox jump + the VMs - with no interactive
ssh-agent inside a container. How does the current backend unlock them (an in-container agent, the
passphrase from the vault, or passphrase-less keys) ? Have you already planned this, or is it something to
sort out together ?
scenarios/_universalentrypoint the backend runs, and whether the schema bootstrap (
alembic upgrade head) stays app-side orbundle-side. Whatever you pick, we align the bundle.