Skip to main content

Flintlock

Once you have installed firecracker and started containerd, you can start the flintlockd service.

You can either download a release, or build locally:

go mod download
make build

Flintlock will create MicroVMs with interfaces tapped to a parent on the host. If you have a wired connection (and you did not set up a bridge earlier), this will be the ethernet interface. If you are on a wireless connection (and you did need to create a bridge) this will be your wireless interface.

If you only have the one interface, this command will find it for you:

NET_DEVICE=$(ip route show | awk '/default/ {print $5}')

If you have both, you can use the above command (less the print bit) or ip link show, nmcli con show, etc, and do it by eye.

NET_DEVICE=<your parent interface name>

Lastly we start flintlockd with the address to our containerd, and the parent-iface name:

sudo ./bin/flintlockd run \
  --containerd-socket=/run/containerd-dev/containerd.sock \
  --parent-iface="${NET_DEVICE}" \
  --insecure

If you're running flintlockd from within a Vagrant VM and wish to call the gRPC API from your host machine then you need to run flintlockd with the --grpc-endpoint=0.0.0.0:9090 flag, otherwise the connection will be rejected.

You should see it start successfully with similar output:

INFO[0000] flintlockd, version=undefined, built_on=undefined, commit=undefined
INFO[0000] flintlockd grpc api server starting
INFO[0000] starting microvm controller
INFO[0000] starting microvm controller with 1 workers    controller=microvm
INFO[0000] resyncing microvm specs                       controller=microvm
INFO[0000] Resyncing specs                               action=resync controller=microvm namespace=ns
WARN[0000] basic authentication is DISABLED
WARN[0000] TLS is DISABLED
INFO[0000] starting event listener                       controller=microvm
INFO[0000] Starting workersnum_workers1                  controller=microvm