v2

latestOpenAPI 3.1.02026-08-07139158192.4 KB
Internal

Self-enroll a node using a provisioning token (no API key)

post/v1/nodes/enroll

Request body

cpuCoresinteger
cpuModelstring
hardwareFingerprintstring required
hostnamestring
identityPubkeystring

Node ed25519 identity public key (base64 raw, 32 bytes). Identity v2 collision-safe anchor: the box generates this once, keeps the private key at /etc/vectorlay/identity.key, and signs every enroll with it. Optional — absent = legacy (v1) enroll.

machineIdstring

Stable per-box identity (SMBIOS product_uuid / serial / cloud instance-id). Primary global node-identity key; fingerprint is the fallback when empty.

nebulaPubkeystring required

Node Nebula public key PEM (from nebula-cert keygen)

ramGbinteger
runtimestring

Node runtime detected by enroll.sh: qemu (VFIO/KVM passthrough) or gvisor (container GPUs). Default gvisor.

signaturestring

base64 ed25519 signature (v2) proving possession of identityPubkey over the identity-critical enroll fields (token hash, identity pubkey, nebula pubkey hash, fingerprint, machineId, hostname, signedAt). Required iff identityPubkey is set.

signedAtinteger

Unix seconds when the enroll body was signed (v2). Rejected if more than 300s from server time.

tokenstring required

Provisioning token (vtk_...)

Response

Enrolled

dataPlaneCastring required

CertIssuer CA the gateway pins; optional

dataPlaneCertstring required

node data-plane mTLS cert (gateway tunnel); optional

dataPlaneKeystring required

node data-plane mTLS key; optional

datacenterstring required
gatewayAddrstring required

host:port the node-agent dials (QUIC/UDP); optional

gatewayServerNamestring required

expected CN on the gateway server cert; optional

nebulaCastring required
nebulaCertstring required
nebulaOverlayIpstring required
nodeAgentTokenstring

durable node token for the node-agent self-update fetch (GET /v1/nodes/agent); optional

nodeIdstring required
nomadCastring required
nomadClientCertstring required
nomadClientKeystring required
nomadIntroTokenstring required
nomadPoolstring required
nomadServersstring[] required

server Nebula RPC addrs (ip:4647)