Upload image
NOTE: Hetzner Cloud provides Talos as Public ISO with the schematic idce4c980550dd2ab1b17bbf2b08801c7eb59418eafe8f279833297925d67c7515
(Hetzner + qemu-guest-agent) since 2025-04-23.
Minor updates of the ISO will be provided by Hetzner Cloud on a best effort.
If you need an ISO with a different schematic id, please email the support team to get a Talos ISO uploaded by following issues:3599 or you can prepare image snapshot by yourself.
There are three options to upload your own.
- Run an instance in rescue mode and replace the system OS with the Talos image
- Use Hashicorp packer to prepare an image
- Use special utility hcloud-upload-image
Rescue mode
Create a new Server in the Hetzner console. Enable the Hetzner Rescue System for this server and reboot. Upon a reboot, the server will boot a special minimal Linux distribution designed for repair and reinstall. Once running, login to the server usingssh
to prepare the system disk by doing the following:
To make sure disk content is consistent, it is recommended to shut the server down before taking an image (snapshot).
Once shutdown, simply create an image (snapshot) from the console.
You can now use this snapshot to run Talos on the cloud.
Packer
Install packer to the local machine. Create a config file for packer to use: Additionally you could create a file containinghcloud-upload-image
Install process described here (you can download binary or build from source, it is also possible to use Docker). For process simplification you can use thisbash
script:
After these actions, you can find the snapshot in the console interface.
Creating a Cluster via the CLI
This section assumes you have the hcloud console utility on your local machine.Create a Load Balancer
Create a load balancer by issuing the commands shown below. Save the IP/DNS name, as this info will be used in the next step.Create the Machine Configuration Files
Generating Base Configurations
Using the IP/DNS name of the loadbalancer created earlier, generate the base configuration files for the Talos machines by issuing:Validate the Configuration Files
Validate any edited machine configs with:Create the Servers
We can now create our servers. Note that you can findIMAGE_ID
in the snapshot section of the console: https://console.hetzner.cloud/projects/$PROJECT_ID/servers/snapshots
.
Create the Control Plane Nodes
Create the control plane nodes with:Create the Worker Nodes
Create the worker nodes with the following command, repeating (and incrementing the name counter) as many times as desired.Bootstrap Etcd
To configuretalosctl
we will need the first control plane node’s IP.
This can be found by issuing:
endpoints
and nodes
for your talosconfig with:
etcd
on the first control plane node with:
Retrieve the kubeconfig
At this point we can retrieve the admin kubeconfig
by running:
Install Hetzner’s Cloud Controller Manager
First of all, we need to patch the Talos machine configuration used by each node:kubeadm
related steps.