Skip to main content

01 — Getting started (Network Fabric)

Goal: Turn on the Fabric eBPF edge, confirm schema v4, and take a first observe glance at identities and network status.

You will use: fluxctl identity list, fluxctl observe, REST /v1/network/status.

1. Enable the dataplane​

sudo ./scripts/build-ebpf.sh
sudo install -D -m0644 dist/bpf/fluxvm_tc.bpf.o /usr/lib/fluxvm/bpf/fluxvm_tc.bpf.o
sudo install -D -m0644 dist/bpf/fluxvm_xdp.bpf.o /usr/lib/fluxvm/bpf/fluxvm_xdp.bpf.o

Ensure [sandbox.dataplane] mode = "ebpf" in /etc/fluxvm.toml, then:

sudo systemctl restart fluxvm
curl -sf http://127.0.0.1:7788/healthz >/dev/null && echo LIVENESS_OK
curl -sf http://127.0.0.1:7788/readyz | python3 -c 'import json,sys; assert json.load(sys.stdin).get("ok") is True; print("READYZ_OK")'
curl -sf http://127.0.0.1:7788/v1/vms >/dev/null && echo API_OK

2. List reserved identities​

fluxctl identity list shows reserved destinations such as reserved:world, reserved:host, and related fabric identities:

sudo fluxctl --config /etc/fluxvm.toml identity list

Expect: entries with id 0–8 plus world-ipv4/ipv6 (19/20), reserved: true, labels like reserved:world.

curl -s http://127.0.0.1:7788/v1/network/identities | python3 -m json.tool | head -40

3. First observe snapshot​

sudo fluxctl --config /etc/fluxvm.toml observe
# or
curl -s http://127.0.0.1:7788/v1/network/observe | python3 -m json.tool

Expect: JSON with identities, groups, policies, endpoints (endpoints fill in after VMs have a network policy file).

4. Optional — attach a VM and check status​

Create a FluxVm with TAP + netns, then:

ID=<vm-uuid>
curl -s "http://127.0.0.1:7788/v1/vms/${ID}/network/status" | python3 -m json.tool

Expect: mode=ebpf, attached=true, schema_version=4, schema_compatible=true.

Next​