talosctl cluster create.
The action creates the cluster from a declarative configuration file, exports KUBECONFIG and TALOSCONFIG to later steps in the job, and destroys the cluster when the job ends.
talosctl-cluster-action is a community project maintained by home-operations, not by Sidero Labs.
Report problems with the action in its repository.
Requirements
The runner and the cluster must meet the following requirements:- An x86_64 Linux runner. GitHub-hosted
ubuntu-24.04runners meet the requirements of both providers described below. talosctlv1.14 or later on the runner’sPATH.- Talos v1.14 or later on the cluster nodes.
talosctl and Talos.
Create a cluster
To create a cluster, choose a provider, then add a cluster configuration file and a workflow to the repository. The action supports two providers, which map totalosctl cluster create docker and the QEMU provisioner.
The provider is set with spec.provider in the cluster configuration file, and the providers differ as follows:
Use
docker when a test only needs a Kubernetes API.
Use qemu when a test needs real kernels, disks, or Talos upgrades.
- Docker
- QEMU
The Docker provider runs each node as a container on the runner, and the cluster boots in seconds.
-
Save the cluster configuration to
.talos-cluster.yamlin the repository: The Docker provider always creates exactly one control plane node, so the configuration sets only the number of workers. -
Add a workflow, for example
.github/workflows/e2e.yaml: Without thebr_netfiltermodule, the pod network never becomes ready and cluster creation times out. - Commit both files and open a pull request.
Use the cluster in later steps
After the action runs,kubectl and talosctl in later steps use the new cluster, because the action exports KUBECONFIG and TALOSCONFIG.
The action also sets outputs, such as the address of the first control plane node.
To use an output, give the action step an id:
Default settings for short-lived clusters
By default, the action applies anephemeral profile that tunes the cluster for a single CI run.
For example, it disables etcd fsync, image garbage collection, pod eviction, and the public discovery service.
These settings are not suitable for a long-lived cluster.
To create the cluster without these settings, set spec.profile: none in the cluster configuration file.
More options
The talosctl-cluster-action README describes the rest of the configuration, including:- Every field of the cluster configuration file and the
talosctlflag it maps to. - Image Factory schematics, extra disks, and configuration patches.
- Caching boot assets between runs with the
cacheinput. - Running several cluster shapes in a job matrix.
- Booting nodes in maintenance mode without applying a machine configuration.