- verifying the image integrity
- building an image with custom configuration
Checkout Talos Source
Set up the Build Environment
See Developing Talos for details on setting up the buildkit builder.Architectures
By default, Talos builds forlinux/amd64, but you can customize that by passing PLATFORM variable to make:
Custom PKGS
When customizing Linux kernel, the source for the siderolabs/pkgs repository can
be overridden with:
- if you built and pushed only a custom
kernelpackage, the reference can be overridden withPKG_KERNELvariable:make <target> PKG_KERNEL=<registry>/<username>/kernel:<tag> - if any other single package was customized, the reference can be overridden with
PKG_<pkg>(e.g.PKG_IPTABLES) variable:make <target> PKG_<pkg>=<registry>/<username>/<pkg>:<tag> - if the full
pkgsrepository was built and pushed, the references can be overridden withPKGS_PREFIXandPKGSvariables:make <target> PKGS_PREFIX=<registry>/<username> PKGS=<tag>
Customizations
Some of the build parameters can be customized by passing environment variables tomake, e.g. GOAMD64=v1 can be used to build
Talos images compatible with old AMD64 CPUs:
Building Kernel and Initramfs
The most basic boot assets can be built with:_out/vmlinuz-<arch> and _out/initramfs-<arch>.xz.
Building Container Images
Talos container images should be pushed to the registry as the result of the build process. The default settings are:IMAGE_REGISTRYis set toghcr.ioUSERNAMEis set to thesiderolabs(or value of environment variableUSERNAMEif it is set)
~/.docker/config.json file (e.g. with docker login).
Building and pushing the image can be done with:
127.0.0.1:5005 can be used as well to avoid pushing/pulling over the network:
imager container, by default Talos will include the boot assets for both amd64 and arm64 architectures, if building only for single architecture, specify INSTALLER_ARCH variable:
Building ISO
The ISO image is built with the help ofimager container image, by default ghcr.io/siderolabs/imager will be used with the matching tag:
_out/talos-<arch>.iso.
If ISO image should be built with the custom imager image, it can be specified with IMAGE_REGISTRY/USERNAME variables:
Building Disk Images
The disk image is built with the help ofimager container image, by default ghcr.io/siderolabs/imager will be used with the matching tag:
image-% target, e.g. make image-aws.
Same as with ISO image, the custom imager image can be specified with IMAGE_REGISTRY/USERNAME variables.