UserVolumeConfig, pod security configuration, and the final Helm installation.
Prerequisites
Before you begin, ensure that you have the following:talosctlconfigured and authenticated against your clusterkubectlconfigured to access the same cluster- Helm 3 installed
- At least one dedicated disk per storage node (NVMe recommended)
siderolabs/iscsi-tools— provides iscsid and iscsiadm for persistent volume operationssiderolabs/util-linux-tools— provides fstrim for filesystem trimming
iscsi-tools and util-linux-tools) under System Extensions, and bootstrap your cluster using the generated image.
If your nodes are already running without these extensions, upgrade each node to a schematic that includes both extensions. You can generate an updated schematic using the Talos Image Factory, then follow the Boot Assets guide to apply it to your existing nodes.
Step 1: Provision a dedicated disk with UserVolumeConfig
Talos Linux v1.10 introduced UserVolumeConfig, which replaces the deprecatedmachine.disks API.
This resource automatically mounts selected disks under /var/mnt/<name>. In this guide, the volume is named longhorn which mounts at /var/mnt/longhorn.
1.1: Inspect available disks
Inspect the disks available on each storage node.1.2: Create the UserVolumeConfig
Create aUserVolumeConfig document to tell Talos which disk to provision for Longhorn. Talos will automatically mount the volume at /var/mnt/longhorn.
Adjust the diskSelector.match and maxSize to match your hardware.
The
diskSelector.match field accepts Common Expression Language (CEL) expressions. You can target disks more precisely using expressions such as disk.size > 50GB or disk.model == "Samsung SSD 980". Run talosctl get disks to see the available fields for your hardware. For more information, refer to the Disk Management documentation.1.3: Apply the UserVolumeConfig configuration to storage nodes
Define the IP addresses of the worker nodes that will provide storage to Longhorn. Add one entry per worker node that will provide storage to Longhorn:1.4: Reboot the nodes
Reboot each worker node to apply the configuration changes:Step 2: Enable privileged pod security
Longhorn requires privileged containers to manage disks and mount volumes. Talos enables the baseline Pod Security profile by default, which blocks privileged workloads. Create the Longhorn namespace with the privileged security level enabled.Step 3: Install Longhorn with Helm
Add the Longhorn Helm repository:/var/mnt/longhorn, which matches the disk path created in Step 1.
Wait for the deployment to complete:
Step 4: Verify the installation
Check that the Longhorn nodes are registered:SCHEDULABLE set to true and at least one disk detected.