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:
Building and Installing
This project can be built simply by running
make release from the root directory.
Doing so will create a file called
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:
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.
There is no documentation for this package.