0. Requirements and Toolchain

Prepare hardware and install the toolchain.

Toolchain

You will need the following tools installed on your workstation (or on the bastion host, if you use it to access the cluster nodes):

  • talosctl, the command line client for Talos Linux.

  • kubectl, the command line client for Kubernetes.

  • Talm, Cozystack’s own configuration manager for Talos Linux.

    curl -sSL https://github.com/cozystack/talm/raw/refs/heads/main/hack/install.sh | sh -s
    

Hardware Requirements

To run this tutorial, you will need the following setup:

Cluster nodes: three bare-metal servers or virtual machines in the following minimal configuration:

  • CPU: 4 cores, x86 architecture.
  • RAM: 16 GiB.
  • Hard disks:
    • HDD1: 32GiB
      Primary disk, used for Talos Linux, etcd storage, and downloaded images.
    • HDD2: 100GiB
      Secondary disk, used for user application data.
  • OS:
    • For kexec installation: any Linux distribution able to run kexec, for example, Ubuntu.
      Using kexec is a simple way to boot Talos Linux, optimal for this tutorial, but restricted on VMs by some cloud providers.
    • None, for other installation methods.
  • Networking:
    • Routable FQDN domain.
      If you don’t have one, you can use nip.io with dash notation
    • Located in the same L2 network segment.
      Cozystack can be deployed with a variety of networking options, but for this tutorial it’s best to use a simple configuration.
  • Anti-spoofing disabled.
    It is required for MetalLB, the load balancer used in Cozystack
  • If using virtual machines, there are extra requirements:
    • CPU passthrough enabled and CPU model set to host in the hypervisor settings.
    • Nested virtualization enabled.
      Required for virtual machines and tenant kubernetes clusters.

For a more detailed explanation of hardware requirements for different setups, refer to the Hardware Requirements