Pular para conteúdo

Provisionamento Firecracker via Host-Agent

proxbox-api define o contrato HTTP entre o NMS Cloud e um host-agent Firecracker. O inventario do NetBox continua no netbox-proxbox: pools, hosts, imagens e registros FirecrackerMicroVM sao resolvidos antes desta API ser chamada.

Fluxo

sequenceDiagram
    participant NMSB as nms-backend
    participant API as proxbox-api
    participant Agent as Firecracker host-agent

    NMSB->>API: POST /cloud/firecracker/provision[/stream]
    API->>Agent: GET /health
    API->>Agent: GET /capabilities
    API->>Agent: POST /assets/prepare
    API->>Agent: POST /microvms
    API->>Agent: POST /microvms/{microvm_id}/actions/start
    API-->>NMSB: status, microvm_id, instance_ref, guest_ip

O endpoint sem stream retorna JSON final. O endpoint com stream envia Server-Sent Events e termina com event: complete.

Endpoints

Metodo Caminho Finalidade
POST /cloud/firecracker/provision Provisiona uma micro-VM em um host-agent e retorna JSON final
POST /cloud/firecracker/provision/stream Provisiona uma micro-VM e envia progresso por SSE

Ambos usam o middleware normal X-Proxbox-API-Key. X-Proxbox-Actor e opcional e entra nos metadados enviados ao host-agent.

Eventos SSE

Evento Payload
provision_step {step, label, status} para host_agent_health, capabilities, prepare_assets, create_microvm e start_microvm
terminal_line Linha de progresso legivel, hoje usada para caminhos de assets
complete FirecrackerProvisionResponse final em sucesso ou {ok:false,error} em falha

Resposta

Respostas de sucesso incluem ok, microvm_id, instance_ref, host_id, host_pool_id, image_id, status, guest_ip e detail. Quando netbox_microvm_id e informado, instance_ref usa o formato firecracker:<id> e e o identificador usado pelo NMS Cloud.