obmp-docker/docs/handoff/03-NEXT-STEPS.md

67 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

# Next steps & open decisions
## Immediate (blocking the current deploy)
1. **Resolve the branch/provisioning question** (VSCode instance — you own this):
- Confirm which branch the checkout is on and whether it's the intended one.
- Confirm whether `obmp-grafana/provisioning/` (dashboards + datasources) is
committed, and on which branch.
- If provisioning exists but Grafana didn't load it: verify files reached
`/var/openbmp/grafana/provisioning/`, check ownership (Grafana UID 472),
`docker compose restart grafana`, check logs for provisioning errors.
- If provisioning was never committed (UI-only): export current/expected
dashboards to JSON and commit them so greenfield deploys reproduce them.
This closes a real portability gap.
2. **Pin the deploy to a known branch/commit.** A greenfield deploy is only
reproducible if the checkout is pinned. Recommend documenting "clone, check
out <branch> at <commit>, run deploy.sh" — otherwise "clone and run" silently
depends on whatever branch was checked out. Consider adding a branch/commit
check to deploy.sh or the README.
## Deployment decisions still open
3. **Router BMP port: 5000 vs 1790.** deploy.sh now defaults router-facing to
1790 (IANA standard, avoids crowded 5000). BUT the lab routers are currently
configured to send to **5000**. Decision: either
- reconfigure the routers to 1790 (Sam leaned this way — cleaner, avoids
common-port collisions), which needs the IOS-XR `bmp server` port change
on each device and a compose mapping `1790:5000` on native hosts; or
- keep 5000 and deploy with `--router-port 5000`.
If moving to 1790: router-bmp-config.md needs the port updated, and the
native-host compose `ports:` for the collector needs `1790:5000`.
4. **Sizing profiles.** DEPLOYMENT-TYPES.md has three types with ballpark
resources (estimates, not measured). Sam is watermarking a prod-realistic
node to replace estimates with real numbers. When those land, update the
figures. There was an idea to add a `--sizing lab|prod-lite|prod` selector
that writes `*_MEM_LIMIT` blocks into `.env`; deferred until watermarks exist.
5. **Doc name sync.** deploy.sh was renamed to the three deployment types after
the docs were written; a couple of README/doc tables may still reference the
old scope names (feeders/full/standalone). Cosmetic — aliases keep it
working — but worth a sync pass.
## Integration decisions
6. **Where do the bundle files live?** deploy.sh + the 4 docs currently exist
only in Sam's chat outputs. Decide whether they get committed to the repo
(and to which branch), and whether deploy.sh supersedes or complements any
existing deploy tooling in the repo you may know about that I don't.
7. **Reconcile with whatever you (VSCode) have been building.** I have no
visibility into your repo work — the EVPN consumer, gobgp config, any CI, or
other tooling. If there's overlap or conflict between deploy.sh and existing
repo scripts, that's a reconciliation for you + Sam. Flag anything I've
duplicated or contradicted.
## Things that are DONE (don't redo)
- Native docker-in-WSL is installed and working; Docker Desktop is the wrong
substrate (finding 8). Don't re-recommend Desktop.
- The `.env` HOST_IP/auth reconciliation, staged bring-up, port preflight,
Windows-LAN-IP detection, and Docker Desktop guard are all built and tested
in deploy.sh.
- The bind-dir + stale-volume handling in deploy.sh is hardened (down+rm before
AND after setup.sh, plus a dir-existence check).