Skip to content

Using extensions

Extensions are a way to expand the Talos root filesystem. This allows you to add features like custom container runtimes or extra firmware. These extensions are only applied when you first install or upgrade Talos Linux, but even with them, the root filesystem remains immutable and is read-only. Overlays are similar to extensions, but are used to modify the installation process rather than the root filesystem. You may choose one or more additional extensions for your image. These extensions will be built into the target image and will persist through upgrades as well.

In this example we chose the hello-world-service, which acts as an example for extension developers.

Prerequisites:

Steps:

  1. Follow the generic image creation steps, as described in the getting started guide.

  2. In the step where you can select an extension, type “hello” into the search box and select the hello-world-service.

    The image shows the second step in the 'Create Image' workflow within the STACKIT Edge Cloud web interface.

  3. Follow the remaining image creation steps. The resulting preview should indicate that your extension(s) are included in the image. They’ll be part of any installation medium generated from this image. Click the “create” button to create the image.

    The image shows the final step in the 'Create Image' workflow within the STACKIT Edge Cloud web interface.

  4. The rest of the process is identical to the regular image creation procedure.

Currently, the only way to get a list of all available image versions, overlays, or extensions, is to query the STEC image factory. The following example shows how to use the API to get a list of Talos extensions.

Terminal window
# get available extensions
> INSTANCE_REGION="eu01"
> curl https://image-factory.edge.$INSTANCE_REGION.stackit.cloud/versions
[
"v1.10.5-stackit.v0.20.0",
"v1.10.5-stackit.v0.21.0",
"..."
]
> IMAGE_VERSION="v1.10.5-stackit.v0.20.0"
> curl https://image-factory.edge.$INSTANCE_REGION.stackit.cloud/version/$IMAGE_VERSION/extensions/official
[
{
"name": "siderolabs/nvidia-open-gpu-kernel-modules-lts",
"ref": "stecreg.azurecr.io/siderolabs/nvidia-open-gpu-kernel-modules-lts:535.247.01-v1.10.5",
"digest": "sha256:ba78a60ddecca672ea7856125567b405f01511fa0b9a8b8fc9daa7da8351e0ee",
"author": "Sidero Labs",
"description": "This system extension provides nvidia open source driver kernel modules built against a specific Talos version.\n"
},
{
"name": "avcheck",
"ref": "stecreg.azurecr.io/avcheck:v1.10.5-stackit.v0.20.0",
"digest": "sha256:62a720e5fc9987cab170957a646518e1d18e469ae6e39254c3efa8db7578d97d",
"author": "STACKIT",
"description": "The agent part of the STACKIT Edge Cloud solution\n"
},
"..."
]