Skip to main content
FieldTypeDescriptionValue(s)
namestringName of the volume.

Name might be between 1 and 34 characters long and can only contain:
lowercase and uppercase ASCII letters, digits, and hyphens.
volumeTypeVolumeTypeVolume type.directory
disk
partition
provisioningProvisioningSpecThe provisioning describes how the volume is provisioned.
filesystemFilesystemSpecThe filesystem describes how the volume is formatted.
encryptionEncryptionSpecThe encryption describes how the volume is encrypted.
mountUserMountSpecThe mount describes additional mount options.
trimTrimConfigThe trim describes the per-volume filesystem trim (fstrim) configuration.
scrubScrubConfigThe scrub describes the per-volume filesystem scrub configuration.

provisioning

ProvisioningSpec describes how the volume is provisioned.
FieldTypeDescriptionValue(s)
diskSelectorDiskSelectorThe disk selector expression.
growboolShould the volume grow to the size of the disk (if possible).
minSizeByteSizeThe minimum size of the volume.

Size is specified in bytes, but can be expressed in human readable format, e.g. 100MB.
maxSizeSizeThe maximum size of the volume, if not specified the volume can grow to the size of the
disk.

Size is specified in bytes or in percents. It can be expressed in human readable format, e.g. 100MB.

diskSelector

DiskSelector selects a disk for the volume.
FieldTypeDescriptionValue(s)
matchExpressionThe Common Expression Language (CEL) expression to match the disk.

filesystem

FilesystemSpec configures the filesystem for the volume.
FieldTypeDescriptionValue(s)
typeFilesystemTypeFilesystem type. Default is xfs.ext4
xfs
btrfs
projectQuotaSupportboolEnables project quota support, valid only for ‘xfs’ filesystem.

Note: changing this value might require a full remount of the filesystem.
xfsXFSSpecXFS-specific filesystem options, valid only for ‘xfs’ filesystem.

xfs

XFSSpec configures XFS-specific filesystem options.
FieldTypeDescriptionValue(s)
minAllocationGroupSizeByteSizeThe minimum size of an XFS allocation group.

On non-rotational devices mkfs.xfs sizes the allocation group count to the number of
CPUs, which on machines with many cores and a modest disk yields hundreds of tiny
allocation groups. Talos bounds the allocation group size from below to keep the geometry
sane; this option overrides that bound.

Set to zero to use the mkfs.xfs defaults unchanged.

Note: this only affects volumes at the time they are formatted.

Size is specified in bytes, but can be expressed in human readable format, e.g. 100MB.

encryption

EncryptionSpec represents volume encryption settings.
FieldTypeDescriptionValue(s)
providerEncryptionProviderTypeEncryption provider to use for the encryption.luks2
keysEncryptionKeyDefines the encryption keys generation and storage method.
cipherstringCipher to use for the encryption. Depends on the encryption provider.aes-xts-plain64
xchacha12,aes-adiantum-plain64
xchacha20,aes-adiantum-plain64
keySizeuintDefines the encryption key length.
blockSizeuint64Defines the encryption sector size.
options[]stringAdditional —perf parameters for the LUKS2 encryption.
allowDiscardsboolAllow TRIM/discard requests to be passed through to the underlying device when the encrypted volume is opened.
Defaults to false.

keys[]

EncryptionKey represents configuration for disk encryption key.
FieldTypeDescriptionValue(s)
slotintKey slot number for LUKS2 encryption.
staticEncryptionKeyStaticKey which value is stored in the configuration file.
nodeIDEncryptionKeyNodeIDDeterministically generated key from the node UUID and PartitionLabel.
kmsEncryptionKeyKMSKMS managed encryption key.
tpmEncryptionKeyTPMEnable TPM based disk encryption.
lockToStateboolLock the disk encryption key to the random salt stored in the STATE partition. This is useful to prevent the volume from being unlocked if STATE partition is compromised or replaced. It is recommended to use this option with TPM disk encryption for non-STATE volumes.

static

EncryptionKeyStatic represents throw away key type.
FieldTypeDescriptionValue(s)
passphrasestringDefines the static passphrase value.

nodeID

EncryptionKeyNodeID represents deterministically generated key from the node UUID and PartitionLabel.

kms

EncryptionKeyKMS represents a key that is generated and then sealed/unsealed by the KMS server.
FieldTypeDescriptionValue(s)
endpointstringKMS endpoint to Seal/Unseal the key.

The endpoint should be specified as a URL with an explicit scheme, e.g. https://kms.example.com:4443.
With the https:// scheme, the connection to the KMS server is established over TLS, and the server certificate
is verified against the trusted root CAs.

WARNING: if the scheme is omitted (e.g. kms.example.com:4443) or set to grpc://, the connection
to the KMS server is established without TLS, and the disk encryption key material is transmitted in plaintext.
Use plaintext endpoints only on fully trusted networks.

Note: when encrypting the STATE volume, custom trusted root CAs from the machine configuration
might not be available when unlocking the volume (as the machine configuration is stored on STATE),
so the KMS server certificate should be signed by a CA trusted by default.

tpm

EncryptionKeyTPM represents a key that is generated and then sealed/unsealed by the TPM.
FieldTypeDescriptionValue(s)
optionsEncryptionKeyTPMOptionsTPM options for key protection.
checkSecurebootStatusOnEnrollboolCheck that Secureboot is enabled in the EFI firmware.
If Secureboot is not enabled, the enrollment of the key will fail.
options
EncryptionKeyTPMOptions represents the options for TPM-based key protection.
FieldTypeDescriptionValue(s)
pcrs[]intList of PCRs to bind the key to. If not set, defaults to PCR 7, can be disabled by passing an empty list.

mount

UserMountSpec describes how the volume is mounted.
FieldTypeDescriptionValue(s)
disableAccessTimeboolIf true, disable file access time updates.
secureboolEnable secure mount options (nosuid, nodev, noexec).

Defaults to true for better security.

trim

TrimConfig describes per-volume filesystem trim (fstrim) configuration. It overrides the global FilesystemTrimConfig for the volume.
FieldTypeDescriptionValue(s)
enabledboolEnable or disable trimming for this volume.

If not set, trimming is enabled when the global FilesystemTrimConfig is present.
intervalDurationThe interval at which the volume is trimmed, overriding the global trim interval.
chunkSizeByteSizeThe size of the filesystem range trimmed at once, overriding the global chunk size.

Setting it explicitly to zero trims the whole filesystem at once.
When set to a non-zero value, the chunk size must be at least 1MiB.

Size is specified in bytes, but can be expressed in human readable format, e.g. 1GiB.
chunkDelayDurationThe delay between trimming consecutive chunks, overriding the global chunk delay.

Setting it explicitly to zero trims the chunks back-to-back.
minLengthByteSizeThe minimum contiguous free range to discard, overriding the global minimum length.

The value cannot exceed 128MiB, as ext4 rejects values larger than the block group size.

Size is specified in bytes, but can be expressed in human readable format, e.g. 1MiB.

scrub

ScrubConfig describes per-volume filesystem scrub configuration. It overrides the global FilesystemScrubConfig for the volume.
FieldTypeDescriptionValue(s)
enabledboolEnable or disable scrubbing for this volume.

If not set, scrubbing is enabled by default when scrub section is present.
intervalDurationThe interval at which the volume is scrubbed, overriding the global scrub interval.