Dev Instructions

To simplify developing changes for the metal-api, metal-hammer and metal-core, it is possible to use development artifacts from within the mini-lab.

Also start the mini-lab with a kind cluster, a metal-api instance as well as some vagrant VMs with two leaf switches and two machine skeletons. Additionally a Caddy and a Docker registry container is started. The former serves a prebuilt metal-hammer-initrd image, the latter holds prebuilt metalstack/metal-api and metalstack/metal-core images, which will be used as replacements for the official ones.

Thus you have to clone the following metal-stack repositories:


git clone ../metal-hammer
git clone ../metal-api
git clone ../metal-core


Build metal-hammer-initrd, metalstack/metal-api and metalstack/metal-core images and (re)start a minimal metal-stack system as well as a Caddy container that servers the former one and a Docker registry that holds the latter ones:

make dev

Stop and cleanup a potentially running metal-stack development system as well as the local Caddy and Docker registry containers:

make down

Exchange images at run-time:

Reload metal-hammer-initrd:

make build-hammer-initrd

Reload metal-api:

make reload-api

Reload metal-core:

make reload-core