65 lines
2.4 KiB
Markdown
65 lines
2.4 KiB
Markdown
---
|
|
paths:
|
|
- "notes/operations-center-guide.md"
|
|
- "incusos/incusos-proxmox"
|
|
- "incusos/examples/*oc*"
|
|
---
|
|
|
|
# Operations Center
|
|
|
|
## Basics
|
|
|
|
- **CLI**: `operations-center` (from GitHub releases or `github.com/FuturFusion/operations-center`).
|
|
- **Config**: `~/.config/operations-center/` (copy certs from `~/.config/incus/`).
|
|
- **Port**: 8443. Browser needs PKCS#12 client cert (`client.pfx`). Web UI at `/ui/`.
|
|
- **v0.3.0** (active dev). Use `--version` to check.
|
|
- **No `remote:` suffix**: requires `operations-center remote switch NAME`.
|
|
|
|
## Provisioning workflow
|
|
|
|
- **No brownfield**: nodes must boot from OC-provisioned ISO.
|
|
- **Token seeds**: `provisioning token seed add/get-image`. No `force_reboot` for Proxmox.
|
|
```bash
|
|
operations-center provisioning token seed add <UUID> proxmox-preseed \
|
|
/tmp/preseed.yaml --description "No force_reboot for Proxmox"
|
|
operations-center provisioning token seed get-image <UUID> proxmox-preseed \
|
|
/tmp/IncusOS-oc.iso --type iso --architecture x86_64 --channel old-stable
|
|
```
|
|
- **Hybrid deploy** (recommended):
|
|
`incusos-proxmox --iso /tmp/IncusOS-oc.iso --yes lab-oc-nodes.yaml`
|
|
- **Self-registration**: nodes register with OC in ~30s after first boot.
|
|
|
|
## needs_update blocker (critical)
|
|
|
|
- OC requires `needs_update: false` for `provisioning cluster add`.
|
|
- Nodes from latest ISO are `needs_update: true` (never went through OC pipeline).
|
|
- **Fix**: use `--channel old-stable` for ISO. OC pushes update, clears flag.
|
|
|
|
## Cluster formation
|
|
|
|
```bash
|
|
echo '{}' > /tmp/oc-app-config.yaml
|
|
operations-center provisioning cluster add oc-cluster \
|
|
https://<NODE_01_IP>:8443 \
|
|
--server-names oc-node-01,oc-node-02,oc-node-03 \
|
|
--server-type incus \
|
|
--application-seed-config /tmp/oc-app-config.yaml
|
|
```
|
|
- Use `apply_defaults: false` for OC nodes (recommended).
|
|
- Empty `{}` app config if cert already in trust store from SEED_DATA.
|
|
|
|
## Tested limitations
|
|
|
|
- Inventory NOT real-time -- requires `cluster resync`
|
|
- OC reboot breaks OC-managed Proxmox nodes (daemon crash from invalid state.txt)
|
|
- Fix: destroy and redeploy. Proxmox stop/start is safe.
|
|
- No cluster member state tracking (always shows `ready`)
|
|
- Stale entries from out-of-band changes persist
|
|
- Server removal blocked if part of OC cluster
|
|
- `needs_update` is pipeline-based, not version-based
|
|
- OVN LB has no health checks
|
|
|
|
## ISO upload skip bug (fixed)
|
|
|
|
- `--iso` now deletes existing ISO before re-upload (prevents stale reuse).
|