Architecture
This architecture illustrates the two key personas and their workflows:
- Partner Admins: Configure baremetal provisioning by setting up gateways, provisioners, environment templates, and GitOps agents.
- End Users: Select a baremetal compute profile, provide minimal details (tags, SSH keys, optional cloud-init), and deploy a ready-to-use baremetal server.
PaaS Admin Flow¶
sequenceDiagram
participant Admin as Partner Admin
participant Ops as Ops Console
participant Gateway as Baremetal Gateway
participant Agent as Infra Agent (Head Node)
participant Prov as Baremetal Provisioner
participant Env as Env/Resource Templates
participant GitOps as GitOps Agent
Admin->>Ops: Enable Baremetal Feature Flags
Admin->>Gateway: Create Baremetal Gateway (system project)
Admin->>Agent: Install Infra Agent on Head Node
Admin->>Prov: Create Baremetal Provisioner linked to Gateway
Admin->>Env: Configure EnvironmentTemplate (BMaaS v2.0)
Admin->>GitOps: Deploy GitOps Agent with Partner API Key
GitOps->>Env: Attach EnvironmentTemplate
Env->>Prov: Match Inventory (BMC endpoint, PXE MAC, tags)
End User Flow¶
sequenceDiagram
participant User as End User
participant DevHub as Developer Hub
participant Controller as Rafay Controller
participant Env as EnvTemplate (BMaaS Profile)
participant Metal3 as Metal3/Ironic
participant BMC as Baremetal Server (BMC/PXE)
User->>DevHub: Login & Select Baremetal Profile
User->>DevHub: Provide SSH Key, Tags, Cloud-init (optional)
DevHub->>Controller: Submit BMaaS Request
Controller->>Env: Trigger ResourceTemplate with baremetal-provision driver
Env->>Metal3: Initiate Provisioning Workflow
Metal3->>BMC: Power ON (Redfish/IPMI) & PXE Boot
Metal3->>BMC: Deploy OS Image (qcow2/raw)
BMC-->>User: Baremetal Node Ready (SSH access available)