Talos installation

Talos is a stripped down Linux distribution tailored towards easy setup and management of Kubernetes clusters.

Sidero Talos allows you to create a Kubernetes cluster, using Omni as the central administration hub. To connect Talos nodes to Omni, a join token needs to be passed to the node. This configuration parameter is referenced as a siderolink.api URL.

i3D.net currently only support Talos installations that connect to Omni. Therefore a siderolink.api URL must always be provided by means a kernel argument injected into the API call for a vanilla Talos install, or injected into a Talos Factory image.

Talos can be installed in two flavors, using a vanilla image or using a Talos Factory image.

Talos Vanilla Installation

POST /v3/flexMetal/servers

You must provide a siderolink.api URL as a kernel argument in the API request body. This makes the Talos node join your Omni instance.

You can provide additional Talos kernel arguments in the request body complementing or overriding our defaults.

Talos default kernel parameters are:
slab_nomerge
pti=on
vga=normal
locale=en_US
console-keymaps-at/keymap=us
net.ifnames=0
panic=0
initrd=initrd.magic
init_on_alloc=1
consoleblank=0
nvme_core.io_timeout=4294967295
nvme_core.multipath=n
printk.devkmsg=on
ima_template=ima-ng
ima_appraise=fix
ima_hash=sha512
talos.platform=metal
talos.events.sink=[fdae:41e4:649b:9303::1]:8091
talos.logging.kernel=tcp://[fdae:41e4:649b:9303::1]:8092

More information about Talos kernel parameters can be found here: https://www.talos.dev/v1.7/reference/kernel/

Our systems will automatically inject the network configuration for your server.

Request body

{
  "name": "MyTalosServer",
  "location": "EU: Rotterdam",
  "instanceType": "bm7.std.8",
  "os": {
    "slug": "talos-omni-1110",
    "kernelParams": [
      {
        "key": "siderolink.api",
        "value": "https://siderolink.api/?jointoken=secret"
      },
      {
        "key": "talos.customparam",
        "value": "123456"
      }
    ]
  }
}

Talos Factory Installation

POST /v3/flexMetal/servers

You must provide a factoryhash as a kernel argument in the request body, pointing to the Factory image you want to use.

You should add all your kernel arguments inside of the Factory Image configuration, and not add any here in the request body, as they will be forgotten by Talos when you add a node to a cluster, or upgrade a node.

Request body

{
  "name": "MyTalosServer",
  "location": "EU: Rotterdam",
  "instanceType": "bm7.std.8",
  "os": {
    "slug": "talos-omni-1110",
    "kernelParams": [
      {
        "key": "factoryhash",
        "value": "93be9c834b04065cdfb6223049697263586e92471231ed2abdfcc23c2a4551a4"
      }
    ]
  }
}

Classic NIC names vs predictable NIC names

The kernel parameter net.ifnames=0 will disable predictable network interface names and revert to classic names like eth0, eth1, etc.

In most cases it is best practice to use net.ifnames=0 so make sure you add that as a kernel argument to your Factory Image configuration.

This works in most cases where a server only has 1 or 2 uplinks. If you have more than 2 uplinks and network configuration is failing, it can be that Talos is assigning the wrong interfaces to eth0 and / or eth1. In that case you can try using the "predictable interface names" solution, by using the kernel parameter net.ifnames=1.

Last updated

Was this helpful?