Skip to content

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)