Documentation Index
Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
Use this file to discover all available pages before exploring further.
Release notes →(If the cluster is already running, sync the bootstrap manifests after applying the patch to deploy the new CNI configuration.)
The
Clang built kernel and ThinLTO
Talos now uses a kernel built using Clang compiler, and optimized using ThinLTO. This should bring a small performance improvement, alongside some hardening features, such as BTI on supported ARM systems.Container Device Interface
Talos now enables CDI by default and extension/extension services can bring in dynamic CDI spec files under/run/cdi.talosctl debug
Talos Linux now provides a way to run and attach to the privileged debug container with a user-provided container image. The debug container might be used for troubleshooting and debugging purposes.Environment Configuration Document
A newEnvironmentConfig document has been introduced to allow users to specify environment variables for Talos components.
It replaces and deprecates the previous method of setting environment variables via the .machine.env field.Multiple values for the same environment variable will replace previous values, with the last one taking precedence.To remove an environment variable, remove it from the EnvironmentConfig document and restart the node.External Volumes
Talos now supports virtiofs-based external volumes via the new ExternalVolumeConfig document.These virtiofs external volumes are not supported when SELinux is running in enforcing mode.Extra Arguments accept slices in addition to strings
Several Talos configuration fields that previously accepted single string values for extra arguments have been updated to accept slices of strings as well. This includes fields such as.cluster.apiServer.extraArgs.BREAKING: If you were relying on the resources EtcdConfigs, KubeletConfigs, ControllerManagerConfigs, SchedulerConfigs or APIServerConfigs, the protobuf format has changed from map<string,string> to map<string,message>.Container Image Signature Verification
Talos now supports machine-wide container image signature verification via the newImageVerificationConfig machine config document.Any image which gets pulled on the node will be verified against the configured rules, and if no rule matches, it will be pulled without verification.Talos Imager Enhancements
Talos imager now supports running rootless.--privileged and -v /dev:/dev are no longer required.Image APIs Updated
Talos Linux provides new APIs to manage container images on the node: listing, pulling, importing and removing images. The new pull API provides pull progress notifications.The CLI commandstalosctl image pull, talosctl image list and talosctl image remove have been updated to interact with the new APIs.Talosctl images k8s-bundle subcommand accepts version parameter
Thetalosctl images k8s-bundle command now accepts an optional argument to override Talos version.Install and Upgrade API
Talos now exposes install and upgrade operations via theLifecycleService API, enabling programmatic installs and upgrades through a single, consistent interface.
The legacy upgrade API is deprecated; new integrations should migrate to LifecycleService for future compatibility.Kubernetes server-side apply
Talos now uses inventory backed server-side apply when applying bootstrap manifests (includingextraManifests and inlineManifests).
Purging of unneeded manifests is automatically performed.
The switch and inventory backfill is automatic and no action is needed from the user.Dynamic Linux Kernel Preemption Model
Talos Linux now defaults to dynamic Linux kernel preemption model, the default valuenone matches
previous version, but now with kernel argument preempt= the preemption model can be changed.See Linux kernel documentation for more
information on supported values.This change only applies to amd64 (x86_64) architecture.KubeSpan Configuration
A newKubeSpanConfig document has been introduced to configure KubeSpan settings.
It replaces and deprecates the previous method of configuring KubeSpan via the .machine.network.kubespan field.The old configuration field will continue to work for backward compatibility.KubeSpan Advertised Network Filters
KubeSpan now supports filtering of advertised networks using theexcludeAdvertisedNetworks field in the KubeSpanConfig document.
This allows users to specify a list of CIDRs to exclude from the advertised networks. Please note that routing must be symmetric for any
pair of peers, so if one peer excludes a certain network, the other peer must also exclude it. In other words, for any given pair of peers,
and any pair of their addresses, the traffic should either go through KubeSpan or not, but not one way or the other.LinkAliasConfig Pattern-Based Multi-Alias
LinkAliasConfig now supports pattern-based alias names using %d format verb (e.g. net%d).When the alias name contains a %d format verb, the selector is allowed to match multiple links.
Each matched link receives a sequential alias (e.g. net0, net1, …) based on hardware address order
of the links. Links already aliased by a previous config are automatically skipped.This enables creating stable aliases from any N links using a single config document,
useful for BondConfig and BridgeConfig member interfaces on varying hardware.Negative Max Volume Size
Negative max size represents the amount of space to be left free on the device, rather than the size the volume should consume. For example:- a max size of “-10GiB” means the volume can grow to the available space minus 10GiB.
- a max size of “-25%” means the volume can grow to the available space minus 25%.
Flannel CNI with Network Policy Support
Talos Linux now supports optionally deploying Flannel CNI with network policy support enabled. The network policy implementation is kube-network-policies.To enable Flannel CNI with network policy support, use the following machine configuration patch:NVIDIA GPU Support
Talos switched to using CDI and now supports configuring NVIDIA GPU via the gpu-operator helm chart. See the documentation on upgrade notes for more details on how to configure NVIDIA GPU support in Talos.Container Image Decompression
Talos now ships withigzip (amd64) and pigz (arm64) to speed up container image decompression.ProbeConfig
The TCPProbeConfig configuration document allows to configure TCP probes for network reachability checks. This allows to define a custom connectivity condition./proc/PID/mem Access Hardening
A new kernel parameterproc_mem.force_override=never has been introduced by default to enhance system security
by preventing unwanted writes to protected process memory via /proc/PID/mem.
If the kernel parameter is removed, default behavior is restored, allowing access only if the process is traced.Reproducible Disk Images
Talos disk images are now reproducible. Building the same version of Talos multiple times will yield identical disk images.Note: VHD and VMDK (Azure and VMware) images are not currently reproducible due to limitations in the underlying image creation tools. Users verifying reproducible images should use raw images, verify checksums, and convert them to VHD/VMDK as needed.ResolverConfig
The nameservers configuration in machine configuration now overwrites any previous layers (defaults, platform, etc.) when specified. Previously a smart merge was performed to keep IPv4/IPv6 nameservers from lower layers if the machine configuration specified only one type.Routing Rules Support
Talos now supports routing rules via the newRoutingRuleConfig machine config document.talosctl images talos-bundle can ignore reaching to the registry
The talosctl images talos-bundle command now accepts optional --overlays and --extensions flags.
If those are set to false, the command will not attempt to reach out to the container registry to fetch the latest versions and digests of the overlays and extensions.Lifecycle Upgrade in talosctl
talosctl upgrades now route through LifecycleService, aligning CLI behavior with the new install/upgrade API and unifying the upgrade path.
This change is transparent to users but standardizes the backend used for upgrades.Component Updates
Linux: 6.18.24 containerd: 2.2.3 etcd: 3.6.9 CoreDNS: 1.14.2 Kubernetes: 1.36.0 CNI: 1.9.1 Flannel CNI plugin: v1.9.1-flannel1 Flannel: 0.28.4 LVM2: 2_03_38 runc: 1.4.2 systemd: 259.5 cryptsetup: 2.8.3 Tenstorrent: 2.7.0 iptables: 1.8.12 musl: 1.2.6Talos is built with Go 1.26.2.VM Hot-Add Support
Talos now includes udev rules to support hot-adding of CPUs in virtualized environments.VRF Support
Talos now supports VRF (Virtual Routing and Forwarding) via the newVRFConfig machine config document.Release notes →
Component Updates
Linux: 6.18.24 containerd: 2.1.7 etcd: 3.6.9 Kubernetes: v1.35.4Talos is built with Go 1.25.9.Release notes →
Component Updates
Linux: 6.18.15 Kubernetes: 1.35.2 etcd: 3.6.8Talos is built with Go 1.25.8.Release notes →
KubeSpan Advertised Network Filters
KubeSpan now supports filtering of advertised networks using theexcludeAdvertisedNetworks field in the KubeSpanConfig document.
This allows users to specify a list of CIDRs to exclude from the advertised networks. Please note that routing must be symmetric for any
pair of peers, so if one peer excludes a certain network, the other peer must also exclude it. In other words, for any given pair of peers,
and any pair of their addresses, the traffic should either go through KubeSpan or not, but not one way or the other.Component Updates
Linux: 6.18.9Talos is built with Go 1.25.7.Release notes →
The
talosctl images talos-bundle can ignore reaching to the registry
The talosctl images talos-bundle command now accepts optional --ovelays and --extensions flags.
If those are set to false, the command will not attempt to reach out to the container registry to fetch the latest versions and digests of the overlays and extensions.Component Updates
Linux: 6.18.5Talos is built with Go 1.25.6.Release notes →
What’s New
See also What’s new in Talos v1.12.0 in the documentation for a summary of the most notable changes in this release.API Server Cipher Suites
The Kubernetes API server in Talos has been updated to use a more secure set of TLS cipher suites by default. This is in line with a set of best practices documented in CIS 1.12 benchmark.You can still expand the list of supported cipher suites via thecluster.apiServer.extraArgs."tls-cipher-suites" machine configuration field if needed.New User Volume type - bind
New field in UserVolumeConfig -volumeType that defaults to partition, but can be set to directory.
When set to directory, provisioning and filesystem operations are skipped and a directory is created under /var/mnt/<name>.The directory type enables lightweight storage volumes backed by a host directory, instead of requiring a full block device partition.When volumeType = "directory":- A directory is created at
/var/mnt/<metadata.name>; provisioning,filesystemandencryptionare prohibited.
Disk Encryption
Talos versions prior to v1.12 used the state of PCR 7 and signed policies locked to PCR 11 for TPM based disk encryption.Talos now supports configuring which PCRs states are to be used for TPM based disk encryption via theoptions.pcrs
field in the tpm section of the disk encryption configuration.If user doesn’t specify any options Talos defaults to using PCR 7 for backwards compatibility with existing installations.This change was made to improve compatibility with systems that may have varying states in PCR 7 due to UEFI Secure Boot configurations
and users may wish to disable locking to PCR 7 state entirely.Signed PCR policies will still be bound to PCR 11.The currently used PCR’s can be seen with talosctl get volumestatus <volume> -o yaml command.New User Volume type - disk
volumeType in UserVolumeConfig can be set to disk.
When set to disk, a full block device is used for the volume.When volumeType = "disk":- Size specific settings are not allowed in the provisioning block (
minSize,maxSize,grow).
Embedded Config
Talos Linux now supports embedding the machine configuration directly into the boot image.etcd
etcd container image is now pulled fromregistry.k8s.io/etcd instead of gcr.io/etcd-development/etcd.Ethernet Configuration
The Ethernet configuration now includes awakeOnLAN field to enable Wake-on-LAN (WOL) support.
This field can be set to enable WOL and specify the desired WOL modes.Extra Binaries
Talos Linux now ships withnft binary in the rootfs to support CNIs which shell out to nft command.Feature Lock
Talos now ignores the following machine configuration fields:machine.features.rbac(locked to true)machine.features.apidCheckExtKeyUsage(locked to true)cluster.apiServer.disablePodSecurityPolicy(locked to true)
Talos force reboot
Talos now supports a “force” reboot mode, which allows skipping the graceful userland termination. It can be used in situations where a userland service (e.g. the kubelet) gets stuck during graceful shutdown, causing the regular reboot flow to fail.In addition,talosctl was updated to support this feature via talosctl reboot --mode force.GRUB
Talos Linux introduces new machine configuration option.machine.install.grubUseUKICmdline to control whether GRUB should use the kernel command line
provided by the boot assets (UKI) or to use the command line constructed by Talos itself (legacy behavior).This option defaults to true for new installations, which means that GRUB will use the command line from the UKI, making it easier to customize kernel parameters via boot asset generation.
For existing installations upgrading to v1.12, this option will default to false to preserve the legacy behavior.Kernel Log
The kernel log (dmesg) is now also available as the service log namedkernel (talosctl logs kernel).Kernel Module
Talos now supports optionally disabling kernel module signature verification by settingmodule.sig_enforce=0 kernel parameter.
By default module signature verification is enabled (module.sig_enforce=1).
When using Factory or Imager supply as -module.sig_enfore module.sig_enforce=0 kernel parameters to disable module signature enforcement.Kernel Security Posture Profile (KSPP)
Talos now enables a stricter set of KSPP sysctl settings by default. The list of overridden settings is available withtalosctl get kernelparamstatus command.Encrypted Volumes
Talos Linux now consistently provides mapped names for encrypted volumes in the format/dev/mapper/luks2-<volume-id>.
This change should not affect system or user volumes, but might allow easier identification of encrypted volumes,
and specifically for raw encrypted volumes.Network Configuration
The network configuration under.machine.network (with the exception of KubeSpan) has been deprecated, but it is still supported for backwards compatibility.
See documentation for more information.Persistent logs
Talos now stores system component logs in /var/log, featuring automatic log rotation and keeping two most recent log files. This change allows collecting logs from Talos like on any other Linux system.CRI Registry Configuration
The CRI registry configuration in v1apha1 legacy machine configuration under.machine.registries is now deprecated, but still supported for backwards compatibility.
New configuration documents RegistryMirrorConfig, RegistryAuthConfig and RegistryTLSConfig should be used instead.talosctl image cache-serve
talosctl includes new subcommand image cache-serve.
It allows serving the created OCI image registry over HTTP/HTTPS.
It is a read-only registry, meaning images cannot be pushed to it, but the backing storage can be updated by re-running the cache-create command;Additionally talosctl image cache-create has some changes:- new flag
--layout:oci(default),flat:ocipreserves current behavior;flatdoes not repack artifact layer, but moves it to a destination directory, allowing it to be served bytalosctl image cache-serve;
- changed flag
--platform: now can accept multiple os/arch combinations:- comma separated (
--platform=linux/amd64,linux/arm64); - multiple instances (
--platform=linux/amd64 --platform=linux/arm64);
- comma separated (
UEFI Boot
When using UEFI boot with systemd-boot as bootloader (on new installs of Talos from 1.10+ onwards), Talos will now not touch the UEFI boot order. Talos 1.11 made a fix to create UEFI boot entry and set the boot order as first entry, but this behavior caused issues on some systems. To avoid further issues, Talos will now only create the UEFI boot entry if it does not exist, but will not modify the boot order.Component Updates
Linux: 6.18.1 Kubernetes: 1.35.0 CNI Plugins: 1.9.0 cryptsetup: 2.8.1 LVM2: 2_03_37 systemd-udevd: 257.8 etcd: 3.6.7 CoreDNS: 1.13.2 Flannel: 0.27.4 Flannel CNI plugin: v1.8.0-flannel2 runc: 1.3.4 containerd: 2.1.6 zfs: 2.4.0Talos is built with Go 1.25.5.Release notes →
UEFI Boot
When using UEFI boot with systemd-boot as bootloader (on new installs of Talos from 1.10+ onwards), Talos will now not touch the UEFI boot order. Talos 1.11 made a fix to create UEFI boot entry and set the boot order as first entry, but this behavior caused issues on some systems. To avoid further issues, Talos will now only create the UEFI boot entry if it does not exist, but will not modify the boot order.Component Updates
Linux: 6.12.62 runc: 1.3.4Talos is built with Go 1.24.11.Release notes →
Component Updates
runc: 1.3.3 Linux: 6.12.57 linux-firmware: 20251021Talos is built with Go 1.24.9.Release notes →
Component Updates
runc: 1.3.2 Kubernetes: 1.34.1 Linux: 6.12.52 linux-firmware: 20251011 CoreDNS: 1.12.4 etcd: 3.6.5 Flannel: 0.27.4Talos is built with Go 1.24.9.Release notes →
Component Updates
runc: 1.3.1 Kubernetes: 1.34.1 Linux: 6.12.48 linux-firmware: 20250917Talos is built with Go 1.24.6.Release notes →
Azure
Talos on Azure now defaults to MTU of 1400 bytes for theeth0 interface to avoid packet fragmentation issues.
The default MTU can be overriden via machine configuration.Boot
Talos boot partition size increased to 2 GiB to accommodate large images (with many system extensions included).Kernel Command Line
Talos now exposes the kernel command line as a KernelCmdline resource (talosctl get cmdline).Disk Encryption
Disk encryption for system volumes is now managed by theVolumeConfig machine configuration document.
Legacy configuration in valpha1 machine configuration is still supported.New per-key option lockToSTATE is added to the VolumeConfig document, which allows to lock the volume encryption key to the secret salt in the STATE volume.
So, if the STATE volume is wiped or replaced, the volume encryption key will not be usable anymore.Disk Wipe
Talos now supportstalosctl disk wipe command in maintenance mode (talosctl disk wipe <disk> --insecure).Early Inline Configuration
Talos now supports passing early inline configuration via thetalos.config.early kernel parameter.
This allows to pass the configuration before the platform config source is probed, which is useful for early boot configuration.
The value of this parameter has the same format as the talos.config.inline parameter, i.e. it should be base64 encoded and zstd-compressed.ETCD downgrade API
Added ETCD downgrade API mimicking the ETCD API and etcdctl interfaces. This API allows to downgrade ETCD cluster (storage format) to a previous version.IMA support removed
Talos now drops the IMA (Integrity Measurement Architecture) support. This feature was not used in Talos for any meaningful security purpose and has historically caused performance issues. See #11133 for more details.Kubernetes Version Validation
Talos now validates the Kubernetes version in the image specified in the machine configuration. Previously this check was performed only on upgrade, but now it is consistently applied to upgrade, initial provisioning, and machine configuration updates.This implies that all image references should contain the tag, even if the image is pinned by digest.Qemu provisioner on MacOS
On MacOStalosctl cluster create command now supports the Qemu provisioner in addition to the Docker provisioner.Kernel Modules
Talosctl now returns the loaded modules, not the modules configured to be loaded (talosctl get modules).SBOM
Talos now publishes Software Bill of Materials (SBOM) in the SPDX format.Swap Suport
Talos now supports swap on block devices. This feature can be enable by using SwapVolumeConfig document in the machine configuration.Component Updates
Linux: 6.12.43 Kubernetes: 1.34.0 runc: 1.3.0 etcd: 3.6.4 containerd: 2.1.4 Flannel CNI plugin: 1.7.1-flannel1 Flannel: 0.27.2 CoreDNS: 1.12.2 xfsprogs: 6.15.0 systemd-udevd and systemd-boot: 257.7 lvm2: 2.03.33 cryptsetup: 2.8.0Talos is built with Go 1.24.6.VMware
Talos VMWare platform now supportsarm64 architecture in addition to amd64.Volumes
Talos now supports raw user volumes, allowing to allocate unformatted disk space as partition. In addition to that, support for existing volumes has been added, allowing to mount existing partitions without formatting them.Zswap Support
Talos now supports zswap, a compressed cache for swap pages. This feature can be enabled by using ZswapConfig document in the machine configuration.Release notes →
etcd Zombine Members
See this blog post for more details.This release includes an update to etcd v3.5.26 to ensure that upgrades to Talos v1.11 and later (which default to etcd v3.6) will not be blocked by the presence of zombine members in the etcd cluster.Please note that etcd version can also be configured via the machine configuration with any version of Talos Linux.Component Updates
Linux: 6.12.63 runc: 1.2.9 etcd: 3.5.26Talos is built with Go 1.24.11.Release notes →
Component Updates
Linux: 6.12.58 Kubernetes: 1.33.6 Runc: v1.2.8 Containerd: v2.0.7Talos is built with Go 1.24.10.Release notes →
Azure
Talos on Azure now defaults to MTU of 1400 bytes for theeth0 interface to avoid packet fragmentation issues.
The default MTU can be overriden with machine configuration.Component Updates
Linux: 6.12.35 Kubernetes: 1.33.2Talos is built with Go 1.24.4.Release notes →Usage of
auditd
Kernel parametertalos.auditd.disabled=1 can be used to disable Talos built-in auditd service.cgroups v1
Talos Linux no longer supportscgroupsv1 when running in non-container mode.
The kernel argument talos.unified_cgroup_hierarchy is now ignored.Disk Image
Talos starting with 1.10 will have disk images that will use GRUB only for legacy BIOS and systemd-boot for modern UEFI systems. On first boot Talos determines the boot method and will wipe the unused bootloader.Secureboot disk-images will be sd-boot only.For ARM64 imager will still generate GRUB bootloader for Talos < 1.10 and for Talos >= 1.10 all ARM64 boot assets will use systemd-boot.Imager supports overwriting bootloader when generating a disk image via the Imager profileoutput option.Eg:Driver Rebind
Talos 1.10 now supports a new machine config document namedPCIDriverRebindConfig that allows rebinding the driver of a PCI device to a different target driver.
See the documentation for more information.Ethernet
Talos now providesethtool-style Ethernet low-level configuration via network/EthernetConfig documents.
Current status of the interface can be read by talosctl get ethernetstatus.Machine Install Extensions
.machine.install.extensions will have no effect starting from Talos 1.10, the machine config document field is still kept so upgrades from older versions are possible.
Use Boot Assets instead.Extra Kernel Args
Talos 1.10 on fresh install on UEFI systems will now use systemd-boot and UKIs (Unified Kernel Images)[https://uapi-group.org/specifications/specs/unified_kernel_image/]. This means the kernel command line arguments are part of the UKI and cannot be modified without an upgrade to a new UKI.Upgrades to Talos 1.10 will preseve the existing bootloader (GRUB for non-secureboot) and sd-boot for Secureboot and this change will have no effect.To build a boot asset with extra kernel arguments whether aninstaller or a boot image use either Image Factory or
Imager.This means kernel arguments not part of the UKI will not be preserved across updates and a proper installer image generated via Imager Factory or Imager is required.Ingress Firewall
Talos Ingress Firewall now filters access to Kubernetes NodePort services correctly.iSCSI Initiator
Talos now generates/etc/iscsi/initiatorname.iscsi file based on the node identity which is tied to the lifecycle of the node.
If using iscsi-tools extension, starting with Talos 1.10 would have a more deterministic IQN for the initiator node.
Make sure to update any iSCSI targets to use the new initiator IQN.The iqn can be read by talosctl read /etc/iscsi/initiatorname.iscsiISO
Talos starting with 1.10 will have ISO’s that will use GRUB only for legacy BIOS and systemd-boot for modern UEFI systems.kube-apiserver Authorization Config
When using.cluster.apiServer.authorizationConfig the user provided order for the authorizers is honoured and Node and RBAC authorizers are always added to the end if not explicitly specified.Eg: If user provides only Webhook authorizer, the final order will be Webhook, Node, RBAC.To provide a specific order for Node or RBAC explicitly, user can provide the authorizer in the order they want.Eg:authorization-mode CLI argument will not support this form of customization.NVMe NQN
Talos now generates/etc/nvme/hostnqn and /etc/nvme/hostid files based on the node identity which is tied to the lifecycle of the node.The NQN can be read by talosctl read /etc/nvme/hostnqnSELinux
Talos now supports enabling SELinux enforcing mode, see SELinux for more details.Fully bootstrapped builds
Talos 1.10 is built with a toolchain based on [Stageˣ], which is a project building fully bootstrapped software. This change increases reproducibility, auditability and security of Talos builds.This also changes Talos root filesystem structure for unified /usr, with other directories symlinking to /usr/bin and /usr/lib. System extensions must move their directories accordingly for 1.10.Component Updates
- Linux: 6.12.25
- CNI plugins: 1.6.2
- runc: 1.2.6
- containerd: 2.0.5
- etcd: 3.5.20
- Flannel: 0.26.7
- Kubernetes: 1.33.0
- CoreDNS: 1.12.1
User Volumes
Talos now supports user disk volumes via theUserVolumeConfig machine config document.The old .machine.disks field is deprecated, but still supported for backwards compatibility.Release notes →
Component Updates
- Linux: 6.12.25
- containerd: 2.0.5
- runc: 1.2.6
- Kubernetes: 1.32.4
- etcd: 3.5.21
Release notes →
Component Updates
- Linux: 6.12.18
- containerd: 2.0.3
- runc: 1.2.5
- Kubernetes: 1.32.3
- etcd: 3.5.19
Release notes →
Ingress Firewall
Talos Ingress Firewall now filters access to Kubernetes NodePort services correctly.Component Updates
- Linux: 6.12.13
- Flannel: 0.26.4
- Kubernetes: 1.32.2
Release notes →
Component Updates
- Linux: 6.12.11
- Kubernetes: 1.32.1
- etcd: 3.5.18
Release notes →Usage of
auditd
Kernel parametertalos.auditd.disabled=1 can be used to disable Talos built-in auditd service.kube-apiserver Authorization Config
When using.cluster.apiServer.authorizationConfig the user provided order for the authorizers is honoured and Node and RBAC authorizers are always added to the end if not explicitly specified.Eg: If user provides only Webhook authorizer, the final order will be Webhook, Node, RBAC.To provide a specific order for Node or RBAC explicitly, user can provide the authorizer in the order they want.Eg:authorization-mode CLI argument will not support this form of customization.Component Updates
- Linux: 6.12.9
- runc: 1.2.4
- containerd: 2.0.2
Release notes →
The For the pods it will look something like this:For new cluster if the Kubernetes API server supports the
Auditd
Talos Linux now starts an auditd service by default. Logs can be read withtalosctl logs auditd.talosctl cgroups
The talosctl cgroups command has been added to the talosctl tool.
This command allows you to view the cgroup resource consumption and limits for a machine, e.g.
talosctl cgroups --preset memory.cgroups version 1
Support for cgroupsv1 is deprecated, and will be removed in Talos 1.10 (for non-container mode).Custom search domains for Talos nodes
Talos now allows to supports specifying custom search domains for Talos nodes using new config fieldmachine.network.searchDomainsFor the host it will look something like this:Device Selectors
Talos now supports matching on permanent hardware (MAC) address of the network interfaces. This is specifically useful to match bond members, as they change their hardware addresses when they become part of the bond.Direct Rendering Manager (DRM)
Starting with Talos 1.9, thei915 and amdgpu DRM drivers will be dropped from the Talos squashfs.
There will be new system extensions named i915 and amdgpu that would contain both the drivers and firmware packaged together.
Upgrades via Image Factory will automatically include the new extensions if previously i915-ucode or amdgpu-firmware were used.Image Cache
Talos now supports providing a local Image Cache for container images.Kube APIServer Authorization Config
Starting with Talos 1.9,.cluster.apiServer.authorizationConfig field supports setting Kubernetes API server authorization modes
using the --authorization-config flag.The machine config field supports a list of authorizers. For instance:--authorization-config flag, it’ll be used by default instead of the --authorization-mode flag.
By default Talos will always add the Node and RBAC authorizers to the list.When upgrading if either a user-provided authorization-mode or authorization-webhook-* flag is set via .cluster.apiServer.extraArgs, it’ll be used instead of the new AuthorizationConfig.Current authorization config can be viewed by running: talosctl get authorizationconfigs.kubernetes.talos.dev -o yamlNode Address Sort
Talos supports new experimental address sort algorithm forNodeAddress which are used to pick up default addresses for kubelet, etcd, etc.It can be enabled with the following config patch:OCI Base Runtime Spec
Talos now allows to modify the OCI base runtime spec for the container runtime.Registry Mirrors
In versions before Talos 1.9, there was a discrepancy between the way Talos itself and CRI plugin resolves registry mirrors: Talos will never fall back to the default registry if endpoints are configured, while CRI plugin will.Note: Talos Linux pulls images for theIn Talos 1.9 this was fixed, so that by default an upstream registry is used as a fallback in all cases, while new registry mirror configuration optioninstaller,kubelet,etcd, while all workload images are pulled by the CRI plugin.
.skipFallback can be used to disable this behavior both for Talos and CRI plugin.talosctl disks
The commandtalosctl disks was removed, please use talosctl get disks, talosctl get systemdisk, and talosctl get blockdevices instead.talosctl wipe
The new commandtalosctl wipe disk allows to wipe a disk or a partition which is not used as a volume.udevd
Talos previously usedeudev to provide udevd, now it uses systemd-udevd instead.Component Updates
- Linux: 6.12.5
- containerd: 2.0.1
- Flannel: 0.26.1
- Kubernetes: 1.32.0
- runc: 1.2.3
- CoreDNS: 1.12.0
User Namespaces
Talos Linux now supports running Kubernetes pods with user namespaces enabled. Refer to the documentation for more information.Release notes →Starting with Talos v1.8.0, only standard assets would be published as github release assets. These include:
cloud-images.jsontalosctlbinarieskernelinitramfsmetaliso and disk imagestalosctl-cni-bundle
Component Updates
Linux: 6.6.64 runc: 1.2.3 Kubernetes: 1.31.4 etcd: 3.5.17Talos is built with Go 1.22.10.Release notes →Starting with Talos v1.8.0, only standard assets would be published as github release assets. These include:
cloud-images.jsontalosctlbinarieskernelinitramfsmetaliso and disk imagestalosctl-cni-bundle
Component Updates
Linux: 6.6.60 containerd: 2.0.0 runc: 1.2.1Talos is built with Go 1.22.9.Release notes →Starting with Talos v1.8.0, only standard assets would be published as github release assets. These include:
cloud-images.jsontalosctlbinarieskernelinitramfsmetaliso and disk imagestalosctl-cni-bundle
Component Updates
Linux: 6.6.58 containerd: 2.0.0-rc.6 runc: 1.2.0 Kubernetes: 1.31.2Talos is built with Go 1.22.8.Release notes →Starting with Talos v1.8.0, only standard assets would be published as github release assets. These include:
cloud-images.jsontalosctlbinarieskernelinitramfsmetaliso and disk imagestalosctl-cni-bundle
Component Updates
Linux: 6.6.54 containerd: 2.0.0-rc.5 Flannel: 0.25.7Talos is built with Go 1.22.8.Release notes →Starting with Talos v1.8.0, only standard assets would be published as github release assets. These include:Accessing
Talos Linux ships with Please note that on running cluster you will have to kill CoreDNS pods for this change to apply.The IP address used to forward DNS queries has changed to the fixed
Starting with Talos 1.8, ISO’s generated from Boot Assets would have a new kernel argument Removing parts of the configuration using
Talos Linux now supports removing parts of the configuration using the
cloud-images.jsontalosctlbinarieskernelinitramfsmetaliso and disk imagestalosctl-cni-bundle
Node Annotations
Talos Linux now supports configuring Kubernetes node annotations via machine configuration (.machine.nodeAnnotations) in a way similar to node labels.Workload Apparmor Profile
Talos Linux can now apply the default AppArmor profiles to all workloads started via containerd, if the machine is installed with the AppArmor LSM enforced via the extraKernelArgs.Eg:Bridge Interface
Talos Linux now support configuring ‘vlan_filtering’ for bridge interfaces.Machine Configuration via Kernel Command Line
Talos Linux supports supplying zstd-compressed, base64-encoded machine configuration small documents via the kernel command line parametertalos.config.inline.CNI Plugins
Talos Linux now bundles by default the following standard CNI plugins:bridgefirewallflannelhost-localloopbackportmap
install-cni step.Accessing /dev/net/tun in Kubernetes Pods
Talos Linux ships with runc 1.2, which drops legacy rule to expose /dev/net/tun devices by default in the container.If you need to access /dev/net/tun in your Kubernetes pods (e.g. running Tailscale as a Kubernetes pod), you can add use device plugins to expose /dev/net/tun to the pod.Diagnostics
Talos Linux now shows diagnostics information for common problems related to misconfiguration viatalosctl health and Talos dashboard.Disk Management
Talos Linux now supports configuration for theEPHEMERAL volume.Extensions in Kubernetes Nodes
Talos Linux now publishes list of installed extensions as Kubernetes node labels/annotations.The key format isextensions.talos.dev/<name> and the value is the extension version.
If the extension name is not valid as a label key, it will be skipped.
If the extension version is a valid label value, it will be put to the label; otherwise it will be put to the annotation.For Talos machines booted of the Image Factory artifacts, this means that the schematic ID will be published as the annotation
extensions.talos.dev/schematic (as it is longer than 63 characters).DNS Forwarding for CoreDNS pods
Usage of the host DNS resolver as upstream for Kubernetes CoreDNS pods is now enabled by default. You can disable it with:169.254.116.108 address.
For those upgrading from Talos 1.7 with forwardKubeDNSToHost enabled, the old Kubernetes service
can be cleaned up with kubectl delete -n kube-system service host-dns.Installer
Talos Linux installer now never wipes the system disk on upgrades, which means that the flag--preserve is always set for talosctl upgrade.talos.halt_if_installed kernel argument
Starting with Talos 1.8, ISO’s generated from Boot Assets would have a new kernel argument talos.halt_if_installed which would pause the boot sequence until boot timeout if Talos is already installed on the disk.
ISO generated for pre 1.8 versions would not have this kernel argument.This can be also explicitly enabled by setting talos.halt_if_installed=1 in kernel argument.Slim Kubelet Image
Kubelet container image includes various utilities that kubelet might use to perform various tasks.Starting with Kubernetes 1.31.0,kubelet image now includes less utilities, as the in-tree CSI plugins were
removed in Kubernetes 1.31.0. This reduces kubelet image size and potential attack surface.For Kubernetes < 1.31.0, there will be two images built:v1.x.y(default, fat)v1.x.y-slim(slim)
v1.x.y(default, slim)v1.x.y-fat(fat)
KubeSpan
Extra announced endpoints can be added using theKubespanEndpointsConfig document.Default Node Labels
Talos Linux on config generation now adds a labelnode.kubernetes.io/exclude-from-external-load-balancers by default for the control plane nodes.PCI Devices
A list of PCI devices can now be obtained viaPCIDevices resource, e.g. talosctl get pcidevices.Metal images
Starting with Talos 1.8,console=ttyS0 kernel argument is removed from the metal images and installer. If running virtualized in QEMU (For eg: Proxmox), this can be added as an extra kernel argument if needed via Image Factory or using Imager.This should fix slow boot or no console output issues on most bare metal hardware.NVIDIA GPU Support
Starting with Talos 1.8.0, SideroLabs would ships extensions for both LTS and Production versions of NVIDIA extensions. For more details see the CHANGELOG of extensions.Upgrades with an exisiting schematic id from Image Factory would keep the existing LTS version of the NVIDIA extension.Removing parts of the configuration using $patch: delete syntax
Talos Linux now supports removing parts of the configuration using the $patch: delete syntax similar to the kubernetes.
More information can be found here.Platform Support
Talos Linux now supports Apache CloudStack platform.kube-proxy
Talos Linux configures kube-proxy >= v1.31.0 to use ‘nftables’ backend by default.Secure Boot
Talos Linux now can optionally include well-known UEFI (Microsoft) SecureBoot keys into the auto-enrollment UEFI database.Custom Trusted Roots
Talos Linux now supports adding custom trusted roots (CA certificates) viaTrustedRootsConfig configuration documents.Device Extra Settle Timeout
Talos Linux now supports a kernel command line argumenttalos.device.settle_time=3m to set the device extra settle timeout to workaround issues with broken drivers.Component Updates
Kubernetes: 1.31.1 Linux: 6.6.52 containerd: 2.0.0-rc.4 runc: 1.2.0-rc.3 etcd: 3.5.16 Flannel: 0.25.6 Flannel CNI plugin: 1.5.1 CoreDNS: 1.1.13Talos is built with Go 1.22.7.ZSTD Compression
Talos Linux now compresses kernel and initramfs using ZSTD. Linux arm64 kernel is now compressed (previously it was uncompressed).Release notes →
Component Updates
Linux: 6.6.52 Kubernetes: 1.30.5 containerd: 1.7.22 runc: 1.1.14Talos is built with Go 1.22.7.Release notes →
Component Updates
Linux: 6.6.33 Flannel: 0.25.3 Containerd: 1.7.18Talos is built with Go 1.22.4.Release notes →Or if using
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
A EULA agreement has been added to Omni which must be accepted in order to continue using it.This agreement can be accepted through UI or programmatically either by adding the below flags:--config-path with the below configuration:Release notes →Documentation on What’s New in Talos 1.7.0You can also enable dns caching for k8s pods with:Please note that on running cluster you will have to kill CoreDNS pods for this change to apply.If you want to can also enable the resolving of member addresses through their host and node names:For documentation, see Extension Services Config Files.Note: The use of
CA Rotation
Talos Linux now supports rotating the root CA certificate and key for Talos API and Kubernetes API.Device Selectors
Talos Linux now supportsphysical: true qualifier for device selectors, it selects non-virtual network interfaces (i.e. en0 is selected, while bond0 is not).DNS Caching
Talos Linux now provides a caching DNS resolver for host workloads (including host networking pods). It can be disabled with:Extension Services Config
Talos now supports supplying configuration files and environment variables for extension services. The extension service configuration is a separate config document. An example is shown below:environmentFile in extension service spec is now deprecated and will be removed in a future release of Talos.
Use ExtensionServiceConfig instead.IPTables
Talos Linux now forceskubelet and kube-proxy to use iptables-nft instead of iptables-legacy (xtables) which was the default
before Talos 1.7.0.Container images based on iptables-wrapper should work without changes, but if there was a direct call to legacy mode of iptables, make sure
to update to use iptables-nft.Kubernetes Upgrade
The commandtalosctl upgrade-k8s now supports specifying custom image references for Kubernetes components via --*-image flags.
The default behavior is unchanged, and the flags are optional.KubeSpan
Talos Linux disables by default a KubeSpan feature to harvest additional endpoints from KubeSpan members. This feature turned out to be less helpful than expected and caused unnecessary performance issues.Previous behavior can be restored with:Logging
Talos Linux now supports setting extra tags when sending logs in JSON format:Time Sync
Default NTP server was updated to betime.cloudflare.com instead of pool.ntp.org.
Default server is only used if the user does not specify any NTP servers in the configuration.Talos Linux can now sync to PTP devices (e.g. provided by the hypervisor) skipping the network time servers.
In order to activate PTP sync, set machine.time.servers to the PTP device name (e.g. /dev/ptp0):OpenNebula
Talos Linux now supports OpenNebula platform.Platforms
Talos Linux now supports Akamai Connected Cloud provider (platformakamai).Kubernetes API Server Service Account Key
Talos Linux starting from this release uses RSA key for Kubernetes API Server Service Account instead of ECDSA key to provide better compatibility with external OpenID Connect implementations.SBC
Talos has split the SBC’s (Single Board Computers) into separate repositories. There will not be any more SBC specific release assets as part of Talos release.The default Talos Installer image will stop working for SBC’s and will fail the upgrade, if used, starting from Talos v1.7.0.The SBC’s images and installers can be generated on the fly using Image Factory or using Imager for custom images. The list of official SBC’s images supported by Image Factory can be found in the Overlays repository.Secure Boot Image
Talos Linux now provides a way to configure systemd-boot ISO ‘secure-boot-enroll’ option while generating a SecureBoot ISO image:Syslog
Talos Linux now starts a basic syslog receiver listening on/dev/log.
The receiver can mostly parse both RFC3164 and RFC5424 messages and writes them as JSON formatted message.
The logs can be viewed via talosctl logs syslogd.This is mostly implemented for extension services that log to syslog.Component Updates
Linux: 6.6.28 etcd: 3.5.11 Kubernetes: 1.30.0 containerd: 1.7.15 runc: 1.1.12 Flannel: 0.25.1Talos is built with Go 1.22.2.Hardware Watchdog Timers
Talos Linux now supports hardware watchdog timers configuration. If enabled, and the machine becomes unresponsive, the hardware watchdog will reset the machine.The watchdog can be enabled with the following configuration document:Release notes →Or if using
A new Allow Using
Update Omni Talos API proxy code to elevate permissions for
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
A EULA agreement has been added to Omni which must be accepted in order to continue using it.This agreement can be accepted through UI or programmatically either by adding the below flags:--config-path with the below configuration:Allow Machine Request Destroy
Machine requests are now created without a controller owner, allowing operators and admins to teardown stuck or unwanted requests directly. The controller replaces destroyed requests automatically to maintain the desired machine count.Browsable Audit Logs in the UI
Audit logs are now browsable directly in the Omni UI, making it easier to review audit events without CLI access.Human-Readable Config Validation Errors
Configuration validation errors are now presented in a human-readable format, making it easier to diagnose and fix configuration issues.Move Omni Defaults to JSONSchema
Omni default config values are now defined in the JSONSchema.Direct Talos Node Access via SideroLink
All Talos nodes can now be accessed directly via their SideroLink endpoint, removing the need to route through the load balancer for Talos API calls. Allowing direct access to worker nodes when control plane nodes are unavailable.Kubernetes Manifests Sync
Omni now supports syncing Kubernetes manifests directly to managed clusters. Manifests can be defined in cluster templates, allowing declarative management of Kubernetes resources alongside cluster configuration.omnictl edit Command
A new omnictl edit command has been added, allowing users to edit Omni resources interactively from the CLI.Allow Using talosctl debug
Update Omni Talos API proxy code to elevate permissions for talosctl debug command.Workload Proxy Subdomain Options
The workload proxy now supports an empty subdomain configuration and a newuseOmniSubdomain option, providing more flexibility in how workload proxy URLs are structured.Release notes →
Component Updates
- Linux: 6.1.100
- Kubernetes: 1.29.7
- runc: 1.1.13
- containerd: 1.7.20
Release notes →
Kubernetes Upgrade
The commandtalosctl upgrade-k8s now supports specifying custom image references for Kubernetes components via --*-image flags.
The default behavior is unchanged, and the flags are optional.Component Updates
Kubernetes: 1.29.2 Linux: 6.1.78Talos is built with Go 1.21.6.Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
The deprecated flags and config fields that were kept for the SQLite migration period (introduced in v1.4.0) have been removed.If you still have any of the following flags or config keys set, you must remove them before upgrading, as they will cause startup errors:--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--log-storage-path(.logs.machine.storage.path)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
The deprecated flags and config fields that were kept for the SQLite migration period (introduced in v1.4.0) have been removed.If you still have any of the following flags or config keys set, you must remove them before upgrading, as they will cause startup errors:--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--log-storage-path(.logs.machine.storage.path)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
Release notes →
Component Updates
containerd: 1.7.13 runc: 1.1.12See CVE-2024-21626 for the runc update.Talos is built with Go 1.21.6.Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
The deprecated flags and config fields that were kept for the SQLite migration period (introduced in v1.4.0) have been removed.If you still have any of the following flags or config keys set, you must remove them before upgrading, as they will cause startup errors:--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--log-storage-path(.logs.machine.storage.path)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
The deprecated flags and config fields that were kept for the SQLite migration period (introduced in v1.4.0) have been removed.If you still have any of the following flags or config keys set, you must remove them before upgrading, as they will cause startup errors:--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--log-storage-path(.logs.machine.storage.path)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
The deprecated flags and config fields that were kept for the SQLite migration period (introduced in v1.4.0) have been removed.If you still have any of the following flags or config keys set, you must remove them before upgrading, as they will cause startup errors:--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--log-storage-path(.logs.machine.storage.path)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
Release notes →
OAuth2 Machine Config Flow
Talos Linux when running on themetal platform can be configured to authenticate the machine configuration download using OAuth2 device flow.Network Device Selectors
Previously, network device selectors only matched the first link, now the configuration is applied to all matching links.Extension Services
Talos now starts Extension Services early in the boot process, this allows guest agents to be started in maintenance mode.Linux Firmware
Starting with Talos 1.6, there is no Linux firmware included in the initramfs. Customers who need Linux firmware can pull them as extension during install time using the image factory service. If the initial boot requires firmware, a custom iso can be built with the firmware included using the image factory service. This also ensures that the linux-firmware is not tied to a specific Talos version.Flannel Configuration
Talos Linux now supports customizing default Flannel manifest with extra arguments for flanneld.Ingress Firewall
Talos Linux now supports configuring the ingress firewall rules.Kernel Arguments
Talos and Imager now supports dropping kernel arguments specified in.machine.install.extraKernelArgs or as --extra-kernel-arg to imager.
Any kernel argument that starts with a - is dropped. Kernel arguments to be dropped can be specified either as -<key> which would remove all arguments that start with <key> or as -<key>=<value> which would remove the exact argument.Kube-Scheduler Configuration
Talos now supports specifying the kube-scheduler configuration in the Talos configuration file. It can be set undercluster.scheduler.config and kube-scheduler will be automatically configured to with the correct flags.Kubelet Credential Provider Configuration
Talos now supports specifying the kubelet credential provider configuration in the Talos configuration file. It can be set undermachine.kubelet.credentialProviderConfig and kubelet will be automatically configured to with the correct flags.
The credential binaries are expected to be present under /usr/local/lib/kubelet/credentialproviders.
Talos System Extensions can be used to install the credential binaries.KubePrism
KubePrism is enabled by default on port 7445.Sysctl
Talos now handles sysctl/sysfs key names in line with sysctl.conf(5):- if the first separator is ’/’, no conversion is done
- if the first separator is ’.’, dots and slashes are remapped
talosctl CLI
The commandimages deprecated in Talos 1.5 was removed, please use talosctl images default instead.Component Updates
Linux: 6.1.67 containerd: 1.7.10 CoreDNS: 1.11.1 Kubernetes: 1.29.0 Flannel: 0.23.0 etcd: 3.5.11 runc: 1.1.10Talos is built with Go 1.21.5.User Disks
Talos Linux now supports specifying user disks in.machine.disks machine configuration links via udev symlinks, e.g. /dev/disk/by-id/XXXX.Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
The deprecated flags and config fields that were kept for the SQLite migration period (introduced in v1.4.0) have been removed.If you still have any of the following flags or config keys set, you must remove them before upgrading, as they will cause startup errors:--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--log-storage-path(.logs.machine.storage.path)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
Talos and Kubernetes CA Rotation
Omni now supports rotating the Talos and Kubernetes Certificate Authorities for managed clusters.Talos and Kubernetes Versions in ClusterStatus
TheClusterStatus resource now includes talos_version and kubernetes_version fields, making cluster version information available programmatically. They are now also shown in the cluster list in the UI.Pending and Historical Config Diffs in UI
The UI now shows pending and historical configuration diffs, making it easy to review what changed and when.Force Machine Destroy
A--force flag has been added to the machine destroy command (and a corresponding UI option) to forcibly remove machines that are stuck or unresponsive.Helm Chart v2
A new Helm chart v2 has been implemented with improved structure and more configurable options. More configuration values are now exposed in the Helm chart, giving operators greater flexibility when deploying Omni.Installation Media Wizard
The installation media flow now uses a wizard-based UI by default, replacing the previous modal dialog. Presets may now also be saved, allowing for future reuse.Machine Log Storage Cleanup
Global size-based cleanup has been added for machine log storage, preventing unbounded disk usage. Configurable options for audit log cleanup have also been added.Minimum Talos Version Bump
The minimum supported Talos version for new clusters has been bumped to 1.8.Minor UI Improvements
Other minor UI improvements part of this release:- Talos and Kubernetes versions are now shown in the cluster list.
- Node name and UUID are shown in the support bundle modal.
- Machine set pools now have a collapse/expand toggle.
- Cluster scaling has been moved to a modal dialog.
- Getting started guidance and empty-state pages have been added for clusters, machines, and machine classes.
- Instructions for adding machines and exporting cluster templates are now shown in the UI.
- Clarification text has been added to backup settings.
- YouTube video embedding is now supported in documentation/onboarding flows.
- The frontend authentication flow no longer requires an explicit login click.
- Resource labels use new colors for improved visual clarity.
Detailed Node Disk Information
The node details page now shows detailed disk information, including disk model, size, and type.PCI Devices on Node Details
The node details page now includes a dedicated section listing all PCI devices present on the node.Reset Node Unique Tokens
It is now possible to reset the unique token for a node, which can be useful for re-enrolling machines.OIDC Token Cache Isolation for Kubeconfigs
Generated kubeconfigs now use isolated OIDC token caches, preventing token collisions between different kubeconfig users.Pending Machines
Machines that were previously rejected can now be unrejected from the UI, allowing them to be accepted into Omni.Rejected machines can also now be deleted directly from the UI.SAML Logout Flow
Omni now implements the SAML logout flow, properly terminating sessions with the SAML identity provider on sign-out.SQLite Metrics and Cleanup Counters
Metrics for the SQLite state backend have been exposed, along with cleanup counters for better observability.Upgrade Parallelism
The upgrade parallelism for machine sets can now be configured via cluster templates and the UI, allowing operators to control how many machines are upgraded concurrently.User and Service Account Activity Tracking
Omni now tracks the last activity time for users and service accounts, providing better visibility into account usage.User Management gRPC Endpoints
NewManagementService gRPC endpoints have been added for user operations, enabling programmatic user management.Configurable User and Service Account Limits
Operators can now enforce configurable limits on the number of users and service accounts that can be created in Omni.Custom Vault Kubernetes Auth Mount Path
The Vault Kubernetes authentication mount path is now configurable, supporting non-default Vault configurations.Release notes →
The
Better Audit Logging
Omni now collects audit logs for operations performed on all user-managed resources, improving security and traceability.Config Generation
Omni can now generate its own configuration directly from the defined schema. The config merge algorithms were also improved: now the config preserves the default values properly when some sections are overwritten by the user provided config.Etcd Maintenance
The following etcd commands are now usable with Omni managed clusters:talosctl etcd downgrade validate
talosctl etcd downgrade enable
talosctl etcd downgrade cancel
talosctl etcd forfeit leadershipgRPC Tunnel Management
Added the ability to switch gRPC tunnel modes for connected machines.Join Token Management
Added a dedicatedomnictl jointoken omni-endpoint to streamline node registration.Kernel Args CLI Tools
Added support for managing kernel arguments directly within cluster templates.Schema-Aware Code Editor
The built-in code editor for the machine configs now supports different configuration schemas for each Talos version. So the config will be always validated against the currently running Talos version schema.omnictl Directory Support
The omnictl sync/apply can now process directories, simplifying bulk resource applications.WireGuard Bind Address
The WireGuard endpoint (services.siderolink.wireGuard.endpoint / --siderolink-wireguard-bind-addr) is now respected. Previously, Omni always bound to all interfaces regardless of this setting. Default remains 0.0.0.0:50180.Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it.
It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Release notes →
Urgent Upgrade Notes (No, really, you MUST read this before you upgrade)
This release consolidates Discovery service state, Audit logs, Machine logs, and Secondary resources into a single SQLite storage backend.1. New Required Flag You must set the new--sqlite-storage-path (or .storage.sqlite.path) flag. There is no default value, and Omni will not start without it. It must be a path to the SQLite file (will be created by Omni), not a directory, e.g., --sqlite-storage-path=/path/to/omni-sqlite.db.2. Audit Logging Changes
A new flag --audit-log-enabled (or .logs.audit.enabled) has been introduced to explicitly enable or disable audit logging.- Default:
true. - Change: Previously, audit logging was implicitly enabled only when the path was set. Now, it is enabled by default.
--audit-log-dir(.logs.audit.path)--secondary-storage-path(.storage.secondary.path)--machine-log-storage-path(.logs.machine.storage.path)--machine-log-storage-enabled(.logs.machine.storage.enabled)--embedded-discovery-service-snapshot-path(.services.embeddedDiscoveryService.snapshotsPath)--machine-log-buffer-capacity(.logs.machine.bufferInitialCapacity)--machine-log-buffer-max-capacity(.logs.machine.bufferMaxCapacity)--machine-log-buffer-safe-gap(.logs.machine.bufferSafetyGap)--machine-log-num-compressed-chunks(.logs.machine.storage.numCompressedChunks)
--machine-log-storage-flush-period(.logs.machine.storage.flushPeriod)--machine-log-storage-flush-jitter(.logs.machine.storage.flushJitter)
Support for OIDC Providers without Email Verified Claim
Enabled support for OIDC providers, such as Azure, that do not provide theemail_verified claim during authentication.Dynamic SAML Label Role Updates
Added support for dynamically updating SAML label roles on every login via the newupdate_on_each_login field.Machine Class Logic Updates
Added support for locks, node deletion, and restore operations when using machine classes.Virtual Resources for Platform Information
Platform and SBC information is now pulled from Talos machinery and presented as virtual resources:MetalPlatformConfig, CloudPlatformConfig, and SBCConfig. They support Get and List operations.Automated CLI Install Options
Automated installation options have been added to the CLI section of the homepage, supplementing the existing manual options.OIDC Warning for Kubeconfig Download
A warning toast is now displayed when downloading kubeconfig to inform users that the OIDC plugin is required before using the file with kubectl.UI/UX Improvements
Various UI improvements including pre-selecting the correct binary for the user’s platform, truncating long items in the ongoing tasks list, hiding JSON schema descriptions behind tooltips, and standardizing link styling.Force Deletion of Infra Provider Resources
Added the ability to force-deleteMachineRequests and InfraMachines managed by Infra providers.
This allows for the cleanup of resources and finalizers even if the underlying provider is unresponsive or deleted.Prevent Talos Minor Version Downgrades
Omni now prevents downgrading the Talos minor version below the initial version used to create the cluster. This safeguard prevents machine configurations from entering a broken state due to unsupported features in older versions.Release notes →
Shortened Auth0 Token Lifetime
Auth0 authentication tokens now expire after 2 minutes. Users without valid PGP keys will need to reauthenticate once tokens expire.Cluster Import (Experimental)
Omni introduces an experimental feature that allows users to import existing Talos clusters to be managed by Omni.Documentation on how to use this feature can be found here: https://docs.siderolabs.com/omni/cluster-management/importing-talos-clustersMulti-Select for Pending Machines
You can now accept or reject multiple pending machines at once, simplifying large-scale approvals.Stripe Link in Settings Sidebar
A Stripe link is now shown in the Omni settings sidebar when Stripe integration is enabled.Display Unsupported Kubernetes Versions
Unsupported Kubernetes versions are now shown in the update modal as disabled entries with explanatory messages.Improved Kubernetes Update Modal
The Kubernetes update modal now displays only upgradeable minor versions and explains why certain versions are not upgradeable.Enhanced CPU Information in Machine Status
Machines now report processor details when either core count or frequency is available, improving visibility into hardware specs.Support for Modifying Kernel Arguments
Omni now supports modifying kernel arguments for the existing machines.Documentation on how to use this feature can be found here: https://docs.siderolabs.com/omni/infrastructure-and-extensions/modify-kernel-argumentsRelease notes →
New configs generated with the latest Omni version and
Cluster Locking
Cluster locking is a feature that pauses/disables all cluster related operations on a cluster.Visual Feedback on Copy
Added visual feedback when copying text to the clipboard.Generate Join Config for a Specific Join Token
Added the ability to generate a join configuration for a specific join token.kubeconfig with grant-type=authcode-keyboard
New configs generated with the latest Omni version and authcode-keyboard
enabled now work for oidc-login v1.33+.
See https://github.com/int128/kubelogin/pull/1263Newly generated configs won’t work for oidc-login below v1.33. You can:- keep using the old configs.
- generate the new configs and drop
oidc-redirect-urlparam. - update the
oidc-loginmodule.
Redesigned Machine List Page
The Machines list page has been redesigned to provide a better user experience.Minimum Talos version for new clusters
The minimum Talos version required to create new clusters has been raised to v1.6.0.New exported metrics for cluster features and machine details
New prometheus metrics are added for:- Enabled cluster features: disk encryption, embedded discovery service, workload proxying.
- Machines’ platforms, their secure boot status and whether they were booted with UKI.
OIDC Authentication Support
Added support for OIDC authentication in Omni.Toast Messages
Replaced the notification banner feature with toast messages.User Consent Form for Userpilot
Added a user consent form for Userpilot to allow opting in/out for data collection.Userpilot Reporting Integration
Integrated Userpilot reporting to help track user interactions.Release notes →
Authentication Support (Enterprise)
Image Factory Enterprise now supports API key-based authentication. When enabled, all schematic access requires the caller to be authenticated. Each schematic records its owner at creation time, making schematics private to the user who created them. Authentication is configured via a set of usernames and associated API keys.Note: This feature is enterprise-only and is subject to the BUSL-1.1 license.French Locale
The Image Factory frontend now includes a French (fr) locale, adding translations for the web interface.Stable Resolution for ‘latest’ Tag
Thelatest tag in the registry frontend now resolves to the latest non-prerelease (stable) version instead of being passed through to the upstream registry.New /talosctl/:version Endpoint
A new/talosctl/:version endpoint has been added that lists all downloadable talosctl binaries for a given Talos version.Release notes →
SPDX SBOM viewer
Added a new SPDX SBOM section to the Image Factory Enterprise. Users can now request SBOMs for a specific Talos schematic directly from the Image Factory Enterprise interface.Note: This feature is enterprise-only and is subject to the BUSL-1.1 license.Release notes →
Improved Clusters Page Breadcrumbs
Breadcrumbs on the clusters page have been redesigned for better navigation.CLI Support for Kernel Args and Join Configs
omnictl now supports commands to retrieve SideroLink kernel arguments and join configurations.Default Config Location Change
The default location for storing Omni configuration files and user PGP keys has been changed.Custom Volumes in Helm Chart
Added support for specifying custom volumes and volume mounts in the Omni Helm chart.Home Page Design Update
Omni home page design was changed to have more useful information about the whole account status.Join Token Usage Warning
Omni now warns users when a join token is currently in use during revoke or delete operations.Collapsible Sidebar on Mobile
The sidebar can now be collapsed when viewed on mobile devices, improving usability on smaller screens.Join Tokens CLI
A new CLI feature has been added to manage SideroLink join tokens directly usingomnictl.Unique Token Status per Node
Omni now computes and displays a unique join token status for each node.Release notes →
Configuration moved to env and config files only
All configuration is now provided exclusively via environment variables and/or configuration files. Command-line flags for configuration have been removed.Users must migrate any existing CLI-based configuration to env variables or supported config file formats. This change simplifies the runtime interface but is a breaking change and requires updates to existing workflows relying on CLI flags.Disk Image
The disk image build process no longer requires privileged deployment and mounting ‘/dev’. The build process now operates in userspace, and it doesn’t depend on host Linux kernel anymore. This change enhances security and portability, allowing disk images to be built in a wider range of environments without elevated permissions. This also enables most of the image builds to be fully reproducible.Release notes →
What’s Changed
- chore: support gcr.io keychain for registry auth by @frezbo in https://github.com/siderolabs/image-factory/pull/180
- chore: reduce memory usage by @DmitriyMV in https://github.com/siderolabs/image-factory/pull/181
New Contributors
- @DmitriyMV made their first contribution in https://github.com/siderolabs/image-factory/pull/181