Skip to content

Deployment Talos Linux

Minimum system requirements

You will need a minimum of 2 Network Interfaces

Tip

While we would expect the environment to be running with multiple bonds in a production cloud, two network interfaces is all that's required. This can be achieved with vlan tagged devices, physical ethernet devices, macvlan, or anything else. Have a look at the netplan example file found here for an example of how you could setup the network.

Note

You will also want to update the /etc/genestack/helm-chart-versions.yaml file. You will want to set the kube-ovn version to: kube-ovn: v1.14.10

Kernel modules

Talos boot image by default comes with very little. A typical install of Genestack will use Longhorn as the persistent storage backend. In order to use longhorn you will need the following extra packages

  • siderolabs/iscsi-tools
  • siderolabs/util-linux-tools

A bootable image with the extra packages installed can be found here: Talos Linux Image Factory

  • Download The Talos Linux Image
  • Boot Your Machines
  • Install talosctl
curl -sL <https://talos.dev/install> | sh
  • Generate cluster configs

Run this command to generate the configuration file

talosctl gen config $CLUSTER_NAME https://$CONTROL_PLANE_IP:6443 --install-disk /dev/$DISK_NAME

Apply Configurations

Now that you’ve created your configurations, it’s time to apply them to bring your nodes and cluster online.

Run this command to apply the control plane configuration:

talosctl apply-config --insecure --nodes $CONTROL_PLANE_IP --file controlplane.yaml

Next, apply the worker node configuration

for ip in "${WORKER_IP[@]}"; do
    echo "Applying config to worker node: $ip"
    talosctl apply-config --insecure --nodes "$ip" --file worker.yaml
done

Set your endpoints

Set your endpoints with this

talosctl --talosconfig=./talosconfig config endpoints $CONTROL_PLANE_IP

Bootstrap Your Etcd Cluster

Wait for your control plane node to finish booting, then bootstrap your etcd cluster by running.

talosctl bootstrap --nodes $CONTROL_PLANE_IP --talosconfig=./talosconfig

Note

Run this command ONCE on a SINGLE control plane node. If you have multiple control plane nodes, you can choose any of them.

Get Kubernetes Access

Download your kubeconfig file to start using kubectl. You have two download options: you can either merge your Kubernetes configurations OR keep them separate. Here’s how to do both:

Merge your new cluster into your local Kubernetes configuration

talosctl kubeconfig --nodes $CONTROL_PLANE_IP --talosconfig=./talosconfig

Specify a filename if you prefer not to merge with your default Kubernetes configuration

talosctl kubeconfig alternative-kubeconfig --nodes $CONTROL_PLANE_IP --talosconfig=./talosconfig
export KUBECONFIG=./alternative-kubeconfig

Tip

You will need to keep in mind that kubespray installs cert-manager as part of its installation process. So you will need to install it manually. Here is a helm chart that will provide it for you: https://github.com/cert-manager/cert-manager