Deploy On-Prem Authoritative Foundation (HyOps Blueprint)¶
-
Purpose: Bring up the on-prem authoritative foundation so that subsequent platform services can provision from NetBox-backed IPAM-driven intent. Owner: Platform engineering
-
Trigger: New on-prem environment, Proxmox SDN rebuild, or NetBox authority replacement
- Impact: SDN segmentation and IPAM authority become active; downstream IPAM-gated platform VM steps depend on this state
-
Severity: P2 Pre-reqs:
hyops init proxmoxcompleted for target env; Proxmox API access confirmed; vault decrypt working; required NetBox and PostgreSQL secrets set. -
Rollback strategy: Destroy optional VM steps first (
custom_platform_vm,postgres_core_vm,control_plane_vm), thenplatform/onprem/netbox, thencore/onprem/network-sdn. Review Proxmox SDN state manually before re-applying.
Context¶
Blueprint ref: onprem/authoritative-foundation@v1
Location: hybridops-core/blueprints/onprem/authoritative-foundation@v1/blueprint.yml
This is the Day-1+ chain. Non-foundation steps (control_plane_vm, postgres_core_vm, custom_platform_vm) are marked optional: true and gate on NetBox being ok before they run. They are the IPAM-driven expansion layer: finalize NetBox inputs before activating them.
Step flow:
core/onprem/network-sdn(bootstrap): enforce Proxmox SDN zone, VNets, and DHCP (skip_if_state_ok: true, live verification on skip enabled)platform/onprem/netbox(bootstrap): deploy NetBox as the IPAM authority and reconcile live service drift on deployplatform/onprem/control-node(authoritative, optional): IPAM-gated control-node VMplatform/onprem/postgresql-core(authoritative, optional): IPAM-gated PostgreSQL core VMplatform/onprem/platform-vm(authoritative, optional): IPAM-gated generic platform VM slot
Steps 3–5 require platform/onprem/netbox state to be ok and use addressing_mode: ipam with ipam_authority: netbox. Do not activate them until NetBox is populated with the intended IPAM data for the target environment.
Preconditions and safety checks¶
-
Validate init readiness:
hyops init status --env <env> -
Confirm Proxmox API access and SDN permissions:
hyops preflight --env <env> --module core/onprem/network-sdn -
Ensure required secrets exist (NetBox DB password at minimum for step 2):
hyops secrets ensure --env <env> NETBOX_DB_PASSWORD -
Validate blueprint definition and preflight gate:
hyops blueprint validate --ref onprem/authoritative-foundation@v1 hyops blueprint preflight --env <env> --ref onprem/authoritative-foundation@v1
Steps¶
Phase 1: Foundation (SDN + NetBox)¶
- Initialize an env-scoped blueprint overlay
hyops blueprint init --env <env> \ --ref onprem/authoritative-foundation@v1 \ --dest-name authoritative-foundation.yml
Edit ~/.hybridops/envs/<env>/config/blueprints/authoritative-foundation.yml and set:
network_sdn.inputs.zone_name,zone_bridge,dns_domain,vnets: match your Proxmox topologynetbox_foundation.inputs.db_state_ref: point to your PostgreSQL core state if using a separate DB host
Source blueprint defaults intentionally mirror the minimal bootstrap foundation (vnetmgmt + vnetdata).
If your environment already carries additional VNets, always use an env-scoped overlay rather than relying on the source defaults directly.
- Keep the first authoritative run foundation-only
Current hyops blueprint commands do not support a per-step --steps selector.
For the first authoritative run, use the env-scoped overlay file and remove the optional
VM steps from the overlay until NetBox/IPAM inputs are ready.
-
Execute the foundation overlay
hyops blueprint deploy --env <env> \ --file $HOME/.hybridops/envs/<env>/config/blueprints/authoritative-foundation.yml \ --execute \ --yes -
Verify NetBox is reachable and populate IPAM data
hyops state show --env <env> --module core/onprem/network-sdn hyops state show --env <env> --module platform/onprem/netbox
Access NetBox via the published URL in module state and populate prefixes, IP ranges, and device records for the planned VMs before proceeding to Phase 2.
Phase 2: Authoritative VM expansion (IPAM-gated, optional)¶
Only proceed once NetBox state is ok and IPAM data is populated.
- Finalize optional step inputs in the overlay and re-add the steps
At minimum:
control_plane_vm.inputs.vm_namepostgres_core_vm.inputs.target_state_refor explicit target inputs, if you intend to reconcile an existing PostgreSQL host-
custom_platform_vm.inputs.addressingplus the VM-set details required by your platform-vm contract -
Rerun the full overlay
network_sdn remains state-skippable with live skip verification, while netbox_foundation
is reconciled on deploy so authority service drift is caught live:
hyops blueprint deploy --env <env> \
--file $HOME/.hybridops/envs/<env>/config/blueprints/authoritative-foundation.yml \
--execute
Verification¶
Success indicators:
- Blueprint summary ends with
status=ok. core/onprem/network-sdnstate isok; SDN zone, VNets, and DHCP pools are visible in Proxmox UI.platform/onprem/netboxstate isok; NetBox URL is reachable and returns a healthy API response.- Optional VM steps (if activated) report
status=ok; VMs are provisioned with IPAM-assigned addresses.
Spot-check state for key steps:
hyops state show --env <env> --module core/onprem/network-sdn
hyops state show --env <env> --module platform/onprem/netbox
hyops state show --env <env> --module platform/onprem/control-node
Post-actions and clean-up¶
- Document the NetBox URL and admin credentials in the environment state record.
- After NetBox is populated, activate optional VM steps as platform capacity is needed.
- This foundation is the prerequisite for any subsequent blueprint that uses
ipam_authority: netbox(e.g.onprem/postgresql-ha@v1,onprem/rke2@v1). - If SDN was rebuilt, verify downstream module states that reference network segmentation outputs.
References¶
- Bootstrap NetBox Foundation (HyOps Blueprint)
- Runbook index by category - Platform
- Blueprint source: authoritative-foundation@v1
License: MIT-0 for code, CC-BY-4.0 for documentation