Note: This repo is deprecated. This functionality is now part of our Sidero project.
The Metal Metadata Server is a project by Talos Systems that provides a Cluster API-aware metadata server for bootstrapping bare metal nodes.
The server will attempt to lookup a given CAPI machine resource, given the UUID of the system (acquired from SMBIOS).
Once the system is found, it will simply return the bootstrap data associated with that machine resource.
This field is located in .spec.bootstrap.data
if you look at a given machine with kubectl get machine $MACHINE_NAME -o yaml
.
There are a few corequisites and assumptions that go into using this project:
This project can be built simply by running make release
from the root directory.
Doing so will create a file called _out/release.yaml
.
If you wish, you can tweak setting for service IPs and things of that nature by editing the release yaml.
This file can then be installed into your management cluster with kubectl apply -f _out/release.yaml
.
The Metal Metadata Server is really quite simple.
Once the server is up and running, you can curl a given UUID to test that it is working. An example:
curl http://10.96.0.23/configdata?uuid=00000000-0000-0000-0000-dxxxxxxxxx
You can then proceed to create your environment
CRD for the Metal Controller Manager to use, specifying something like talos.config=http://10.96.0.23/configdata?uuid=
in the kernel flags.
Note that the uuid param is empty. This is special behavior in Talos, as it will gather the UUID from SMBIOS information and populate that parameter automatically.