Skip to main content

Flintlock

API docs and instructions on how to provision hardware to run Flintlock services.

API docs

Flintlock is a gRPC service with an HTTP gateway.

The proto API can be found here.

The HTTP API can be found here.

Server configuration

flintlockd can be run as a systemd service or directly/managed by another mechanism.

The service can be configured via flags or a yaml config file.

The minimum options required to run are:

containerd-socket: <path to containerd socket>
verbosity: <1-9>
parent-iface: <wired interface>

Flintlock can be configured and started by the provision.sh tool.

Adding SSH keys to MicroVMs

info

For instructions on how to add SSH keys to MicroVMs created via CAPMVM see this page.

If you are creating MicroVMs via the flintlock API directly, encode your keys in the cloud-init "user-data":

cat << EOF >userdata.txt
#cloud-config
hostname: mvm0
users:
- name: root
ssh_authorized_keys:
- |
ssh-ed25519 foobar
disable_root: false
package_update: false
final_message: The Liquid Metal booted system is good to go after $UPTIME seconds
runcmd:
- dhclient -r
- dhclient
EOF

cat userdata.txt | base64
# result

And add the result to the spec:

{
"id": "mvm0",
"namespace": "ns0",
// ...
"metadata": {
"meta-data": "aW5zdGFuY2VfaWQ6IG5zMC9tdm0wCmxvY2FsX2hvc3RuYW1lOiBtdm0wCnBsYXRmb3JtOiBsaXF1aWRfbWV0YWwK",
"user-data": "ENCODED RESULT"
}
}