This repository contains the metal agent extension for Talos.
This repository builds only the agent binary itself - it gets packaged into an extension
along with its dependencies (e.g., ipmitool) in the extensions repository.
When developing the agent, after doing your changes, run the following command to build Talos boot assets with the agent containing your changes:
-
Set up a
buildxbuilder instance with access to the host network, if you don't have one already:docker buildx create --driver docker-container --driver-opt network=host --name local1 --buildkitd-flags '--allow-insecure-entitlement security.insecure' --use -
Start a local image registry if you don't have one running already:
docker run -d -p 5005:5000 --restart always --name local registry:2 -
Build Talos boot assets with the agent containing your changes:
make image-boot-assets \ OUTPUT_REGISTRY_AND_USERNAME=127.0.0.1:5005/siderolabs
Hint: see
.kres.yamlfor more customization options. For example:- You can build against a different Talos version using the
IMAGER_TAGvariable. - You can customize the extensions repo references using
EXTENSIONS_*variables.
This command will build a container image with a tag like
127.0.0.1:5005/siderolabs/talos-metal-agent-boot-assets:v1.9.0-alpha.2-agent-198cabf-dirty, with the following structure:Permission UID:GID Size Filetree -rw-r--r-- 0:0 187 B ├── cmdline-metal-amd64 -rw-r--r-- 0:0 203 B ├── cmdline-metal-arm64 -rw-r--r-- 0:0 97 MB ├── initramfs-metal-amd64.xz -rw-r--r-- 0:0 78 MB ├── initramfs-metal-arm64.xz -rw-r--r-- 0:0 19 MB ├── kernel-amd64 -rw-r--r-- 0:0 22 MB └── kernel-arm64 - You can build against a different Talos version using the
-
Push this image to your local registry:
make push-boot-assets \ OUTPUT_REGISTRY_AND_USERNAME=127.0.0.1:5005/siderolabs
-
See the README in Omni Bare-Metal Infra Provider repository to build a provider image containing these boot assets.