Update dependency talosctl to v1.14.4 #8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/talosctl-1.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.13.5→1.14.4Release Notes
siderolabs/talos (talosctl)
v1.14.4Compare Source
Talos 1.14.4 (2026-10-16)
Welcome to the v1.14.4 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.57
Talos is built with Go 1.26.9.
Contributors
Changes
1 commit
3fb46c3release(v1.14.4): prepare releaseChanges from siderolabs/pkgs
2 commits
2ec10ebchore: update DRBD compat643b731feat: update Linux to 6.18.57Dependency Changes
Previous release can be found at v1.14.3
Images
v1.14.3Compare Source
Welcome to the v1.14.0-beta.1 release of Talos!
This is a pre-release of Talos
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
DNS over TLS (DoT) and DNS over HTTPS (DoH) Support
Talos now supports DNS over TLS (DoT) and DNS over HTTPS (DoH) for secure DNS resolution.
These features allow Talos to encrypt DNS queries and responses, enhancing privacy and security for DNS traffic.
The DNS protocol can be configured on a per-name server basis in the
ResolverConfigdocument, allowing for flexible configuration of DNS resolution.noexec on EPHEMERAL (/var)
Talos 1.14 clusters now default the EPHEMERAL volume (
/var) tonoexecin addition to the existingnosuidandnodevmount options through generated machine configuration.
Existing machines are not affected on upgrades.
Note: Workloads that execute binaries placed under
/varcan break on new machines.Longhorn v1 and vCluster are known to be affected.
For example, Longhorn v1's
instance-managerexecutes engine binaries that theengine-imageDaemonSet places under/var/lib/longhorn/engine-binaries/, which now fails withpermission denied.Affected users can opt out via a
VolumeConfigdocument:Longhorn v2 (SPDK data engine) runs the data plane inside the instance manager process and is not affected.
Apply Configuration Modes
The '--mode=reboot' option has been removed from the
talosctl apply-configcommand; by default, configuration is applied without a reboot.Most configuration changes don't require a reboot; the documentation lists the changes that do.
Native BGP
Talos now supports running native BGP routing instances on the host via embedded GoBGP servers, configured with
BGPInstanceConfigdocuments.This removes the need to ship FRR as a system extension for the common fabric-facing use case.
List of changes:
BGPInstanceConfigdocuments to configure local ASN, router-id, optional Linux VRF, advertised interfaces, neighbors, and per-route preferred source (routeSource).installRoutes: falseto retain learned routes in the BGP RIB without installing them into the Linux routing table.importRoutesprefix selectors. Imports are one-way, preserve path attributes, and do not recursively import locally originated or previously imported paths.BGPPeerStatusresources (talosctl get bgppeerstatus).RouteSpec/RouteStatusnow carry a multipath next-hop list to support ECMP and cross-family (RFC 8950) next-hops.Btrfs Support
Talos now supports mounting and provisioning
btrfsfilesystem for user volumes and existing volumes.Support for
btrfsis enabled by installingbtrfssystem extension.CRI Base Runtime Specification Configuration
Talos now supports overriding the default OCI runtime specification for CRI containers with a
CRIBaseRuntimeSpecConfigdocument:The
.machine.baseRuntimeSpecOverridesfield is deprecated and remains supported during the deprecationperiod. It is mutually exclusive with
CRIBaseRuntimeSpecConfig; configurations containing both are rejected.Applying, updating, or removing either source regenerates the base runtime specification and restarts CRI
automatically. A machine reboot is no longer required.
CRI Customization Configuration
Talos now supports customizing the CRI containerd configuration with named
CRICustomizationConfigdocuments. Each document contains a TOML fragment; fragments are merged in lexicographical order by name.
Applying, updating, or removing these documents updates the generated CRI configuration and restarts CRI
automatically.
The legacy
/etc/cri/conf.d/20-customization.partmachine-file configuration remains supported during thedeprecation period and is exposed under the reserved name
customization. ACRICustomizationConfigdocumentcannot use that name.
NOTE: a machine reboot is no longer required to apply changes to CRI configuration.
Containerd NRI
Talos no longer disables NRI (Node Resource Interface) for the CRI containerd instance by default, so NRI is available
to use without any machine config patches.
To bring back the old behavior of NRI disabled by default, add the following machine configuration document:
Default Installer Image
The default installer image has been updated to use the Image Factory.
The
ghcr.io/siderolabs/installerimage is no longer published with releases; use the Image Factory installer image instead.DHCP
DHCPv4 search domains are now applied to the resolver configuration.
DHCPv4 configuration now supports
ignoreRoutesoption to ignore routes provided by DHCPv4 servers.Cluster Discovery
Talos introduces support for configuring multiple discovery service endpoints.
Talos introduces new document for configuring the cluster discovery identity.
List of changes:
.cluster.discoveryin the v1alpha1 config; use theDiscoveryServiceConfigdocument for discovery service configuration. The v1alpha1 config andDiscoveryServiceConfigare mutually exclusive..cluster.secretandcluster.idin the v1alpha1 config; use theDiscoveryIdentityConfigdocument for discovery identity configuration. The v1alpha1 config andDiscoveryIdentityConfigare mutually exclusive.base64.URLEncodingtobase64.StdEncoding. This aligns the encoding with the rest of Talos.Encryption Discards
Volume encryption now supports an
allowDiscardsoption (disabled by default) which passes TRIM/discard requeststhrough to the underlying device when the encrypted volume is opened.
This only enables passing discards through to the underlying device; Talos does not perform any fstrim/discard operation by itself.
etcd
Talos is now compatible with etcd v3.6.x only (the default etcd version was 3.6.x since Talos v1.11).
The default version is 3.7.0+ now.
etcd now serves its HTTP-only endpoints (
/metrics,/health, the gRPC-gateway JSON API) on a dedicatedlistener on port
2383, while the client port2379serves gRPC only. This keeps gRPC off Go'snet/httpHTTP/2 server, avoiding watch-stream starvation under TLS (see etcd-io/etcd#15402, golang/go#58804,
etcd-io/etcd#21605).
Upgrade note: etcd metrics and the HTTP health endpoint are no longer reachable on
2379; scrape them onport
2383instead (same client mTLS as before). etcd gRPC clients and the Talos health check are unaffected.Firewall might need to be adjusted to block the port
2383if previously2379was blocked.If
--listen-metrics-urlswas customized, the metrics should not move.EtcFileConfig
Talos now supports managing user-owned files under
/etcwith the newEtcFileConfigmulti-documentconfiguration kind. The document
nameis the path relative to/etc, and each document owns the completefile contents and mode.
This can be used to configure files such as
/etc/nfsmount.confor/etc/multipath.conf. Talos-managedpaths, including
resolv.conf,hosts,machine-id, CRI and Kubernetes configuration, trust bundles, andidentity files, are rejected to prevent overriding files owned by Talos.
Filesystem Trim
Talos can now periodically trim (the equivalent of the
fstrimcommand) mounted filesystems which support trimming,discarding unused blocks. This is useful for SSDs and thin-provisioned storage.
Trimming is opt-in via a new
FilesystemTrimConfigdocument which sets the global trim interval:The default machine configuration for Talos 1.14+ includes a
FilesystemTrimConfigdocument with a default trim interval of one week,so trimming is enabled by default for eligible filesystems. For cluster which were upgraded from older versions, the
FilesystemTrimConfigdocument will be missing,so trimming will be disabled by default until the document is added.
When the document is present, Talos builds a stable schedule (hashed by node ID and volume ID, so trims are spread out
across volumes and across nodes in a cluster) and trims eligible volumes (ready disk/partition volumes with a
trim-capable filesystem; for encrypted volumes only when
allowDiscardsis set).The trim interval can be overridden or disabled per-volume via a
trimblock on the volume documents(
VolumeConfig,UserVolumeConfig,ExistingVolumeConfig,ExternalVolumeConfig):Flannel CNI
Talos now configures Flannel with the
EnableNFTablesoption enabled, which uses nftables native backend instead ofiptables-nftcompatibility layer.FlexVolume Host Path Removed
Talos no longer provisions the deprecated FlexVolume executable host path at
/usr/libexec/kubernetes. FlexVolume has been deprecated since Kubernetes 1.23.Modern CSI plugin paths under
/var/lib/kubeletare unaffected.Host DNS Configuration
HostDNS configuration was moved from the v1alpha1 config
.machine.features.hostDNSfield to the newhostDNSin theResolverConfigdocument.HTTP Probe Support
Talos now supports HTTP network probes, allowing for monitoring of HTTP endpoints.
HTTP responses with status 200-399 are considered successful, while connection and transport errors are treated as failures.
Image Cache Configuration
Talos now supports a new
ImageCacheConfigdocument for configuring the Image Cache feature, replacing the oldmachine.features.imageCachefield in the v1alpha1 config.Old configuration is still supported for backwards compatibility.
Kernel Multi-document Configuration
Talos introduces new multi-document configuration for kernel parameters (sysctl and sysfs settings), replacing the old v1alpha1 config fields.
The old configuration is still supported for backwards compatibility, but new deployments should use the new documents.
If both old and new configuration sources are used, the new multi-document configuration takes precedence over the old v1alpha1 config on conflicting fields.
List of changes:
.machine.sysctlsin the v1alpha1 config; use theSysctlConfigdocument for kernel sysctl configuration..machine.sysfsin the v1alpha1 config; use theSysfsConfigdocument for sysfs configuration..machine.kernelin the v1alpha1 config; use theKernelModuleConfigdocument for kernel module configuration.Kernel Module Status
Talos now reports the status of both dynamically loaded, and built-in kernel modules.
The
LoadedKernelModuleresource has been deprecated and superseded by the newKernelModuleStatusresource.In-tree Volume Plugins Deprecated
Because the kubelet now runs inside the sandbox namespace (see the workload isolation note), the in-tree
Kubernetes volume plugins that require the kubelet to reach host-level daemons no longer work. In particular
the in-tree
iscsivolume plugin, which drives the kubelet'siscsiadmwrapper to talk to the hostiscsid,can no longer locate it across the sandbox PID namespace boundary.
Use CSI drivers instead — a CSI node plugin performs the attach/mount itself in its own privileged pod and is
unaffected by the sandbox. For iSCSI,
kubernetes-csi/csi-driver-iscsi(ordemocratic-csi) consumes atarget the same way. All in-tree (non-CSI) volume plugins are deprecated for the kubelet and support for them
may be removed in a later release.
Kubernetes Multi-document Configuration
Talos introduces new multi-document Kubernetes configuration, which allows for more flexible and modular configuration of Kubernetes components.
Talos still supports the old v1alpha1 config for backwards compatibility, but new features and fields will only be available in the new multi-document format.
The
kube-proxyis now using configuration to manage its settings instead of command line arguments (with newKubeProxyConfigdocument).List of changes:
.cluster.secretboxEncryptionSecretin the v1alpha1 config; use theKubeEtcdEncryptionConfigdocument for full etcd encryption configuration..cluster.apiServerin the v1alpha1 config; use theKubeAPIServerConfig,KubeAdmissionControlConfig,KubeAuditPolicyConfig,KubeAuthenticationConfigandKubeAuthorizerConfigdocuments for kube-apiserver configuration..cluster.ca,.cluster.acceptedCAsand.cluster.aggregatorCAin the v1alpha1 config; use theKubeAPIServerCAConfig,KubeAggregatorCAConfigdocuments..cluster.controllerManagerin the v1alpha1 config; use theKubeControllerManagerConfigdocument for kube-controller-manager configuration..cluster.schedulerin the v1alpha1 config; use theKubeSchedulerConfigdocument for kube-scheduler configuration..cluster.proxyin the v1alpha1 config; use theKubeProxyConfigdocument for kube-proxy configuration..cluster.networkin the v1alpha1 config; use theKubeNetworkConfigdocument for Kubernetes network configuration; Flannel can be configured using theKubeFlannelCNIConfigdocument..cluster.coreDNSin the v1alpha1 config; use theKubeCoreDNSConfigdocument for CoreDNS configuration..cluster.nameand.cluster.controlPlane.endpoint in the v1alpha1 config; use theKubeClusterConfig` document for cluster name and control plane endpoint configuration..cluster.allowSchedulingOnControlPlanes.machine.kubelet.skipNodeRegistration.machine.kubelet.registerWithFQDN.machine.kubelet.nodeIP.machine.nodeLabels.machine.nodeAnnotations.machine.nodeTaintsNoScheduletaint for controlplane and label are now explicitly listed inKubeNodeConfig..machine.kubeletfields in the v1alpha1 config; use theKubeNodeConfigandKubeCredentialProviderConfigdocuments for kubelet configuration..machine.podsin the v1alpha1 config; use theKubeStaticPodConfigdocument for static pod configuration..machine.filesin the v1alpha1 config; use dedicated configuration documents such asEtcFileConfigandCRICustomizationConfiginstead..machine.baseRuntimeSpecOverridesin the v1alpha1 config; use theCRIBaseRuntimeSpecConfigdocument for base runtimespec overrides..cluster.inlineManifestsin the v1alpha1 config; use theKubeInlineManifestConfigdocument for inline manifests..cluster.extraManifestsand.cluster.extraManifestHeadersin the v1alpha1 config; use theKubeExternalManifestConfigdocument for external manifests..machine.features.kubePrism; use theKubePrismConfigdocument for KubePrism configuration (or remove it to disable KubePrism)..machine.features.kubernetesTalosAPIAccess; use theKubeTalosAPIAccessConfigdocument instead.nodeCIDRMaskSizeIPv4(default24) andnodeCIDRMaskSizeIPv6(default64) settings to theKubeNetworkConfigdocument to control the per-node pod CIDR mask size and validate the pod and service subnet sizes.LVM Logical Volume Creation
Logical volumes can now be declared with a new
LVMLogicalVolumeConfigmulti-doc config kind. Each documentnames a logical volume, its parent
volumeGroup, atype(linear,raid0,raid1orraid10) and amaxSize(absolute, e.g.50GiB, or a percentage of the volume group, e.g.80%). RAID layouts acceptoptional
mirrors(raid1/raid10, default 1) andstripes(raid0/raid10, default: all available physicalvolumes) fields. Once the volume group is assembled the logical volume is created via
lvcreate.Raising
maxSizegrows an existing logical volume vialvextend; percentage-sized volumes also grow whentheir volume group is extended. Shrinking is never performed (it risks data loss) - a request to reduce the
size surfaces an
LVMValidationErrorinstead. Removal stays an explicit operation via the LVMService LVremove RPC (
talosctl wipe lv).LVM Status
Talos now provides detailed LVM status information, allowing for better monitoring and management of LVM volumes.
New resources
LVMPhysicalVolumeStatus,LVMVolumeGroupStatus, andLVMLogicalVolumeStatusexpose PV, VG, and LV details.DiscoveredVolumeresources for logical volumes are listed by their kernel name (e.g.dm-0). To resolve the<vg>/<lv>for a given device, use theDisksorBlockSymlinksresources, which carry the udev-managed symlinks (e.g./dev/disk/by-id/dm-name-<vg>-<lv>).LVM Volume Group Creation
Talos can now create and grow LVM Volume Groups declaratively through a new
LVMVolumeGroupConfigmulti-docconfig kind. Each document names a Volume Group and a CEL
volumeSelectorover the disk inventory; matcheddisks are initialised as Physical Volumes (
pvcreate) and aggregated into the requested VG (vgcreate).Newly matched disks added to an existing VG are attached via
vgextend.Reconciliation is strictly additive and safe-by-default.
LVM Wipe
Talos now provides the ability to securely wipe LVM metadata from logical volumes, volume groups, and physical volumes.
This feature allows for selective wiping of logical volumes, volume groups, and physical volumes.
With
talosctl wipe lv/vg/pv <name>, users can wipe LVM metadata from a specific logical volume, volume group, or physical volume.NTS for Time Synchronization
Talos now supports Network Time Security (NTS) for secure time synchronization.
This feature enhances the security of NTP by providing cryptographic authentication of time sources.
NTS is enabled by default (without any configuration sources) for the default
time.cloudflare.comtime serverNTS can be enabled for custom time servers via the new
useNTSfield in theTimeServerConfigdocument.RAID Array Creation
Talos can now create and grow Linux MD (software RAID) arrays declaratively through a new
RAIDArrayConfigmulti-doc config kind. Each document names an array, its
level(raid1) and a CELvolumeSelectoroverthe disk inventory; matched disks are assembled into the requested array with
mdadmand exposed at the stable/dev/disk/by-id/md-name-<name>path. New matching disks added to an existing array are attached automatically.Reconciliation is strictly additive and safe-by-default. Arrays are never destroyed by removing the config;
removal stays an explicit operation via
talosctl wipe md <device>. The newMDArrayStatusresource reports theassembled array, level, device path, and members.
Booting from a RAID Array
Talos can now be installed onto and boot from a Linux MD (software RAID) array. Define a
RAIDArrayConfigfor thearray and point the install disk selector (
UnattendedInstallConfig) at the resulting/dev/disk/by-id/md-name-<name>device.
Only
raid1arrays withmetadata: "1.0"can be used for booting: the 1.0 format keeps its superblock at the end ofeach member, so the partition table written to the array stays visible at the start of every disk, allowing the
firmware to boot from any member.
metadatadefaults to1.0; other levels and metadata formats are not bootable.Workload Isolation (sandboxd)
The container runtime plane — CRI containerd, the kubelet, and all pods — now runs inside a dedicated PID and
mount namespace anchored by a new
sandboxdservice, instead of sharingmachined's namespaces.sandboxdruns in its own least-privilege SELinux domain (sandboxd_t). if it dies the kernel tears down thenamespace and Talos recreates it — relaunching CRI, the kubelet, and pods — without rebooting the node.
Its logs are available via
talosctl logs sandboxd.Workload isolation is controlled by the
workloadIsolationfield of the newSecurityProfileConfigdocument.talosctl gen configemits it withworkloadIsolation: truefor Talos 1.14+, so new clusters are isolated bydefault. Clusters upgraded from older versions do not have this document and therefore keep the previous
(non-isolated) behavior until it is added — upgrades change nothing on their own. To enable on an existing
cluster, add the document:
ICMP send_redirects Disabled by Default
Talos now sets
net.ipv4.conf.all.send_redirects=0andnet.ipv4.conf.default.send_redirects=0by default,preventing the node from emitting ICMP redirect messages. This aligns with CIS Benchmark recommendations and
does not affect normal Kubernetes pod or service traffic. Nodes that deliberately act as L3 gateways relying
on ICMP redirects can override this via
machine.sysctls.Support Bundle Encryption
The
talosctl supportcommand now encrypts support bundles using the age encryption tool, enhancing the security of support data.The default set of recipients includes the 'siderolabs' GitHub organization members, but it can be overridden with custom recipients.
Dedicated System Volumes
The
ETCD,CRI,KUBELETandLOGsystem volumes (/var/lib/etcd,/var/lib/containerd,/var/lib/kubeletand/var/log) can now be placed on dedicated partitions via aVolumeConfigdocument withprovisioningset (optionally encrypted). By default they remain directories under theEPHEMERALvolume.The backing (directory vs. dedicated partition) is fixed at cluster creation: switching an already-provisioned node between the two is rejected.
A dedicated partition has its own mount, so the
mount.secureoption (nosuid/noexec/nodev, enabled by default) can be set per volume; directory-backed volumes inherit theEPHEMERALmount options.Note that with
ETCDon a dedicated partition, etcd data no longer lives underEPHEMERAL. Resetting a control plane node with only theEPHEMERALpartition wiped will not clear etcd data; wipe theETCDvolume to reset etcd.TLS 1.3 Minimum Version
Talos now runs etcd and kube-apiserver with a minimum TLS version of 1.3, improving security by leveraging the latest TLS features and cipher suites.
Custom settings for cipher suites have been removed, as they are ignored when TLS 1.3 is used, which simplifies configuration and ensures the use of modern, secure defaults.
Udev Rules Multi-document Configuration
Talos introduces new multi-document configuration
UdevRulesConfigdocument for configuring custom udev rules.The old v1alpha1
.machine.udev.rulesfield is still supported for backwards compatibility, but new deployments should use the new document.If both old and new configuration sources are used,
UdevRulesConfigtakes precedence.List of changes:
.machine.udev.rulesin the v1alpha1 config; use theUdevRulesConfigdocument for custom udev rules.Unattended Install Configuration
Talos introduces a new
UnattendedInstallmulti-document config kind which replaces the deprecated.machine.installsection of the v1alpha1 config. The document carries the installer
imageand aprovisioningsection with a CELvolumeSelectorto match the install disk, plus awipeoption.When the
UnattendedInstalldocument is present, the install is driven by the newUnattendedInstallController(exposing an
UnattendedInstallStatusresource) instead of the legacy install sequence.talosctl gen configandtalosctl cluster createnow generate theUnattendedInstalldocument by default.The
.machine.installfield remains supported for backwards compatibility and is still used for older version contracts.Component Updates
Linux: 6.18.41
Kubernetes: 1.37.0-beta.0
containerd: 2.3.3
etcd: 3.7.1
Flannel: 0.28.8
runc: 1.5.1
CoreDNS: 1.14.6
Talos is built with Go 1.26.5.
Virtual Ethernet Pairs
Talos now supports declarative virtual Ethernet (
veth) pairs through the newVethConfigmulti-documentconfiguration kind. Both endpoints are created in the host network namespace and support the common link settings,
addresses, routes, and multicast configuration.
For example, the following configuration creates a pair named
veth-hostandveth-routerwith an address on eachendpoint:
XFS Allocation Group Geometry
On non-rotational devices
mkfs.xfssizes the allocation group count to the number of CPUs, bounding theallocation group size from below at 4 GiB only. On machines with many cores and a modest disk this produces
hundreds of tiny allocation groups, which squeezes the AG-local reflink/rmap metadata (leading to spurious
ENOSPCon reflink-heavy workloads while the filesystem still has plenty of free space) and inflates thejournal at the same time.
Talos now keeps XFS allocation groups at 64 GiB or above when it formats a volume. The bound can be changed
per volume, and setting it to zero restores the stock
mkfs.xfsbehavior:The same
filesystem.xfs.minAllocationGroupSizesetting is available forUserVolumeConfig.Note: allocation group geometry is fixed when the filesystem is created, so this only affects volumes
formatted by Talos 1.14 or later. Existing volumes keep their current geometry until they are wiped and
re-created (e.g.
talosctl reset --system-labels-to-wipe=EPHEMERAL).XFS scrub
Talos now supports automatically running background online filesystem maintenance tasks. Currently,
only XFS using xfs_scrub tool is supported.
This behavior can be enabled globally using a FilesystemScrubConfig document, or on per-volume
basis using a field in corresponding VolumeConfig documents.
Contributors
Changes
487 commits
1ab88f743fix: load the raid1 module for configured MD arrays9e8568d26fix: use inmem containerd for installs/upgrades8cf28da5ffix: preserve kmsg reconciliation after config changes311b6fde9fix: make reset during boot phase more robust945d1cdabfeat: bump kernel to 6.18.414e77d40e8fix: restore the systemd-timesync best-sample check in spike detection4444a187dtest: inspect host mount state from the current threadb7c0497b0fix: race between vol.cfg. and vol.mgr. ctrlef9a091ecfeat: allow attaching extra disks to controlplane machinesa418c0e1etest: fix CRI restart event assertion racea9bfdbdd4fix: ignore insecure-only imager assets54e3b20e8fix: hold the darwin vmnet bridge open for the network lifetimebc59389fafix: drop the OOM config rule about overall system memory PSI69be56ea9chore: add some initial set of libvirt SELinux policies6170ad8b9fix: validate kubespan & discovery config correctly for multi-doc6e58c6d5atest: fix ded. vol. plumbing in integration testsb644d1640fix: allow directory-backed volumes in reset api28e7a8742feat: bump etcd to v3.7.12c657c224feat: bump kernel to 6.18.40b1bdc8c07test: restart qemu process several times on startup failures7533057a7feat: support route imports between BGP instancesa94783704docs: remove duplicated docs in the markdown for CLI6f17c5033fix: verify the public key signed images correctly570fe34f0fix: generate backwards compatible etcd encryption configf7790816efix: use context without cancelation for etcd locks67e61ef30feat: add the fs_scrub controller1c156458afix: override DHCP search domains via explicit ResolverConfig domainsfd8dbd8a1fix: skip pod check if desired number of pods is zero9aede5429feat: add kubeimportlinter for versioned k8s importsae93d1462fix: redact resource specs in the merge controllersfc5743cd0feat: add GrubUseUKICmdline install option6bba77724feat: add named native BGP instancesc5ab22f1dfeat: move Talos API access from Kubernetes config to multi-docb1abd9c03fix: split the up/finished service events644ecbc66feat: add discovered volumes status controller6be2b1384feat: add veth pair support7514401defix: drop the controlplane static pod change9a521f667fix: preserve container tasks across CRI restarts9048d4157fix: fix a nil-map assignment panic in configpatcher45eaf2037release(v1.14.0-beta.0): prepare release7e58e0442feat: add dedicated CRI configuration documents076c38136fix: race with PCR extensions and volume unlock88884194cfix: teardown ephemeral mount request during resetc793bcbf5fix: configure bonds during initial link creation9b3bf6e51fix(talosctl): prevent duplicate QEMU config server portsfa6cd1ca8fix(machined): preserve health when services reach running9d5554e69fix(machined): wait for host namespace commands through reaperfc08533bfchore: update dependenciesc08863cddfeat: provide different heuristics for xfs allocation groupse955d9bd7feat: update CoreDNS to 1.14.6c3f757f9efeat: update Flannel to 0.28.8fada0d960fix: provide non-sensitive KubeletStatus resourcec68085286fix: volume mount race (third attempt) around service restartb185752e5feat: refactor KubePrism config into multidoc499d4ebf9test: update Calico in canal reset test5b6ed0068test: add a test for kata-qemu runtime class1a075383afeat: allow "duplicate" kinds in the config patches06943be9efeat: update Kubernetes to 1.37.0-beta.001f2a1423fix: preserve trailing rate-limited trigger events46fab8057test: stabilize AWS readiness and Talos 1.13 QEMU configa26ac746dfeat: move static pods and manifests into multi-doc67464cbeffix: update the vulnerability dates and description4920ee06ffeat: update Linux to 6.18.39286fa8006feat: include CA into kube-apiserver serving certificate6d65e223bfeat: drop kubernetes flexvolume mounts4935e9452feat: refactor kubelet's config intoKubeletConfig241bd0ff1feat: custom cfg for system volumes (cri, kubelet, etcd)ea9557816fix: talosctl buildc2b763608feat: add UFSHC and some other modules2193b5781feat: native BGP support via embedded GoBGP2e42c5900fix: add ca-certificates to talosctl0f55e1f05feat: refactor Kubernetes configs intoKubeNodeConfig6efdc8f71fix: zero MD superblock via block wipe on destroyf78f5e5a1fix: vrf sorting77385181afix: oom podruntime protectionc1184d38efeat: update to runc 1.5.14bff7eb90feat: support reboot and sync for remote provisionerc791fa8c0feat: add host-namespace debug profilee370e40b7feat: implement KubeClusterConfig37c78bfc0fix(ci): skip ephemeral noexec test on 1.130ab6695e6feat: update Kubernetes to 1.37.0-alpha.3443ca17e1test: bump test dependenciesc4242088bfix: enablenoexecfor EPHEMERAL only for new machinesfc9f72648feat: bump CoreDNS, Flannel352b1bdebfix: use symlinks for init aliases883775a9efix: move sandboxd into a separate cgroup099a2cedafix: remote provisioner nameff67aaf32feat: bump go dependencies79c0c5414feat: add iommufd as a kernel modulef34e93fe2fix: do proper backoff for NTP Kiss-of-Death responsesa3e644d8dchore: bump tools and pkgsefa88f2f6fix: flaky tests17a134711feat: add ignoreRoutes option to DHCPv4 config document2519bf231fix: make audit restartable54b4bbc03fix: provide correct handler for Ctrl-Alt-Delete sequence87e126ab7feat: isolate cri, kubelet and pods in a sandbox namespace3fb8f4e9efix: avoid image cache mount request churn9753fc27ffix: e2e test flakesf756ff232feat: kubenetworkconfig supports per-node pod cidr configurationb42c42976fix(ci): fix more flaky tests5d97eccdffeat: bring in ifb.ko module6769a1d5cfix: terminate log persistence a bit harder98cce792ffix(ci): extensions test057d554d2test: assert dm transport for device-mapper disks9fd16a21efeat: bump etcd to 3.7.03048eeb23feat: support booting from MD RAID1 arraye1fc7a4a1fix: do not block volume lifecycle teardown on failed user volumes147dea148feat: add --no-reboot flag to upgrade cmd1b23b11fcchore: update pkgs and toolsbfa9fb4e8fix: flaky testsa1ede48cbtest: fix testremovemember etcd integration flakeea90e690dfeat: add MD RAID gRPC service and reconcile controllers74486ef6dchore: update depsf59c3ccadfeat: implement service account configurationbaff2d3f9test: fix some test flakiness5450ec303fix: use a forked version of secure-io/siv-go33fac3f85test: stabilize netapp trident csi fio runsafdde2a8fchore(ci): add netapp trident csi integration tests21eca156ffix: print link status changes210f4e369fix: shutdown/reboot via usermode helpersd193f278dtest: fix cilium test config patchinge06898069fix: flaky testsb7398ec00feat: move kernel module config into multi-doc55bc643affix: flaky serviceaccount suite testdced7d570fix: correctly treat guaranteed QoS pods in the OOM handlerf783f6636feat: implement controlplane only config validationd0291bb0bfeat: extract Kubernetes CA config into a separate document97ed958a8chore: use lefthook globs to skip noop jobsa145c6356chore: lefthook USERNAME env, post-commit hookf836707adfix: use UnattendedInstallConfig for extensions67293c809chore: add lefthook.yml726ea8fc2chore: switch v1alpha1 validation to use cluster config structd1d848022feat: add mdadm tooling and udev rules020de3f51chore: update go dependenciesae84f56a0chore: remove orphaned unattendedinstall.md416073748feat: add UnattendedInstall config and controller4e5b4c6a7feat: extract clusterid and clustersecret to discoveryidentityconfig0a641f268refactor: simplify device status controller99da7f27ffix: data race in manifest sync54ac1cbd6fix: provide cooldown period for the QoS trigger788562586feat: udevd controller and udev rules config document6e34da25cfeat: delegate drain ops to go-kubernetes/nodedraine9e027c63fix: kubelet stuck restarting6f481b420fix: decode extraArgs list values correctlyc8bdcc252feat: update runc to 1.5.0eae11ab0cfeat: allow user managed etc files47d4bd87efeat: set user-agent for Kubernetes clientba926c6cechore: update golangcilint config45497bd5bfeat: bring systemd 261.18d9ecec93refactor: improve stability for process_test.go31221e7eerefactor: talosctl running tasks are yellowb268a6b08feat: refactor CoreDNS config into multi-doc416d5fe4bfix: race in etcd member addc244e4c46fix: building integration test binary on darwinb15a64b31chore: bump rekor for GHSA-47q9-m4ww-924mcd8b0fe39release(v1.14.0-alpha.2): prepare release917820cb3chore: sync pkgs/toolsb34be14e9fix: cli.md codeblock generation25abcc6b5docs: update kubespanconfig to match discoveryserviceconfig742589f50feat: support multiple discovery service configsfc3f27d79chore: enrich the SBOM with Go module licenses47d5c3351fix: handle image cache being disabled1a965aec3test: disable LongHorn ublk test and add more cores6d03b3f61fix: align documented image cache partition label6447d854ffix(talosctl): use aio threads on darwinf856d1808fix: image verification with referrers11a7fbe4cfeat: extract kube-apiserver config into multi-doc configs337654d2btest: fix rook-ceph testse33a86825feat: add AMD XGBE driver to initramfsbd2d6242afix: revert coredns to 1.14.27c4e644f8feat: update Linux to 6.18.366e23a5c2fchore: refactor bare opentree_clone into a mount helperdfbd30959fix(talosctl): prevent appending type 11 smbios values on restart5926dd70dtest: support running integration test against remote provisionerf146c6a18feat: refactor /etc mountsebe364117chore: bump containerd to 2.3.2bc30c61a1chore: bump deps (go, k8s, docker)00d739d0atest: skip fstrim default schedule on cloud testsd9c6edf01fix: bump number of open files for etcd990c5395cchore: update tools and pkgs 2026-06-17325be7cd8refactor: config generate uses multi-doc sysctlconfigd6930633bfix: clean up and overhaul mount opsa0219404dfix: cgroups cleanup58d8b71c4fix: stop the log persistence and close all files on shutdown4b32ebc17refactor: simplify trustd/apid rootfs setupdc98e3553feat: implement filesystem trim support897bef633feat: introduce KubeProxyConfig multi-docebde543cffeat: introduce BootID resourcecd178b9f3fix: ensure consistent manifest apply order19fac6151feat: remote provisionerb6412e031fix: drop one more reference to removed 'nodes'be7f7a7dbfeat: add human-readable size fields to LVM resourcesd4e0ca1bafix: make LVM reconciliation robust and idempotent0dbc1e529chore(ci): fix flaky testb687a47abfeat: implement an option to allow discards on encrypted volumes3fc981c57fix: improve security of scheduler/controller-manager5d4af9f33fix: gracefully stop node containers before removalc1593d8a3fix: honor FailurePauseTimeout when pausing before reboot506dc1323feat: add imager flag to set the SecureBoot key enrollment mode5d4ba702erefactor: generate pod definitions in k8stemplates995bc30d5feat: drop apply config method reboot18f6cb4d0fix: increment time epoch on wall-clock jump when time sync is disabled755a8c8ebfeat: update etcd to 3.7.0-rc.0a0c76fad1feat(talosctl): implement cluster logsdb052165cfeat(talosctl): support rebooting cluster nodes0a04f463afeat(talosctl): use gateway dns for clustercf3eb1cadchore(talosctl): disable kexec for cluster create on arm64180182b0ffix: correct the link alias conditionac9014f05fix: introduce pull attempt stall detection for image pullf2286d616fix: move Flannel netpol patch to the controlplane9986c0b16feat: bump kernel to 6.18.35e8845fba6fix: route ProxyURL test via reachable endpoint44acedf30feat: add declarative LVM logical volume provisioningf6058a11bfeat: grab support bundle via client factorycdd719773feat: add CPUCores resource8e41eb1bdfeat: verify go.mod tidiness in generate targetb19e2ea42feat: add kube-apiserver probesa321a1dccfeat: support proxy-url in talosconfig contextbb2ac7546feat: parse schematic info out of extension status0c02a5a07fix: align flannel MTU with kubespan to avoid permanent fragmentation3d5fd822cfeat: expose disk firmware and BIOS version30115981cfix: relax LUKS header validation5923199fbrefactor: use ClientFactory for the action tracker72c0ced3crefactor: deprecate sysfs and sysctl in machineconfigee74a41fbfix: handle cluster-scoped resources with a namespace correctly9df5a647afeat: allow to disable access time for EPHEMERAL partition9b667dbdechore: fix lint error in test311378386test: increase resource inmem buffer to stabilize the tests6f85ce3d2docs: hack/release.toml explains kernelmodulestatus9bb0a5d01fix(talosctl): add scrolling to dashboard footer node list4c029c2d6fix: machine configuration schemasc3052e845feat: move CNI config out of v1alpha1 config1d2f1208cfeat: add declarative LVM volume group provisioning85f1d428fchore: refactor tests to use debug apic901d47a5refactor: talosctl streaming commands and more fixes166854959fix: mark more resources as sensitive58adf2e00fix: classify installer and imager exits9549930fffeat: update Flannel to v0.28.527362d18erefactor: replace the callback strategy for most commandscb42d9d9afeat: implement support bundle encryption9ae260b55feat: enable NRI by defaultd1d5847b0fix: flaky test0f2331586feat: support external secureboot and pcr signersb349d919dfeat: enforce strict QoS ordering in OOM victim selection76d9b49bdfix(ci): aws nvidia tests3131826cdfix: provide NTS sync with bad initial clock state89e307e58fix: etcd client leak in the (legacy) Upgrade API476c4d050fix: recreate dns server and listeners on host DNS runner restart9a283d9b1feat: bump Go to 1.26.44759dc246chore: bump dependencies26a25a073chore(ci): drop homebrew workflowfa8a55192feat: update etcd to v3.6.1241fcab476feat: update kernel to 6.18.348ba00612bfeat: update dependencies6e2dec1earefactor: update talosctl commands to stop using WithNodesf9ad63a35feat: add custom logging convention linter30dbce03fchore: make oci images reproducible38244fd5bfeat: add sbom builder5177c50e2refactor: deprecate loadedkernelmodulec2eef3645fix: health request server-sided6eff8effrefactor: drop multi-nodes proxying for the dashboard2e547a964refactor: deprecate multi-node proxyingddcc519e1fix: add --fail to image-signer curl downloade5b0b1ddefix: normalize log fieldsd8e95c396fix: drop installer from bundle7aad9ec81feat: update pkgs, tools, Go dependenciesb50ee396ffix: fix trace fix to also lookup release branches027c93d25release(v1.14.0-alpha.1): prepare release4eb862d09feat: add LVMService for VG/LV/PV removalb88f16a52fix: use POSIX shell idioms for error propagation5290eb374fix: suppress ICMP redirects by default7b4aba2e5fix: marshal kube-scheduler config correctly with int types894be9bf5fix: touch rootfs files with SOURCE_DATE_EPOCHcde82224efix: ignore cgroups with zero rank in OOM handlerbc0372411fix: bring in a change to BCM2712_MIPf572c33f1chore: fail on makefile errore317d4b47fix: drop modprobe path and enforce usermode helper89e53f610fix(machined): make built-in mod state always 'permanent'cfbec9bd5test: skip UEFI vars wipe if TPM is enabled1e31deda3fix: create parent directories when extracting tar archives14dc188bdchore: verify go-containerregistry preserves symlinks951922dfbfix: guard apply config API call3e173adf4feat: move kube-controller-manager config to multi-docb5cda3438fix: reset QEMU UEFI variable store when disk is wiped4a17ac6acchore: script for tracking fixes made in upstream toolchain/tools/pkgsd71edeeadfeat: add LVM status resource definitions4aeba1cdefix: perform backwards-compatible kernel args cleanup9b7b2bf36feat: implement support for btrfs user volumes03ee8ee3afeat(machined): support instance tags on Akamaid19f9ade0fix: memorymodules resource reportinga6edcf6f3chore: move out adv library40e66eac7fix: bump Go golang.org/x modulese23ca4a0achore(ci): add upgrade tests for trustedboote3003c0ecchore: bump tpm nonce size to match the algorithm used8fd04da1ffeat: add bnxt_re module to the rootfs1cfab00f1fix: update etcd experimental argsad96fc6aefix: relax hostname config validationefd735334chore(ci): add missing labels, move release metadata check to job9ec045059feat: update containerd to 2.3.142f4144a1feat: introduce new KubeSchedulerConfigf2b7f39dbrefactor: move Args type out of config/v1alpha1b959dcb3efix: bump Kubernetes to 1.36.1 in one more place8ecc77f1afeat: update default Kubernetes version to 1.36.1cbd9c3745chore: rekres to secure slack workflows6a92fc653test: update Canal version used in the testsbe12d3d08feat: support 4k sector size disk imagesa7e8f4c28chore(ci): fix cloud image upload job name4319399f6feat: introduce more modular Linux kerneled5df89f6feat(ci): rotate credentialsa6a984ff7chore(ci): fix the job conditionsecb7d4588feat: enable Flannel nftables mode9919ff781feat: update Linux to 6.18.321a7d136e4feat: add Azure Secure Boot imager profiledf68e7391feat: implement kernel module status resourcee98ee99d4fix: streamline config validation flowd7f0a2fd4feat: update Linux to 6.18.312b66e25a5chore: update image signer5aa1795f9chore: drop e2e step dependenciesd42b3b396feat: update Linux to 6.18.30c3f6f3507feat: implement static host resolving via host DNS2f06a68efrefactor: split host DNS handlere99c5be5afeat: implement DNS over HTTP(S)cf6065238chore: stop publishing installer to ghcr0edabd29cfix: restore some shared (and some lower tier slave) mount propagationf1578dc63fix: image verification issue with registry.k8s.io46b1f8a24fix: rework how scheduler config is marshaled820a9fa59chore: fix typos in comments649a384a9feat: move more kernel stuff to modules4f3ab2012chore(ci): try fixing homebrew action600c0ab5dfeat(ci): validate that extensions PKGS and TOOLS sync with talos76080416bfeat: redact more machine config secrets and audit redactorsaabf63957docs: drop controlplane endpoint examplesb48a2bef4test: relax kernel-default routing rule assertiond2208b034refactor(talosctl): propagate command context throughout, handle interrupts0760b5c28fix: normalize source name for syft consistencyc49ac0ec2docs: document release policyec7e6ef9ffeat: bump in-toto indirect dependency21858a674feat: update kernel to 6.18.295a49dc61dfeat: migrate Image Cache config to multi-doc574298ec1fix: handle empty GCP operation errors366b10b79feat: dockerfile improvements9a1d9d0affeat: bump go 1.26.36eec1c229feat: support DNS over TLS for upstream resolversdee139aeffeat: revert update CoreDNS to 1.14.3087bc4c18chore: lint packages under tools9e7516faefix: clarify documentation for image verification pattern41c8e9dc4feat: bump dependencies2b6c06ef5feat: update CoreDNS to 1.14.36b6f7978bfeat: update containerd to 2.3.0f9c4f90dafeat(ci): longhorn v2 ublk tests84d169c62fix: make dnsd retry listening689974bd5fix: volume mount permissionsff0f66bdffix: skip reserved routing rule priorities850e2c754feat: drop fakeroot, use go helper0c1bd701afeat: add golangci-lint fmt target53bd66956feat: support conditional start of IPv6 dns serversb31d93e0dfeat: auto-enroll SecureBoot keys for disk images849a68006test: update pkgs to test new extensionsc30a6dfcbfix: preserve DHCP DNS servers5b81b20d3feat: apply DHCP search domains4e5ff8fa2fix(ci): zfs test14abe5140fix: handle gateways which are not on-link routes in dhcp4e1f759af8chore: fix lint issues automatically664c5f643chore: update toolsc64df2b61fix: add missing kernel modules in rootfsf73c24594feat: run depmod with verification on rootfs build1371596d7fix: provide proper AWS platform metadata4f11f021dfeat: implement etcd encryption config (kube-apiserver)876f83643feat: add support for HTTP Probes9b776d598feat: update etcd to 3.6.11631a1bc5efix: bring in hardened kernela349dac03fix: stale discovered volume children13ce01879fix: re-enable kexec on arm6432539d4acfix: deadlock in the makefs ext4 with populated source0f3e1966afix: panic in Kubernetes manifest sync3bae01ac1fix: do not pick up a system disk from a loop devicededb7a96cfix(talosctl): protect k8sNames map writes with mutexcc2be213afix: drop explicit platform matcher1dffebaf2fix: mount throws EPERM on virtiofs with SELinux48a481c29fix: replace Canal manifest with a more recent one6a445406efix: make lacp active nilable0d1d95c7dfix: bump go-kmsg to fix the timestamp driftbd344fd53fix: reset the ticker when the KubeSpan is disabled/enabled462015bcdrelease(v1.14.0-alpha.0): prepare release8a037a56etest: fix flaky tests08c81d838feat: bump kernel to 6.18.25fe40b6e58fix(ci): fetch empty pr labels837a9ed07feat: move host DNS config into ResolverConfig96a8ecd1efeat: default to factory installer imagef19eef78bfix: revert add extraArgs from service-account-issuer6821225b6fix: revert use append instead of prepend in service-account-issuerb43c3a124feat: add quirk for talosctl factory downloadsdf0b9a8darefactor: make all controller unit-test follow modern patternsc2948cef2feat: support auth for Image Factory in cluster create560bcf0cafeat: enforce TLS 1.3 minmum version for Kubernetes components3db14309efix(talosctl): ensure uncordon runs after reboot/upgrade errorsecf2fa855feat: update Kubernetes to v1.36.071557eaddfix(ci): skip misc jobs not on pull request026313b7cdocs: rename security-insights.yml to lowercase for LFX detectiondc4ffd490fix(ci): fix jobs not interpolating matrix due to condition25e2f37e2chore: generate comments for fields in resource proto149592fa5fix: watch kubelet's kubeconfig and time out for cache sync1f315e6e9feat: update Linux to 6.18.230198eedc2feat: add NTS (Network Time Security) support for NTP time sync6830a8b97fix(ci): matrix jobs cleanups71aeb347ftest: fix OOM test flake9b9542cc5test: fix a flake in the manifest sync test863d882b6test: add image verification for factory.talos.devbba0b4aeechore(ci): nvidia update helm values3399ff4defix: propagate route table down to the resourcec684ec60echore: prepare for Talos 1.14 releaseed9545d0dchore(ci): bump gpu operator version4de3e4393fix(ci): cron triggered workflows212182e6fchore: bump container registry libraryc028db0b8fix: do not flip machine stage to rebooting during shutdown6ce62d9e8fix(ci): workflow runs withworkflow_run509cd9733fix: boot entry detection5e3f30188feat(ci): rework to schedule daily runs after a cron7fa4d3919fix: zfs extensions test1ef8e630atest: allow more tests to run in FIPS strict modebdcc9321bfix: reduce memory dashboard usage2d177af82chore: update Syft to v1.42.4+patches0d8362119fix: return failed precondition on upgrade when not installedbe58eafabfix: wrong slot of encryption key was logged015081c76feat: update dependencies9fbb7c95dfix: audit trustd code for security986e97fc7feat: update Flannel to 0.28.4f3817d1d1chore: update sign images to support image name suffixe776721f3feat: update Kubernetes 1.36.0-rc.1f6e7346fafix: encode extra args fields in resources with new id3c7bb80bachore: bump tools3ba35c9b9chore(ci): nvidia try UKI boote3e8f01cachore: bump tools181584a5ffix: handle boot failurec464c7e88fix: upgrade API in maintenance mode (legacy)b7512d912feat: update Kubernetes to 1.36.0-rc.04ba11156frefactor: allow overriding out image name suffixc81aa125cfix: panic in reading PCR values6a3ab87c5feat(ci): add nvidia arm64 matrix21f459aabfix(talosctl): always use default GRPC dial optionsca208e514fix: validate hostDNS forwarding requires hostDNS to be enabled9fcb9e05bfeat: bump go to 1.26.20bfdf7f70fix: create correct blackhole routes for IPv452b920032feat: add client-side Kubernetes node drain to reboot and upgrade commands968ec1e0crefactor: propagate NAME properly, allow to set on buildacc69c346fix: set the minimum TLS version to 1.30cfa6e302chore: bump some tool dependencies4229bb9d2feat: add dis-vulncheck toold697f5538fix: don't set xattrs while decompressing extensions34fb2cbe5refactor: remove manual shell completion and replace with cobra completion79fa2e300feat: allow more nvidia and nvme files from extensions414f78a29feat: allow glibc ld files in etc1bbba4301feat: update Flannel to v0.28.255815e0fafix: handle ISOs with zeroes in volume labels7b6ab0c1cfeat: add flag to force fallback to legacy upgrade5e24d5265feat: add resource view to talosctl dashboard649ab7fe4fix: add os:meta:writer role to the dashboard10cdfa909fix: drop talosctl install087ced85ffix: unseal with "slow" TPM11ab0a8c5fix: drop unused type from ExternalVolume schemae2df0f6cefix: always grow disks919d8c365chore: drop debug shell783a35851fix: add metal-agent mode to runtime capabilities37b2221ccdocs: add SECURITY-INSIGHTS.yml for OSPS Baseline QA-04.01bed2bd414feat: add graceful power off support to QEMU VM launcher3400059ccfix: incorrect route source for on-link routesb3dfbf743feat: bump musl to 1.2.64227921b3test: fix the PKI mismatch test flakef2bc2dcc6feat: update NVIDIA production drivers to 595.58.03aa5946dd3test: fix cron failures for provision-1 & provision-21dd701efafix: allow blockdevice wipe in maintenance mode786bf00abfeat: add --platform=all support to image cache-createe1f645e3cfeat: validate luks headers for tamperingad72c7300test: improve maintenance API provision tests70cefab6atest: fix the flakes in tests with trusted rootsaacff17f4test: bump memory for Flannel netpolicy tests9c3459114feat: update Linux to 6.18.19, CNI to 1.9.1038cb8735feat: enforce PID check on connections to services over file socketse2b2dd3eachore: update go-kubernetes library9597714f6fix: add symlinks nvidia-ctk and nvidia-cdi-hook in /usr/bin8ac47d677fix: unset rlimits for extension servicesb1a02f368feat: update Kubernetes to 1.36.0-beta.0362fdc9ecfeat: update etcd to 3.6.90a47f40b3fix(machined): clear stale bond ARP/NS targets on decode86344639ffix: update diff library to v1.0.1eff89d1edfix: panics in diff algorithms8e1c8a7a9test: fix the apid test against AWS/GCPChanges since v1.14.0-beta.0
39 commits
1ab88f743fix: load the raid1 module for configured MD arrays9e8568d26fix: use inmem containerd for installs/upgrades8cf28da5ffix: preserve kmsg reconciliation after config changes311b6fde9fix: make reset during boot phase more robust945d1cdabfeat: bump kernel to 6.18.414e77d40e8fix: restore the systemd-timesync best-sample check in spike detection4444a187dtest: inspect host mount state from the current threadb7c0497b0fix: race between vol.cfg. and vol.mgr. ctrlef9a091ecfeat: allow attaching extra disks to controlplane machinesa418c0e1etest: fix CRI restart event assertion racea9bfdbdd4fix: ignore insecure-only imager assets54e3b20e8fix: hold the darwin vmnet bridge open for the network lifetimebc59389fafix: drop the OOM config rule about overall system memory PSI69be56ea9chore: add some initial set of libvirt SELinux policies6170ad8b9fix: validate kubespan & discovery config correctly for multi-doc6e58c6d5atest: fix ded. vol. plumbing in integration testsb644d1640fix: allow directory-backed volumes in reset api28e7a8742feat: bump etcd to v3.7.12c657c224feat: bump kernel to 6.18.40b1bdc8c07test: restart qemu process several times on startup failures7533057a7feat: support route imports between BGP instancesa94783704docs: remove duplicated docs in the markdown for CLI6f17c5033fix: verify the public key signed images correctly570fe34f0fix: generate backwards compatible etcd encryption configf7790816efix: use context without cancelation for etcd locks67e61ef30feat: add the fs_scrub controller1c156458afix: override DHCP search domains via explicit ResolverConfig domainsfd8dbd8a1fix: skip pod check if desired number of pods is zero9aede5429feat: add kubeimportlinter for versioned k8s importsae93d1462fix: redact resource specs in the merge controllersfc5743cd0feat: add GrubUseUKICmdline install option6bba77724feat: add named native BGP instancesc5ab22f1dfeat: move Talos API access from Kubernetes config to multi-docb1abd9c03fix: split the up/finished service events644ecbc66feat: add discovered volumes status controller6be2b1384feat: add veth pair support7514401defix: drop the controlplane static pod change9a521f667fix: preserve container tasks across CRI restarts9048d4157fix: fix a nil-map assignment panic in configpatcherChanges from siderolabs/gen
1 commit
c526410fix: skip unknown-key check for types with custom YAML unmarshalerChanges from siderolabs/go-adv
2 commits
3818a65feat: initial implementation95e583cInitial commitChanges from siderolabs/go-cmd
2 commits
a2a31d3chore: run rekres584337bfeat: add StartWithOptions for streaming long-running processesChanges from siderolabs/go-kmsg
1 commit
65e97cbfix: boot time offset calculationChanges from siderolabs/go-kubeconfig
2 commits
d0b8f82chore: rekres and bump depsc356eebfix: fix context conflict detection add New() constructorChanges from siderolabs/go-kubernetes
7 commits
0caf1f2feat: add Kubernetes 1.37 compatibility822b7a2feat: add nodedrain package for client-side cordon and drain260bc0afix: update authorization config apiVersion for K8s >= 1.32cc8c2c9fix: return the apply results in a consistent order131a2bdfix: handle cluster-scoped resources with a ns correctly38c182ffix: normalize the changeset to be keyed without apiVersionca35008feat: update k8s api to 0.36.0Changes from siderolabs/go-smbios
1 commit
063f5dcchore: rekres + new testdataChanges from siderolabs/go-talos-support
2 commits
59d47affeat: rewrite support bundle library around client provider8dd4326feat: support encryption of the support bundle using ageChanges from siderolabs/grpc-proxy
3 commits
d670c42chore: bump dependencies8614c71chore: bump deps80677e0fix: propagate the headers before the messageChanges from siderolabs/pkgs
119 commits
aa8d7d6feat: bump kernel to 6.18.41b253464feat: enable PCF8523 RTC support for arm640383b09feat: bump kernel to 6.18.4037184f0feat: enable CONFIG_NFT_SOCKET in the kernelf78e3dcfeat: update cryptsetup to 2.8.78c5831cfeat: update dependencies0de2a61feat: update Linux to 6.18.39c652074feat: enable UFSHC and some other optionsc4b550cfeat: bump dependenciesde07964feat: enable CONFIG_IOMMUFD and CONFIG_VFIO_DEVICE_CDEV6a9c40cchore: bump tools 2026-07-1461e3ed9chore: bump bldr to v0.6.1981029echore: bump nvidia to 580.167.08ff9a355chore: bump deps (minor)0b2474echore: bump deps (patch)94a16efchore: bump toolchain6dcf355feat: enable devmapper plugin in containerd build03534a5fix: enable CONFIG_IFB as a modulea264237feat: update DRBD to 9.3.33f09c0cchore: update toolchain and tools6c08c46feat: bump kernel to 6.18.387c4fe92feat: build runs with libpathrs (only amd64)8922b6dfix: correct finalize destination pathae0d701fix: use non-conflicting name for mdadm5186a65feat: add mdadm package for software RAIDe09f9fbfeat: bump kernel 6.18.378d23631feat: update Linux firmware to20260620343557feat: update runc to 1.5.055d3676feat: bump dependenciesea48e8bfix: patch Linux kernel for tunnel metadata buffer overflowff80d88feat: add support for AMD XGBE driver9f8ab22feat: enable NF_TABLES_ARP optionbedfbebfeat: update Linux to 6.18.36a9f2bb3chore: bump containerd to 2.3.273e76f8chore: upgrade runc to 1.5.0-rc.328db1cachore: update nvidia driver lts to 580.167.085df1a44chore: update zfs to 2.4.3cd77c4fchore: update dependencies 2026-06-160f27eccfeat: bump runcd213ff5feat: bump OpenSSL to 3.6.3cb713aefeat: bump kernel to 6.18.3509cb04efix: avoid page_table_check BUG on time namespace VVAR pagebfb88f6feat: add nvidia-fs kernel modulef2850d1feat: enable USB hiddev for apcupsd support55aa64ffeat: bump go to 1.26.4f27dbe1feat: bump kernel to 6.18.34aa9fe00feat: add DVB USB Modules0870a4bfeat: bump dependenciesf9134e5fix: enable CONFIG_BCM2712_MIP as built-in in arm64 kernel config285c6aefix: set usermode static helper to machinebd2a754feat: pre-generate drbd patches using spatch out of tree898844efeat: update Linux to 6.18.33a8dfbf7fix: disable kernel modprobe pathc542950fix: pull in tools with zstd sbomc0ec8f3feat: enable PPP and INFINIBAND_BNXT_REc62c4e1feat: update containerd to 2.3.1270f9f8chore: update deps4f7feb4feat: enable more options for CRI-U checkpoint/restore87994f7feat: move autoloadable stuff as modules80c27f3fix: drop legacy network protocolsfbb7360feat: drop legacy iptables/ebtables supporteac5f86feat: bump kernel 6.18.32d616f6cfeat: update Linux to 6.18.3102bcfcefix: macb silent TX stall on BCM2712/RP1 (v2 patches from netdev)12ca698feat: update ZFS & NVIDIA LTS9fff943feat: update Linux to 6.18.30c5a1685feat: move HWMON as modulesb2a45fbfeat: move CONFIG_INTEL_IOATDMA as a moduleea8d35ffeat: move ACPI device drivers as modules501ba58feat: move HID quirks as modulesb35312cfeat: move PS/2 mouse drivers as modules3a5d9d7feat: move IPMI driver to be a module792a69afeat: disable AGP drivers99990b4feat: move Hyper-V drivers as modulesfb697d6feat: move Xen frontend drivers as modules1df1713feat: move ATA / MMC controllers as modulesf7f9341feat: move USB class drivers as modulesba873e9feat: move USB host controllers as modules8f25baafeat: move virtio bus stuff as modulesd0c5480feat: bump kernel to 6.18.29dfb09f0feat: bump kernel 6.18.28c97bc24feat: update Go to 1.26.3dfe8926feat: add btrfsprogs06ff9dcfeat: update Linux to 6.18.272265fc9feat(kernel): backport two PCI bridge realloc fixes from v6.195a21d99feat: bump dependenciescb3f406feat: update containerd to 2.3.0e192574feat: update Linux to 6.18.26e5e6cb8feat: update DRBD to 9.3.277538b1feat: update NVIDIA driversadeaafcfeat: preserve System.map on kernel buildsc77f985fix: disable legacy framebuffer drivers8f3ef77fix: enable safesetid LSMf82d3affix: disable CONFIG_DEVPORTb189a96fix: disable crypto user API9a718f6docs: list net macb silent TX stall fixes in kernel/build/patches/README.mdca3599ffix: macb silent TX stall on BCM2712/RP1 (RFC patches from netdev)6a53a93feat: bump kernel to 6.18.25f567bcefeat: disable more stuff in Kconfigffd9790feat: bump kernel to 6.18.24b7c709afeat: bump depse5e5b3cfeat: update Linux to 6.18.231a4cd20fix: renovate configd0ed6edfeat: update dependencies6ea49c7fix: support disabling module signature verification6520ec4feat: update containerd to 2.2.337ce992feat: enable CONFIG_UHID and CONFIG_INPUT_JOYDEV as modulescddd934feat: update backportable dependencies32e4077feat: update OpenSSL2d241e7feat: update Go to 1.26.2 and small deps updates7f540cefeat: disable dynamic SCS3bef043feat: update runc to 1.4.2c6e6f10feat: update Linux to 6.18.21a9e8afafix: libarchive install prefixe4d0113feat: update for musl 1.2.69142603feat: update NVIDIA production to 595.58.0322fa669feat: update Linux to 6.18.1903680aefeat: update containerd patch verifier rolebdc239efeat: enable CHECKPOINT_RESTORE optionChanges from siderolabs/proto-codec
1 commit
9b8a14echore: bump dependenciesChanges from siderolabs/siderolink
1 commit
0a1933cchore: bump dependenciesChanges from siderolabs/tools
27 commits
08071b1feat: update dependencies2723c06chore: bump pkgfile bldr to v0.6.1d333b32chore: bump toolchain to latestc7494c6chore: deps 2026-07-13 (major bumps only)57a0183chore: deps 2026-07-13 (minor bumps only)21db13echore: deps 2026-07-13 (patch only)7079a8achore: bump toolchain5326524feat: build LLVM as cross-compiling878f1dbfeat: bump dependencies0f1c859chore: make rekres5c0c9bechore: update dependencies 2026-06-16b88d99cfeat: bump OpenSSL to 3.6.342c59b9feat: bump toolchain to bring in Go 1.26.4206a4c0feat: update dependencies, rework LLVM buildf9f37dffix: add proper name for zlib-ng sbomaa45c41fix: add SBOM for zstd library808f34ffeat: update Go to 1.26.35dfe83dfeat: drop fakeroot and policycoreutils618fd20feat: add Python wheel packagedf3c1b7feat: bump dependencies44ad18cfeat: bump depsf3d0dd9fix: renovate configs4ac4449feat: update dependencies027744ffeat: bump OpenSSL to 3.6.27067f1ffeat: update util-linux to 2.41.46cb3e56feat: update Go to 1.26.29186c5ffeat: update musl to 1.2.6Dependency Changes
5adc3eb->c76316d310581b->c87a4186706a29->93566ba31e136bnew8ae5a48newPrevious release can be found at v1.13.0
v1.14.2Compare Source
Welcome to the v1.14.0-beta.1 release of Talos!
This is a pre-release of Talos
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
DNS over TLS (DoT) and DNS over HTTPS (DoH) Support
Talos now supports DNS over TLS (DoT) and DNS over HTTPS (DoH) for secure DNS resolution.
These features allow Talos to encrypt DNS queries and responses, enhancing privacy and security for DNS traffic.
The DNS protocol can be configured on a per-name server basis in the
ResolverConfigdocument, allowing for flexible configuration of DNS resolution.noexec on EPHEMERAL (/var)
Talos 1.14 clusters now default the EPHEMERAL volume (
/var) tonoexecin addition to the existingnosuidandnodevmount options through generated machine configuration.
Existing machines are not affected on upgrades.
Note: Workloads that execute binaries placed under
/varcan break on new machines.Longhorn v1 and vCluster are known to be affected.
For example, Longhorn v1's
instance-managerexecutes engine binaries that theengine-imageDaemonSet places under/var/lib/longhorn/engine-binaries/, which now fails withpermission denied.Affected users can opt out via a
VolumeConfigdocument:Longhorn v2 (SPDK data engine) runs the data plane inside the instance manager process and is not affected.
Apply Configuration Modes
The '--mode=reboot' option has been removed from the
talosctl apply-configcommand; by default, configuration is applied without a reboot.Most configuration changes don't require a reboot; the documentation lists the changes that do.
Native BGP
Talos now supports running native BGP routing instances on the host via embedded GoBGP servers, configured with
BGPInstanceConfigdocuments.This removes the need to ship FRR as a system extension for the common fabric-facing use case.
List of changes:
BGPInstanceConfigdocuments to configure local ASN, router-id, optional Linux VRF, advertised interfaces, neighbors, and per-route preferred source (routeSource).installRoutes: falseto retain learned routes in the BGP RIB without installing them into the Linux routing table.importRoutesprefix selectors. Imports are one-way, preserve path attributes, and do not recursively import locally originated or previously imported paths.BGPPeerStatusresources (talosctl get bgppeerstatus).RouteSpec/RouteStatusnow carry a multipath next-hop list to support ECMP and cross-family (RFC 8950) next-hops.Btrfs Support
Talos now supports mounting and provisioning
btrfsfilesystem for user volumes and existing volumes.Support for
btrfsis enabled by installingbtrfssystem extension.CRI Base Runtime Specification Configuration
Talos now supports overriding the default OCI runtime specification for CRI containers with a
CRIBaseRuntimeSpecConfigdocument:The
.machine.baseRuntimeSpecOverridesfield is deprecated and remains supported during the deprecationperiod. It is mutually exclusive with
CRIBaseRuntimeSpecConfig; configurations containing both are rejected.Applying, updating, or removing either source regenerates the base runtime specification and restarts CRI
automatically. A machine reboot is no longer required.
CRI Customization Configuration
Talos now supports customizing the CRI containerd configuration with named
CRICustomizationConfigdocuments. Each document contains a TOML fragment; fragments are merged in lexicographical order by name.
Applying, updating, or removing these documents updates the generated CRI configuration and restarts CRI
automatically.
The legacy
/etc/cri/conf.d/20-customization.partmachine-file configuration remains supported during thedeprecation period and is exposed under the reserved name
customization. ACRICustomizationConfigdocumentcannot use that name.
NOTE: a machine reboot is no longer required to apply changes to CRI configuration.
Containerd NRI
Talos no longer disables NRI (Node Resource Interface) for the CRI containerd instance by default, so NRI is available
to use without any machine config patches.
To bring back the old behavior of NRI disabled by default, add the following machine configuration document:
Default Installer Image
The default installer image has been updated to use the Image Factory.
The
ghcr.io/siderolabs/installerimage is no longer published with releases; use the Image Factory installer image instead.DHCP
DHCPv4 search domains are now applied to the resolver configuration.
DHCPv4 configuration now supports
ignoreRoutesoption to ignore routes provided by DHCPv4 servers.Cluster Discovery
Talos introduces support for configuring multiple discovery service endpoints.
Talos introduces new document for configuring the cluster discovery identity.
List of changes:
.cluster.discoveryin the v1alpha1 config; use theDiscoveryServiceConfigdocument for discovery service configuration. The v1alpha1 config andDiscoveryServiceConfigare mutually exclusive..cluster.secretandcluster.idin the v1alpha1 config; use theDiscoveryIdentityConfigdocument for discovery identity configuration. The v1alpha1 config andDiscoveryIdentityConfigare mutually exclusive.base64.URLEncodingtobase64.StdEncoding. This aligns the encoding with the rest of Talos.Encryption Discards
Volume encryption now supports an
allowDiscardsoption (disabled by default) which passes TRIM/discard requeststhrough to the underlying device when the encrypted volume is opened.
This only enables passing discards through to the underlying device; Talos does not perform any fstrim/discard operation by itself.
etcd
Talos is now compatible with etcd v3.6.x only (the default etcd version was 3.6.x since Talos v1.11).
The default version is 3.7.0+ now.
etcd now serves its HTTP-only endpoints (
/metrics,/health, the gRPC-gateway JSON API) on a dedicatedlistener on port
2383, while the client port2379serves gRPC only. This keeps gRPC off Go'snet/httpHTTP/2 server, avoiding watch-stream starvation under TLS (see etcd-io/etcd#15402, golang/go#58804,
etcd-io/etcd#21605).
Upgrade note: etcd metrics and the HTTP health endpoint are no longer reachable on
2379; scrape them onport
2383instead (same client mTLS as before). etcd gRPC clients and the Talos health check are unaffected.Firewall might need to be adjusted to block the port
2383if previously2379was blocked.If
--listen-metrics-urlswas customized, the metrics should not move.EtcFileConfig
Talos now supports managing user-owned files under
/etcwith the newEtcFileConfigmulti-documentconfiguration kind. The document
nameis the path relative to/etc, and each document owns the completefile contents and mode.
This can be used to configure files such as
/etc/nfsmount.confor/etc/multipath.conf. Talos-managedpaths, including
resolv.conf,hosts,machine-id, CRI and Kubernetes configuration, trust bundles, andidentity files, are rejected to prevent overriding files owned by Talos.
Filesystem Trim
Talos can now periodically trim (the equivalent of the
fstrimcommand) mounted filesystems which support trimming,discarding unused blocks. This is useful for SSDs and thin-provisioned storage.
Trimming is opt-in via a new
FilesystemTrimConfigdocument which sets the global trim interval:The default machine configuration for Talos 1.14+ includes a
FilesystemTrimConfigdocument with a default trim interval of one week,so trimming is enabled by default for eligible filesystems. For cluster which were upgraded from older versions, the
FilesystemTrimConfigdocument will be missing,so trimming will be disabled by default until the document is added.
When the document is present, Talos builds a stable schedule (hashed by node ID and volume ID, so trims are spread out
across volumes and across nodes in a cluster) and trims eligible volumes (ready disk/partition volumes with a
trim-capable filesystem; for encrypted volumes only when
allowDiscardsis set).The trim interval can be overridden or disabled per-volume via a
trimblock on the volume documents(
VolumeConfig,UserVolumeConfig,ExistingVolumeConfig,ExternalVolumeConfig):Flannel CNI
Talos now configures Flannel with the
EnableNFTablesoption enabled, which uses nftables native backend instead ofiptables-nftcompatibility layer.FlexVolume Host Path Removed
Talos no longer provisions the deprecated FlexVolume executable host path at
/usr/libexec/kubernetes. FlexVolume has been deprecated since Kubernetes 1.23.Modern CSI plugin paths under
/var/lib/kubeletare unaffected.Host DNS Configuration
HostDNS configuration was moved from the v1alpha1 config
.machine.features.hostDNSfield to the newhostDNSin theResolverConfigdocument.HTTP Probe Support
Talos now supports HTTP network probes, allowing for monitoring of HTTP endpoints.
HTTP responses with status 200-399 are considered successful, while connection and transport errors are treated as failures.
Image Cache Configuration
Talos now supports a new
ImageCacheConfigdocument for configuring the Image Cache feature, replacing the oldmachine.features.imageCachefield in the v1alpha1 config.Old configuration is still supported for backwards compatibility.
Kernel Multi-document Configuration
Talos introduces new multi-document configuration for kernel parameters (sysctl and sysfs settings), replacing the old v1alpha1 config fields.
The old configuration is still supported for backwards compatibility, but new deployments should use the new documents.
If both old and new configuration sources are used, the new multi-document configuration takes precedence over the old v1alpha1 config on conflicting fields.
List of changes:
.machine.sysctlsin the v1alpha1 config; use theSysctlConfigdocument for kernel sysctl configuration..machine.sysfsin the v1alpha1 config; use theSysfsConfigdocument for sysfs configuration..machine.kernelin the v1alpha1 config; use theKernelModuleConfigdocument for kernel module configuration.Kernel Module Status
Talos now reports the status of both dynamically loaded, and built-in kernel modules.
The
LoadedKernelModuleresource has been deprecated and superseded by the newKernelModuleStatusresource.In-tree Volume Plugins Deprecated
Because the kubelet now runs inside the sandbox namespace (see the workload isolation note), the in-tree
Kubernetes volume plugins that require the kubelet to reach host-level daemons no longer work. In particular
the in-tree
iscsivolume plugin, which drives the kubelet'siscsiadmwrapper to talk to the hostiscsid,can no longer locate it across the sandbox PID namespace boundary.
Use CSI drivers instead — a CSI node plugin performs the attach/mount itself in its own privileged pod and is
unaffected by the sandbox. For iSCSI,
kubernetes-csi/csi-driver-iscsi(ordemocratic-csi) consumes atarget the same way. All in-tree (non-CSI) volume plugins are deprecated for the kubelet and support for them
may be removed in a later release.
Kubernetes Multi-document Configuration
Talos introduces new multi-document Kubernetes configuration, which allows for more flexible and modular configuration of Kubernetes components.
Talos still supports the old v1alpha1 config for backwards compatibility, but new features and fields will only be available in the new multi-document format.
The
kube-proxyis now using configuration to manage its settings instead of command line arguments (with newKubeProxyConfigdocument).List of changes:
.cluster.secretboxEncryptionSecretin the v1alpha1 config; use theKubeEtcdEncryptionConfigdocument for full etcd encryption configuration..cluster.apiServerin the v1alpha1 config; use theKubeAPIServerConfig,KubeAdmissionControlConfig,KubeAuditPolicyConfig,KubeAuthenticationConfigandKubeAuthorizerConfigdocuments for kube-apiserver configuration..cluster.ca,.cluster.acceptedCAsand.cluster.aggregatorCAin the v1alpha1 config; use theKubeAPIServerCAConfig,KubeAggregatorCAConfigdocuments..cluster.controllerManagerin the v1alpha1 config; use theKubeControllerManagerConfigdocument for kube-controller-manager configuration..cluster.schedulerin the v1alpha1 config; use theKubeSchedulerConfigdocument for kube-scheduler configuration..cluster.proxyin the v1alpha1 config; use theKubeProxyConfigdocument for kube-proxy configuration..cluster.networkin the v1alpha1 config; use theKubeNetworkConfigdocument for Kubernetes network configuration; Flannel can be configured using theKubeFlannelCNIConfigdocument..cluster.coreDNSin the v1alpha1 config; use theKubeCoreDNSConfigdocument for CoreDNS configuration..cluster.nameand.cluster.controlPlane.endpoint in the v1alpha1 config; use theKubeClusterConfig` document for cluster name and control plane endpoint configuration..cluster.allowSchedulingOnControlPlanes.machine.kubelet.skipNodeRegistration.machine.kubelet.registerWithFQDN.machine.kubelet.nodeIP.machine.nodeLabels.machine.nodeAnnotations.machine.nodeTaintsNoScheduletaint for controlplane and label are now explicitly listed inKubeNodeConfig..machine.kubeletfields in the v1alpha1 config; use theKubeNodeConfigandKubeCredentialProviderConfigdocuments for kubelet configuration..machine.podsin the v1alpha1 config; use theKubeStaticPodConfigdocument for static pod configuration..machine.filesin the v1alpha1 config; use dedicated configuration documents such asEtcFileConfigandCRICustomizationConfiginstead..machine.baseRuntimeSpecOverridesin the v1alpha1 config; use theCRIBaseRuntimeSpecConfigdocument for base runtimespec overrides..cluster.inlineManifestsin the v1alpha1 config; use theKubeInlineManifestConfigdocument for inline manifests..cluster.extraManifestsand.cluster.extraManifestHeadersin the v1alpha1 config; use theKubeExternalManifestConfigdocument for external manifests..machine.features.kubePrism; use theKubePrismConfigdocument for KubePrism configuration (or remove it to disable KubePrism)..machine.features.kubernetesTalosAPIAccess; use theKubeTalosAPIAccessConfigdocument instead.nodeCIDRMaskSizeIPv4(default24) andnodeCIDRMaskSizeIPv6(default64) settings to theKubeNetworkConfigdocument to control the per-node pod CIDR mask size and validate the pod and service subnet sizes.LVM Logical Volume Creation
Logical volumes can now be declared with a new
LVMLogicalVolumeConfigmulti-doc config kind. Each documentnames a logical volume, its parent
volumeGroup, atype(linear,raid0,raid1orraid10) and amaxSize(absolute, e.g.50GiB, or a percentage of the volume group, e.g.80%). RAID layouts acceptoptional
mirrors(raid1/raid10, default 1) andstripes(raid0/raid10, default: all available physicalvolumes) fields. Once the volume group is assembled the logical volume is created via
lvcreate.Raising
maxSizegrows an existing logical volume vialvextend; percentage-sized volumes also grow whentheir volume group is extended. Shrinking is never performed (it risks data loss) - a request to reduce the
size surfaces an
LVMValidationErrorinstead. Removal stays an explicit operation via the LVMService LVremove RPC (
talosctl wipe lv).LVM Status
Talos now provides detailed LVM status information, allowing for better monitoring and management of LVM volumes.
New resources
LVMPhysicalVolumeStatus,LVMVolumeGroupStatus, andLVMLogicalVolumeStatusexpose PV, VG, and LV details.DiscoveredVolumeresources for logical volumes are listed by their kernel name (e.g.dm-0). To resolve the<vg>/<lv>for a given device, use theDisksorBlockSymlinksresources, which carry the udev-managed symlinks (e.g./dev/disk/by-id/dm-name-<vg>-<lv>).LVM Volume Group Creation
Talos can now create and grow LVM Volume Groups declaratively through a new
LVMVolumeGroupConfigmulti-docconfig kind. Each document names a Volume Group and a CEL
volumeSelectorover the disk inventory; matcheddisks are initialised as Physical Volumes (
pvcreate) and aggregated into the requested VG (vgcreate).Newly matched disks added to an existing VG are attached via
vgextend.Reconciliation is strictly additive and safe-by-default.
LVM Wipe
Talos now provides the ability to securely wipe LVM metadata from logical volumes, volume groups, and physical volumes.
This feature allows for selective wiping of logical volumes, volume groups, and physical volumes.
With
talosctl wipe lv/vg/pv <name>, users can wipe LVM metadata from a specific logical volume, volume group, or physical volume.NTS for Time Synchronization
Talos now supports Network Time Security (NTS) for secure time synchronization.
This feature enhances the security of NTP by providing cryptographic authentication of time sources.
NTS is enabled by default (without any configuration sources) for the default
time.cloudflare.comtime serverNTS can be enabled for custom time servers via the new
useNTSfield in theTimeServerConfigdocument.RAID Array Creation
Talos can now create and grow Linux MD (software RAID) arrays declaratively through a new
RAIDArrayConfigmulti-doc config kind. Each document names an array, its
level(raid1) and a CELvolumeSelectoroverthe disk inventory; matched disks are assembled into the requested array with
mdadmand exposed at the stable/dev/disk/by-id/md-name-<name>path. New matching disks added to an existing array are attached automatically.Reconciliation is strictly additive and safe-by-default. Arrays are never destroyed by removing the config;
removal stays an explicit operation via
talosctl wipe md <device>. The newMDArrayStatusresource reports theassembled array, level, device path, and members.
Booting from a RAID Array
Talos can now be installed onto and boot from a Linux MD (software RAID) array. Define a
RAIDArrayConfigfor thearray and point the install disk selector (
UnattendedInstallConfig) at the resulting/dev/disk/by-id/md-name-<name>device.
Only
raid1arrays withmetadata: "1.0"can be used for booting: the 1.0 format keeps its superblock at the end ofeach member, so the partition table written to the array stays visible at the start of every disk, allowing the
firmware to boot from any member.
metadatadefaults to1.0; other levels and metadata formats are not bootable.Workload Isolation (sandboxd)
The container runtime plane — CRI containerd, the kubelet, and all pods — now runs inside a dedicated PID and
mount namespace anchored by a new
sandboxdservice, instead of sharingmachined's namespaces.sandboxdruns in its own least-privilege SELinux domain (sandboxd_t). if it dies the kernel tears down thenamespace and Talos recreates it — relaunching CRI, the kubelet, and pods — without rebooting the node.
Its logs are available via
talosctl logs sandboxd.Workload isolation is controlled by the
workloadIsolationfield of the newSecurityProfileConfigdocument.talosctl gen configemits it withworkloadIsolation: truefor Talos 1.14+, so new clusters are isolated bydefault. Clusters upgraded from older versions do not have this document and therefore keep the previous
(non-isolated) behavior until it is added — upgrades change nothing on their own. To enable on an existing
cluster, add the document:
ICMP send_redirects Disabled by Default
Talos now sets
net.ipv4.conf.all.send_redirects=0andnet.ipv4.conf.default.send_redirects=0by default,preventing the node from emitting ICMP redirect messages. This aligns with CIS Benchmark recommendations and
does not affect normal Kubernetes pod or service traffic. Nodes that deliberately act as L3 gateways relying
on ICMP redirects can override this via
machine.sysctls.Support Bundle Encryption
The
talosctl supportcommand now encrypts support bundles using the age encryption tool, enhancing the security of support data.The default set of recipients includes the 'siderolabs' GitHub organization members, but it can be overridden with custom recipients.
Dedicated System Volumes
The
ETCD,CRI,KUBELETandLOGsystem volumes (/var/lib/etcd,/var/lib/containerd,/var/lib/kubeletand/var/log) can now be placed on dedicated partitions via aVolumeConfigdocument withprovisioningset (optionally encrypted). By default they remain directories under theEPHEMERALvolume.The backing (directory vs. dedicated partition) is fixed at cluster creation: switching an already-provisioned node between the two is rejected.
A dedicated partition has its own mount, so the
mount.secureoption (nosuid/noexec/nodev, enabled by default) can be set per volume; directory-backed volumes inherit theEPHEMERALmount options.Note that with
ETCDon a dedicated partition, etcd data no longer lives underEPHEMERAL. Resetting a control plane node with only theEPHEMERALpartition wiped will not clear etcd data; wipe theETCDvolume to reset etcd.TLS 1.3 Minimum Version
Talos now runs etcd and kube-apiserver with a minimum TLS version of 1.3, improving security by leveraging the latest TLS features and cipher suites.
Custom settings for cipher suites have been removed, as they are ignored when TLS 1.3 is used, which simplifies configuration and ensures the use of modern, secure defaults.
Udev Rules Multi-document Configuration
Talos introduces new multi-document configuration
UdevRulesConfigdocument for configuring custom udev rules.The old v1alpha1
.machine.udev.rulesfield is still supported for backwards compatibility, but new deployments should use the new document.If both old and new configuration sources are used,
UdevRulesConfigtakes precedence.List of changes:
.machine.udev.rulesin the v1alpha1 config; use theUdevRulesConfigdocument for custom udev rules.Unattended Install Configuration
Talos introduces a new
UnattendedInstallmulti-document config kind which replaces the deprecated.machine.installsection of the v1alpha1 config. The document carries the installer
imageand aprovisioningsection with a CELvolumeSelectorto match the install disk, plus awipeoption.When the
UnattendedInstalldocument is present, the install is driven by the newUnattendedInstallController(exposing an
UnattendedInstallStatusresource) instead of the legacy install sequence.talosctl gen configandtalosctl cluster createnow generate theUnattendedInstalldocument by default.The
.machine.installfield remains supported for backwards compatibility and is still used for older version contracts.Component Updates
Linux: 6.18.41
Kubernetes: 1.37.0-beta.0
containerd: 2.3.3
etcd: 3.7.1
Flannel: 0.28.8
runc: 1.5.1
CoreDNS: 1.14.6
Talos is built with Go 1.26.5.
Virtual Ethernet Pairs
Talos now supports declarative virtual Ethernet (
veth) pairs through the newVethConfigmulti-documentconfiguration kind. Both endpoints are created in the host network namespace and support the common link settings,
addresses, routes, and multicast configuration.
For example, the following configuration creates a pair named
veth-hostandveth-routerwith an address on eachendpoint:
XFS Allocation Group Geometry
On non-rotational devices
mkfs.xfssizes the allocation group count to the number of CPUs, bounding theallocation group size from below at 4 GiB only. On machines with many cores and a modest disk this produces
hundreds of tiny allocation groups, which squeezes the AG-local reflink/rmap metadata (leading to spurious
ENOSPCon reflink-heavy workloads while the filesystem still has plenty of free space) and inflates thejournal at the same time.
Talos now keeps XFS allocation groups at 64 GiB or above when it formats a volume. The bound can be changed
per volume, and setting it to zero restores the stock
mkfs.xfsbehavior:The same
filesystem.xfs.minAllocationGroupSizesetting is available forUserVolumeConfig.Note: allocation group geometry is fixed when the filesystem is created, so this only affects volumes
formatted by Talos 1.14 or later. Existing volumes keep their current geometry until they are wiped and
re-created (e.g.
talosctl reset --system-labels-to-wipe=EPHEMERAL).XFS scrub
Talos now supports automatically running background online filesystem maintenance tasks. Currently,
only XFS using xfs_scrub tool is supported.
This behavior can be enabled globally using a FilesystemScrubConfig document, or on per-volume
basis using a field in corresponding VolumeConfig documents.
Contributors
Changes
487 commits
1ab88f743fix: load the raid1 module for configured MD arrays9e8568d26fix: use inmem containerd for installs/upgrades8cf28da5ffix: preserve kmsg reconciliation after config changes311b6fde9fix: make reset during boot phase more robust945d1cdabfeat: bump kernel to 6.18.414e77d40e8fix: restore the systemd-timesync best-sample check in spike detection4444a187dtest: inspect host mount state from the current threadb7c0497b0fix: race between vol.cfg. and vol.mgr. ctrlef9a091ecfeat: allow attaching extra disks to controlplane machinesa418c0e1etest: fix CRI restart event assertion racea9bfdbdd4fix: ignore insecure-only imager assets54e3b20e8fix: hold the darwin vmnet bridge open for the network lifetimebc59389fafix: drop the OOM config rule about overall system memory PSI69be56ea9chore: add some initial set of libvirt SELinux policies6170ad8b9fix: validate kubespan & discovery config correctly for multi-doc6e58c6d5atest: fix ded. vol. plumbing in integration testsb644d1640fix: allow directory-backed volumes in reset api28e7a8742feat: bump etcd to v3.7.12c657c224feat: bump kernel to 6.18.40b1bdc8c07test: restart qemu process several times on startup failures7533057a7feat: support route imports between BGP instancesa94783704docs: remove duplicated docs in the markdown for CLI6f17c5033fix: verify the public key signed images correctly570fe34f0fix: generate backwards compatible etcd encryption configf7790816efix: use context without cancelation for etcd locks67e61ef30feat: add the fs_scrub controller1c156458afix: override DHCP search domains via explicit ResolverConfig domainsfd8dbd8a1fix: skip pod check if desired number of pods is zero9aede5429feat: add kubeimportlinter for versioned k8s importsae93d1462fix: redact resource specs in the merge controllersfc5743cd0feat: add GrubUseUKICmdline install option6bba77724feat: add named native BGP instancesc5ab22f1dfeat: move Talos API access from Kubernetes config to multi-docb1abd9c03fix: split the up/finished service events644ecbc66feat: add discovered volumes status controller6be2b1384feat: add veth pair support7514401defix: drop the controlplane static pod change9a521f667fix: preserve container tasks across CRI restarts9048d4157fix: fix a nil-map assignment panic in configpatcher45eaf2037release(v1.14.0-beta.0): prepare release7e58e0442feat: add dedicated CRI configuration documents076c38136fix: race with PCR extensions and volume unlock88884194cfix: teardown ephemeral mount request during resetc793bcbf5fix: configure bonds during initial link creation9b3bf6e51fix(talosctl): prevent duplicate QEMU config server portsfa6cd1ca8fix(machined): preserve health when services reach running9d5554e69fix(machined): wait for host namespace commands through reaperfc08533bfchore: update dependenciesc08863cddfeat: provide different heuristics for xfs allocation groupse955d9bd7feat: update CoreDNS to 1.14.6c3f757f9efeat: update Flannel to 0.28.8fada0d960fix: provide non-sensitive KubeletStatus resourcec68085286fix: volume mount race (third attempt) around service restartb185752e5feat: refactor KubePrism config into multidoc499d4ebf9test: update Calico in canal reset test5b6ed0068test: add a test for kata-qemu runtime class1a075383afeat: allow "duplicate" kinds in the config patches06943be9efeat: update Kubernetes to 1.37.0-beta.001f2a1423fix: preserve trailing rate-limited trigger events46fab8057test: stabilize AWS readiness and Talos 1.13 QEMU configa26ac746dfeat: move static pods and manifests into multi-doc67464cbeffix: update the vulnerability dates and description4920ee06ffeat: update Linux to 6.18.39286fa8006feat: include CA into kube-apiserver serving certificate6d65e223bfeat: drop kubernetes flexvolume mounts4935e9452feat: refactor kubelet's config intoKubeletConfig241bd0ff1feat: custom cfg for system volumes (cri, kubelet, etcd)ea9557816fix: talosctl buildc2b763608feat: add UFSHC and some other modules2193b5781feat: native BGP support via embedded GoBGP2e42c5900fix: add ca-certificates to talosctl0f55e1f05feat: refactor Kubernetes configs intoKubeNodeConfig6efdc8f71fix: zero MD superblock via block wipe on destroyf78f5e5a1fix: vrf sorting77385181afix: oom podruntime protectionc1184d38efeat: update to runc 1.5.14bff7eb90feat: support reboot and sync for remote provisionerc791fa8c0feat: add host-namespace debug profilee370e40b7feat: implement KubeClusterConfig37c78bfc0fix(ci): skip ephemeral noexec test on 1.130ab6695e6feat: update Kubernetes to 1.37.0-alpha.3443ca17e1test: bump test dependenciesc4242088bfix: enablenoexecfor EPHEMERAL only for new machinesfc9f72648feat: bump CoreDNS, Flannel352b1bdebfix: use symlinks for init aliases883775a9efix: move sandboxd into a separate cgroup099a2cedafix: remote provisioner nameff67aaf32feat: bump go dependencies79c0c5414feat: add iommufd as a kernel modulef34e93fe2fix: do proper backoff for NTP Kiss-of-Death responsesa3e644d8dchore: bump tools and pkgsefa88f2f6fix: flaky tests17a134711feat: add ignoreRoutes option to DHCPv4 config document2519bf231fix: make audit restartable54b4bbc03fix: provide correct handler for Ctrl-Alt-Delete sequence87e126ab7feat: isolate cri, kubelet and pods in a sandbox namespace3fb8f4e9efix: avoid image cache mount request churn9753fc27ffix: e2e test flakesf756ff232feat: kubenetworkconfig supports per-node pod cidr configurationb42c42976fix(ci): fix more flaky tests5d97eccdffeat: bring in ifb.ko module6769a1d5cfix: terminate log persistence a bit harder98cce792ffix(ci): extensions test057d554d2test: assert dm transport for device-mapper disks9fd16a21efeat: bump etcd to 3.7.03048eeb23feat: support booting from MD RAID1 arraye1fc7a4a1fix: do not block volume lifecycle teardown on failed user volumes147dea148feat: add --no-reboot flag to upgrade cmd1b23b11fcchore: update pkgs and toolsbfa9fb4e8fix: flaky testsa1ede48cbtest: fix testremovemember etcd integration flakeea90e690dfeat: add MD RAID gRPC service and reconcile controllers74486ef6dchore: update depsf59c3ccadfeat: implement service account configurationbaff2d3f9test: fix some test flakiness5450ec303fix: use a forked version of secure-io/siv-go33fac3f85test: stabilize netapp trident csi fio runsafdde2a8fchore(ci): add netapp trident csi integration tests21eca156ffix: print link status changes210f4e369fix: shutdown/reboot via usermode helpersd193f278dtest: fix cilium test config patchinge06898069fix: flaky testsb7398ec00feat: move kernel module config into multi-doc55bc643affix: flaky serviceaccount suite testdced7d570fix: correctly treat guaranteed QoS pods in the OOM handlerf783f6636feat: implement controlplane only config validationd0291bb0bfeat: extract Kubernetes CA config into a separate document97ed958a8chore: use lefthook globs to skip noop jobsa145c6356chore: lefthook USERNAME env, post-commit hookf836707adfix: use UnattendedInstallConfig for extensions67293c809chore: add lefthook.yml726ea8fc2chore: switch v1alpha1 validation to use cluster config structd1d848022feat: add mdadm tooling and udev rules020de3f51chore: update go dependenciesae84f56a0chore: remove orphaned unattendedinstall.md416073748feat: add UnattendedInstall config and controller4e5b4c6a7feat: extract clusterid and clustersecret to discoveryidentityconfig0a641f268refactor: simplify device status controller99da7f27ffix: data race in manifest sync54ac1cbd6fix: provide cooldown period for the QoS trigger788562586feat: udevd controller and udev rules config document6e34da25cfeat: delegate drain ops to go-kubernetes/nodedraine9e027c63fix: kubelet stuck restarting6f481b420fix: decode extraArgs list values correctlyc8bdcc252feat: update runc to 1.5.0eae11ab0cfeat: allow user managed etc files47d4bd87efeat: set user-agent for Kubernetes clientba926c6cechore: update golangcilint config45497bd5bfeat: bring systemd 261.18d9ecec93refactor: improve stability for process_test.go31221e7eerefactor: talosctl running tasks are yellowb268a6b08feat: refactor CoreDNS config into multi-doc416d5fe4bfix: race in etcd member addc244e4c46fix: building integration test binary on darwinb15a64b31chore: bump rekor for GHSA-47q9-m4ww-924mcd8b0fe39release(v1.14.0-alpha.2): prepare release917820cb3chore: sync pkgs/toolsb34be14e9fix: cli.md codeblock generation25abcc6b5docs: update kubespanconfig to match discoveryserviceconfig742589f50feat: support multiple discovery service configsfc3f27d79chore: enrich the SBOM with Go module licenses47d5c3351fix: handle image cache being disabled1a965aec3test: disable LongHorn ublk test and add more cores6d03b3f61fix: align documented image cache partition label6447d854ffix(talosctl): use aio threads on darwinf856d1808fix: image verification with referrers11a7fbe4cfeat: extract kube-apiserver config into multi-doc configs337654d2btest: fix rook-ceph testse33a86825feat: add AMD XGBE driver to initramfsbd2d6242afix: revert coredns to 1.14.27c4e644f8feat: update Linux to 6.18.366e23a5c2fchore: refactor bare opentree_clone into a mount helperdfbd30959fix(talosctl): prevent appending type 11 smbios values on restart5926dd70dtest: support running integration test against remote provisionerf146c6a18feat: refactor /etc mountsebe364117chore: bump containerd to 2.3.2bc30c61a1chore: bump deps (go, k8s, docker)00d739d0atest: skip fstrim default schedule on cloud testsd9c6edf01fix: bump number of open files for etcd990c5395cchore: update tools and pkgs 2026-06-17325be7cd8refactor: config generate uses multi-doc sysctlconfigd6930633bfix: clean up and overhaul mount opsa0219404dfix: cgroups cleanup58d8b71c4fix: stop the log persistence and close all files on shutdown4b32ebc17refactor: simplify trustd/apid rootfs setupdc98e3553feat: implement filesystem trim support897bef633feat: introduce KubeProxyConfig multi-docebde543cffeat: introduce BootID resourcecd178b9f3fix: ensure consistent manifest apply order19fac6151feat: remote provisionerb6412e031fix: drop one more reference to removed 'nodes'be7f7a7dbfeat: add human-readable size fields to LVM resourcesd4e0ca1bafix: make LVM reconciliation robust and idempotent0dbc1e529chore(ci): fix flaky testb687a47abfeat: implement an option to allow discards on encrypted volumes3fc981c57fix: improve security of scheduler/controller-manager5d4af9f33fix: gracefully stop node containers before removalc1593d8a3fix: honor FailurePauseTimeout when pausing before reboot506dc1323feat: add imager flag to set the SecureBoot key enrollment mode5d4ba702erefactor: generate pod definitions in k8stemplates995bc30d5feat: drop apply config method reboot18f6cb4d0fix: increment time epoch on wall-clock jump when time sync is disabled755a8c8ebfeat: update etcd to 3.7.0-rc.0a0c76fad1feat(talosctl): implement cluster logsdb052165cfeat(talosctl): support rebooting cluster nodes0a04f463afeat(talosctl): use gateway dns for clustercf3eb1cadchore(talosctl): disable kexec for cluster create on arm64180182b0ffix: correct the link alias conditionac9014f05fix: introduce pull attempt stall detection for image pullf2286d616fix: move Flannel netpol patch to the controlplane9986c0b16feat: bump kernel to 6.18.35e8845fba6fix: route ProxyURL test via reachable endpoint44acedf30feat: add declarative LVM logical volume provisioningf6058a11bfeat: grab support bundle via client factorycdd719773feat: add CPUCores resource8e41eb1bdfeat: verify go.mod tidiness in generate targetb19e2ea42feat: add kube-apiserver probesa321a1dccfeat: support proxy-url in talosconfig contextbb2ac7546feat: parse schematic info out of extension status0c02a5a07fix: align flannel MTU with kubespan to avoid permanent fragmentation3d5fd822cfeat: expose disk firmware and BIOS version30115981cfix: relax LUKS header validation5923199fbrefactor: use ClientFactory for the action tracker72c0ced3crefactor: deprecate sysfs and sysctl in machineconfigee74a41fbfix: handle cluster-scoped resources with a namespace correctly9df5a647afeat: allow to disable access time for EPHEMERAL partition9b667dbdechore: fix lint error in test311378386test: increase resource inmem buffer to stabilize the tests6f85ce3d2docs: hack/release.toml explains kernelmodulestatus9bb0a5d01fix(talosctl): add scrolling to dashboard footer node list4c029c2d6fix: machine configuration schemasc3052e845feat: move CNI config out of v1alpha1 config1d2f1208cfeat: add declarative LVM volume group provisioning85f1d428fchore: refactor tests to use debug apic901d47a5refactor: talosctl streaming commands and more fixes166854959fix: mark more resources as sensitive58adf2e00fix: classify installer and imager exits9549930fffeat: update Flannel to v0.28.527362d18erefactor: replace the callback strategy for most commandscb42d9d9afeat: implement support bundle encryption9ae260b55feat: enable NRI by defaultd1d5847b0fix: flaky test0f2331586feat: support external secureboot and pcr signersb349d919dfeat: enforce strict QoS ordering in OOM victim selection76d9b49bdfix(ci): aws nvidia tests3131826cdfix: provide NTS sync with bad initial clock state89e307e58fix: etcd client leak in the (legacy) Upgrade API476c4d050fix: recreate dns server and listeners on host DNS runner restart9a283d9b1feat: bump Go to 1.26.44759dc246chore: bump dependencies26a25a073chore(ci): drop homebrew workflowfa8a55192feat: update etcd to v3.6.1241fcab476feat: update kernel to 6.18.348ba00612bfeat: update dependencies6e2dec1earefactor: update talosctl commands to stop using WithNodesf9ad63a35feat: add custom logging convention linter30dbce03fchore: make oci images reproducible38244fd5bfeat: add sbom builder5177c50e2refactor: deprecate loadedkernelmodulec2eef3645fix: health request server-sided6eff8effrefactor: drop multi-nodes proxying for the dashboard2e547a964refactor: deprecate multi-node proxyingddcc519e1fix: add --fail to image-signer curl downloade5b0b1ddefix: normalize log fieldsd8e95c396fix: drop installer from bundle7aad9ec81feat: update pkgs, tools, Go dependenciesb50ee396ffix: fix trace fix to also lookup release branches027c93d25release(v1.14.0-alpha.1): prepare release4eb862d09feat: add LVMService for VG/LV/PV removalb88f16a52fix: use POSIX shell idioms for error propagation5290eb374fix: suppress ICMP redirects by default7b4aba2e5fix: marshal kube-scheduler config correctly with int types894be9bf5fix: touch rootfs files with SOURCE_DATE_EPOCHcde82224efix: ignore cgroups with zero rank in OOM handlerbc0372411fix: bring in a change to BCM2712_MIPf572c33f1chore: fail on makefile errore317d4b47fix: drop modprobe path and enforce usermode helper89e53f610fix(machined): make built-in mod state always 'permanent'cfbec9bd5test: skip UEFI vars wipe if TPM is enabled1e31deda3fix: create parent directories when extracting tar archives14dc188bdchore: verify go-containerregistry preserves symlinks951922dfbfix: guard apply config API call3e173adf4feat: move kube-controller-manager config to multi-docb5cda3438fix: reset QEMU UEFI variable store when disk is wiped4a17ac6acchore: script for tracking fixes made in upstream toolchain/tools/pkgsd71edeeadfeat: add LVM status resource definitions4aeba1cdefix: perform backwards-compatible kernel args cleanup9b7b2bf36feat: implement support for btrfs user volumes03ee8ee3afeat(machined): support instance tags on Akamaid19f9ade0fix: memorymodules resource reportinga6edcf6f3chore: move out adv library40e66eac7fix: bump Go golang.org/x modulese23ca4a0achore(ci): add upgrade tests for trustedboote3003c0ecchore: bump tpm nonce size to match the algorithm used8fd04da1ffeat: add bnxt_re module to the rootfs1cfab00f1fix: update etcd experimental argsad96fc6aefix: relax hostname config validationefd735334chore(ci): add missing labels, move release metadata check to job9ec045059feat: update containerd to 2.3.142f4144a1feat: introduce new KubeSchedulerConfigf2b7f39dbrefactor: move Args type out of config/v1alpha1b959dcb3efix: bump Kubernetes to 1.36.1 in one more place8ecc77f1afeat: update default Kubernetes version to 1.36.1cbd9c3745chore: rekres to secure slack workflows6a92fc653test: update Canal version used in the testsbe12d3d08feat: support 4k sector size disk imagesa7e8f4c28chore(ci): fix cloud image upload job name4319399f6feat: introduce more modular Linux kerneled5df89f6feat(ci): rotate credentialsa6a984ff7chore(ci): fix the job conditionsecb7d4588feat: enable Flannel nftables mode9919ff781feat: update Linux to 6.18.321a7d136e4feat: add Azure Secure Boot imager profiledf68e7391feat: implement kernel module status resourcee98ee99d4fix: streamline config validation flowd7f0a2fd4feat: update Linux to 6.18.312b66e25a5chore: update image signer5aa1795f9chore: drop e2e step dependenciesd42b3b396feat: update Linux to 6.18.30c3f6f3507feat: implement static host resolving via host DNS2f06a68efrefactor: split host DNS handlere99c5be5afeat: implement DNS over HTTP(S)cf6065238chore: stop publishing installer to ghcr0edabd29cfix: restore some shared (and some lower tier slave) mount propagationf1578dc63fix: image verification issue with registry.k8s.io46b1f8a24fix: rework how scheduler config is marshaled820a9fa59chore: fix typos in comments649a384a9feat: move more kernel stuff to modules4f3ab2012chore(ci): try fixing homebrew action600c0ab5dfeat(ci): validate that extensions PKGS and TOOLS sync with talos76080416bfeat: redact more machine config secrets and audit redactorsaabf63957docs: drop controlplane endpoint examplesb48a2bef4test: relax kernel-default routing rule assertiond2208b034refactor(talosctl): propagate command context throughout, handle interrupts0760b5c28fix: normalize source name for syft consistencyc49ac0ec2docs: document release policyec7e6ef9ffeat: bump in-toto indirect dependency21858a674feat: update kernel to 6.18.295a49dc61dfeat: migrate Image Cache config to multi-doc574298ec1fix: handle empty GCP operation errors366b10b79feat: dockerfile improvements9a1d9d0affeat: bump go 1.26.36eec1c229feat: support DNS over TLS for upstream resolversdee139aeffeat: revert update CoreDNS to 1.14.3087bc4c18chore: lint packages under tools9e7516faefix: clarify documentation for image verification pattern41c8e9dc4feat: bump dependencies2b6c06ef5feat: update CoreDNS to 1.14.36b6f7978bfeat: update containerd to 2.3.0f9c4f90dafeat(ci): longhorn v2 ublk tests84d169c62fix: make dnsd retry listening689974bd5fix: volume mount permissionsff0f66bdffix: skip reserved routing rule priorities850e2c754feat: drop fakeroot, use go helper0c1bd701afeat: add golangci-lint fmt target53bd66956feat: support conditional start of IPv6 dns serversb31d93e0dfeat: auto-enroll SecureBoot keys for disk images849a68006test: update pkgs to test new extensionsc30a6dfcbfix: preserve DHCP DNS servers5b81b20d3feat: apply DHCP search domains4e5ff8fa2fix(ci): zfs test14abe5140fix: handle gateways which are not on-link routes in dhcp4e1f759af8chore: fix lint issues automatically664c5f643chore: update toolsc64df2b61fix: add missing kernel modules in rootfsf73c24594feat: run depmod with verification on rootfs build1371596d7fix: provide proper AWS platform metadata4f11f021dfeat: implement etcd encryption config (kube-apiserver)876f83643feat: add support for HTTP Probes9b776d598feat: update etcd to 3.6.11631a1bc5efix: bring in hardened kernela349dac03fix: stale discovered volume children13ce01879fix: re-enable kexec on arm6432539d4acfix: deadlock in the makefs ext4 with populated source0f3e1966afix: panic in Kubernetes manifest sync3bae01ac1fix: do not pick up a system disk from a loop devicededb7a96cfix(talosctl): protect k8sNames map writes with mutexcc2be213afix: drop explicit platform matcher1dffebaf2fix: mount throws EPERM on virtiofs with SELinux48a481c29fix: replace Canal manifest with a more recent one6a445406efix: make lacp active nilable0d1d95c7dfix: bump go-kmsg to fix the timestamp driftbd344fd53fix: reset the ticker when the KubeSpan is disabled/enabled462015bcdrelease(v1.14.0-alpha.0): prepare release8a037a56etest: fix flaky tests08c81d838feat: bump kernel to 6.18.25fe40b6e58fix(ci): fetch empty pr labels837a9ed07feat: move host DNS config into ResolverConfig96a8ecd1efeat: default to factory installer imagef19eef78bfix: revert add extraArgs from service-account-issuer6821225b6fix: revert use append instead of prepend in service-account-issuerb43c3a124feat: add quirk for talosctl factory downloadsdf0b9a8darefactor: make all controller unit-test follow modern patternsc2948cef2feat: support auth for Image Factory in cluster create560bcf0cafeat: enforce TLS 1.3 minmum version for Kubernetes components3db14309efix(talosctl): ensure uncordon runs after reboot/upgrade errorsecf2fa855feat: update Kubernetes to v1.36.071557eaddfix(ci): skip misc jobs not on pull request026313b7cdocs: rename security-insights.yml to lowercase for LFX detectiondc4ffd490fix(ci): fix jobs not interpolating matrix due to condition25e2f37e2chore: generate comments for fields in resource proto149592fa5fix: watch kubelet's kubeconfig and time out for cache sync1f315e6e9feat: update Linux to 6.18.230198eedc2feat: add NTS (Network Time Security) support for NTP time sync6830a8b97fix(ci): matrix jobs cleanups71aeb347ftest: fix OOM test flake9b9542cc5test: fix a flake in the manifest sync test863d882b6test: add image verification for factory.talos.devbba0b4aeechore(ci): nvidia update helm values3399ff4defix: propagate route table down to the resourcec684ec60echore: prepare for Talos 1.14 releaseed9545d0dchore(ci): bump gpu operator version4de3e4393fix(ci): cron triggered workflows212182e6fchore: bump container registry libraryc028db0b8fix: do not flip machine stage to rebooting during shutdown6ce62d9e8fix(ci): workflow runs withworkflow_run509cd9733fix: boot entry detection5e3f30188feat(ci): rework to schedule daily runs after a cron7fa4d3919fix: zfs extensions test1ef8e630atest: allow more tests to run in FIPS strict modebdcc9321bfix: reduce memory dashboard usage2d177af82chore: update Syft to v1.42.4+patches0d8362119fix: return failed precondition on upgrade when not installedbe58eafabfix: wrong slot of encryption key was logged015081c76feat: update dependencies9fbb7c95dfix: audit trustd code for security986e97fc7feat: update Flannel to 0.28.4f3817d1d1chore: update sign images to support image name suffixe776721f3feat: update Kubernetes 1.36.0-rc.1f6e7346fafix: encode extra args fields in resources with new id3c7bb80bachore: bump tools3ba35c9b9chore(ci): nvidia try UKI boote3e8f01cachore: bump tools181584a5ffix: handle boot failurec464c7e88fix: upgrade API in maintenance mode (legacy)b7512d912feat: update Kubernetes to 1.36.0-rc.04ba11156frefactor: allow overriding out image name suffixc81aa125cfix: panic in reading PCR values6a3ab87c5feat(ci): add nvidia arm64 matrix21f459aabfix(talosctl): always use default GRPC dial optionsca208e514fix: validate hostDNS forwarding requires hostDNS to be enabled9fcb9e05bfeat: bump go to 1.26.20bfdf7f70fix: create correct blackhole routes for IPv452b920032feat: add client-side Kubernetes node drain to reboot and upgrade commands968ec1e0crefactor: propagate NAME properly, allow to set on buildacc69c346fix: set the minimum TLS version to 1.30cfa6e302chore: bump some tool dependencies4229bb9d2feat: add dis-vulncheck toold697f5538fix: don't set xattrs while decompressing extensions34fb2cbe5refactor: remove manual shell completion and replace with cobra completion79fa2e300feat: allow more nvidia and nvme files from extensions414f78a29feat: allow glibc ld files in etc1bbba4301feat: update Flannel to v0.28.255815e0fafix: handle ISOs with zeroes in volume labels7b6ab0c1cfeat: add flag to force fallback to legacy upgrade5e24d5265feat: add resource view to talosctl dashboard649ab7fe4fix: add os:meta:writer role to the dashboard10cdfa909fix: drop talosctl install087ced85ffix: unseal with "slow" TPM11ab0a8c5fix: drop unused type from ExternalVolume schemae2df0f6cefix: always grow disks919d8c365chore: drop debug shell783a35851fix: add metal-agent mode to runtime capabilities37b2221ccdocs: add SECURITY-INSIGHTS.yml for OSPS Baseline QA-04.01bed2bd414feat: add graceful power off support to QEMU VM launcher3400059ccfix: incorrect route source for on-link routesb3dfbf743feat: bump musl to 1.2.64227921b3test: fix the PKI mismatch test flakef2bc2dcc6feat: update NVIDIA production drivers to 595.58.03aa5946dd3test: fix cron failures for provision-1 & provision-21dd701efafix: allow blockdevice wipe in maintenance mode786bf00abfeat: add --platform=all support to image cache-createe1f645e3cfeat: validate luks headers for tamperingad72c7300test: improve maintenance API provision tests70cefab6atest: fix the flakes in tests with trusted rootsaacff17f4test: bump memory for Flannel netpolicy tests9c3459114feat: update Linux to 6.18.19, CNI to 1.9.1038cb8735feat: enforce PID check on connections to services over file socketse2b2dd3eachore: update go-kubernetes library9597714f6fix: add symlinks nvidia-ctk and nvidia-cdi-hook in /usr/bin8ac47d677fix: unset rlimits for extension servicesb1a02f368feat: update Kubernetes to 1.36.0-beta.0362fdc9ecfeat: update etcd to 3.6.90a47f40b3fix(machined): clear stale bond ARP/NS targets on decode86344639ffix: update diff library to v1.0.1eff89d1edfix: panics in diff algorithms8e1c8a7a9test: fix the apid test against AWS/GCPChanges since v1.14.0-beta.0
39 commits
1ab88f743fix: load the raid1 module for configured MD arrays9e8568d26fix: use inmem containerd for installs/upgrades8cf28da5ffix: preserve kmsg reconciliation after config changes311b6fde9fix: make reset during boot phase more robust945d1cdabfeat: bump kernel to 6.18.414e77d40e8fix: restore the systemd-timesync best-sample check in spike detection4444a187dtest: inspect host mount state from the current threadb7c0497b0fix: race between vol.cfg. and vol.mgr. ctrlef9a091ecfeat: allow attaching extra disks to controlplane machinesa418c0e1etest: fix CRI restart event assertion racea9bfdbdd4fix: ignore insecure-only imager assets54e3b20e8fix: hold the darwin vmnet bridge open for the network lifetimebc59389fafix: drop the OOM config rule about overall system memory PSI69be56ea9chore: add some initial set of libvirt SELinux policies6170ad8b9fix: validate kubespan & discovery config correctly for multi-doc6e58c6d5atest: fix ded. vol. plumbing in integration testsb644d1640fix: allow directory-backed volumes in reset api28e7a8742feat: bump etcd to v3.7.12c657c224feat: bump kernel to 6.18.40b1bdc8c07test: restart qemu process several times on startup failures7533057a7feat: support route imports between BGP instancesa94783704docs: remove duplicated docs in the markdown for CLI6f17c5033fix: verify the public key signed images correctly570fe34f0fix: generate backwards compatible etcd encryption configf7790816efix: use context without cancelation for etcd locks67e61ef30feat: add the fs_scrub controller1c156458afix: override DHCP search domains via explicit ResolverConfig domainsfd8dbd8a1fix: skip pod check if desired number of pods is zero9aede5429feat: add kubeimportlinter for versioned k8s importsae93d1462fix: redact resource specs in the merge controllersfc5743cd0feat: add GrubUseUKICmdline install option6bba77724feat: add named native BGP instancesc5ab22f1dfeat: move Talos API access from Kubernetes config to multi-docb1abd9c03fix: split the up/finished service events644ecbc66feat: add discovered volumes status controller6be2b1384feat: add veth pair support7514401defix: drop the controlplane static pod change9a521f667fix: preserve container tasks across CRI restarts9048d4157fix: fix a nil-map assignment panic in configpatcherChanges from siderolabs/gen
1 commit
c526410fix: skip unknown-key check for types with custom YAML unmarshalerChanges from siderolabs/go-adv
2 commits
3818a65feat: initial implementation95e583cInitial commitChanges from siderolabs/go-cmd
2 commits
a2a31d3chore: run rekres584337bfeat: add StartWithOptions for streaming long-running processesChanges from siderolabs/go-kmsg
1 commit
65e97cbfix: boot time offset calculationChanges from siderolabs/go-kubeconfig
2 commits
d0b8f82chore: rekres and bump depsc356eebfix: fix context conflict detection add New() constructorChanges from siderolabs/go-kubernetes
7 commits
0caf1f2feat: add Kubernetes 1.37 compatibility822b7a2feat: add nodedrain package for client-side cordon and drain260bc0afix: update authorization config apiVersion for K8s >= 1.32cc8c2c9fix: return the apply results in a consistent order131a2bdfix: handle cluster-scoped resources with a ns correctly38c182ffix: normalize the changeset to be keyed without apiVersionca35008feat: update k8s api to 0.36.0Changes from siderolabs/go-smbios
1 commit
063f5dcchore: rekres + new testdataChanges from siderolabs/go-talos-support
2 commits
59d47affeat: rewrite support bundle library around client provider8dd4326feat: support encryption of the support bundle using ageChanges from siderolabs/grpc-proxy
3 commits
d670c42chore: bump dependencies8614c71chore: bump deps80677e0fix: propagate the headers before the messageChanges from siderolabs/pkgs
119 commits
aa8d7d6feat: bump kernel to 6.18.41b253464feat: enable PCF8523 RTC support for arm640383b09feat: bump kernel to 6.18.4037184f0feat: enable CONFIG_NFT_SOCKET in the kernelf78e3dcfeat: update cryptsetup to 2.8.78c5831cfeat: update dependencies0de2a61feat: update Linux to 6.18.39c652074feat: enable UFSHC and some other optionsc4b550cfeat: bump dependenciesde07964feat: enable CONFIG_IOMMUFD and CONFIG_VFIO_DEVICE_CDEV6a9c40cchore: bump tools 2026-07-1461e3ed9chore: bump bldr to v0.6.1981029echore: bump nvidia to 580.167.08ff9a355chore: bump deps (minor)0b2474echore: bump deps (patch)94a16efchore: bump toolchain6dcf355feat: enable devmapper plugin in containerd build03534a5fix: enable CONFIG_IFB as a modulea264237feat: update DRBD to 9.3.33f09c0cchore: update toolchain and tools6c08c46feat: bump kernel to 6.18.387c4fe92feat: build runs with libpathrs (only amd64)8922b6dfix: correct finalize destination pathae0d701fix: use non-conflicting name for mdadm5186a65feat: add mdadm package for software RAIDe09f9fbfeat: bump kernel 6.18.378d23631feat: update Linux firmware to20260620343557feat: update runc to 1.5.055d3676feat: bump dependenciesea48e8bfix: patch Linux kernel for tunnel metadata buffer overflowff80d88feat: add support for AMD XGBE driver9f8ab22feat: enable NF_TABLES_ARP optionbedfbebfeat: update Linux to 6.18.36a9f2bb3chore: bump containerd to 2.3.273e76f8chore: upgrade runc to 1.5.0-rc.328db1cachore: update nvidia driver lts to 580.167.085df1a44chore: update zfs to 2.4.3cd77c4fchore: update dependencies 2026-06-160f27eccfeat: bump runcd213ff5feat: bump OpenSSL to 3.6.3cb713aefeat: bump kernel to 6.18.3509cb04efix: avoid page_table_check BUG on time namespace VVAR pagebfb88f6feat: add nvidia-fs kernel modulef2850d1feat: enable USB hiddev for apcupsd support55aa64ffeat: bump go to 1.26.4f27dbe1feat: bump kernel to 6.18.34aa9fe00feat: add DVB USB Modules0870a4bfeat: bump dependenciesf9134e5fix: enable CONFIG_BCM2712_MIP as built-in in arm64 kernel config285c6aefix: set usermode static helper to machinebd2a754feat: pre-generate drbd patches using spatch out of tree898844efeat: update Linux to 6.18.33a8dfbf7fix: disable kernel modprobe pathc542950fix: pull in tools with zstd sbomc0ec8f3feat: enable PPP and INFINIBAND_BNXT_REc62c4e1feat: update containerd to 2.3.1270f9f8chore: update deps4f7feb4feat: enable more options for CRI-U checkpoint/restore87994f7feat: move autoloadable stuff as modules80c27f3fix: drop legacy network protocolsfbb7360feat: drop legacy iptables/ebtables supporteac5f86feat: bump kernel 6.18.32d616f6cfeat: update Linux to 6.18.3102bcfcefix: macb silent TX stall on BCM2712/RP1 (v2 patches from netdev)12ca698feat: update ZFS & NVIDIA LTS9fff943feat: update Linux to 6.18.30c5a1685feat: move HWMON as modulesb2a45fbfeat: move CONFIG_INTEL_IOATDMA as a moduleea8d35ffeat: move ACPI device drivers as modules501ba58feat: move HID quirks as modulesb35312cfeat: move PS/2 mouse drivers as modules3a5d9d7feat: move IPMI driver to be a module792a69afeat: disable AGP drivers99990b4feat: move Hyper-V drivers as modulesfb697d6feat: move Xen frontend drivers as modules1df1713feat: move ATA / MMC controllers as modulesf7f9341feat: move USB class drivers as modulesba873e9feat: move USB host controllers as modules8f25baafeat: move virtio bus stuff as modulesd0c5480feat: bump kernel to 6.18.29dfb09f0feat: bump kernel 6.18.28c97bc24feat: update Go to 1.26.3dfe8926feat: add btrfsprogs06ff9dcfeat: update Linux to 6.18.272265fc9feat(kernel): backport two PCI bridge realloc fixes from v6.195a21d99feat: bump dependenciescb3f406feat: update containerd to 2.3.0e192574feat: update Linux to 6.18.26e5e6cb8feat: update DRBD to 9.3.277538b1feat: update NVIDIA driversadeaafcfeat: preserve System.map on kernel buildsc77f985fix: disable legacy framebuffer drivers8f3ef77fix: enable safesetid LSMf82d3affix: disable CONFIG_DEVPORTb189a96fix: disable crypto user API9a718f6docs: list net macb silent TX stall fixes in kernel/build/patches/README.mdca3599ffix: macb silent TX stall on BCM2712/RP1 (RFC patches from netdev)6a53a93feat: bump kernel to 6.18.25f567bcefeat: disable more stuff in Kconfigffd9790feat: bump kernel to 6.18.24b7c709afeat: bump depse5e5b3cfeat: update Linux to 6.18.231a4cd20fix: renovate configd0ed6edfeat: update dependencies6ea49c7fix: support disabling module signature verification6520ec4feat: update containerd to 2.2.337ce992feat: enable CONFIG_UHID and CONFIG_INPUT_JOYDEV as modulescddd934feat: update backportable dependencies32e4077feat: update OpenSSL2d241e7feat: update Go to 1.26.2 and small deps updates7f540cefeat: disable dynamic SCS3bef043feat: update runc to 1.4.2c6e6f10feat: update Linux to 6.18.21a9e8afafix: libarchive install prefixe4d0113feat: update for musl 1.2.69142603feat: update NVIDIA production to 595.58.0322fa669feat: update Linux to 6.18.1903680aefeat: update containerd patch verifier rolebdc239efeat: enable CHECKPOINT_RESTORE optionChanges from siderolabs/proto-codec
1 commit
9b8a14echore: bump dependenciesChanges from siderolabs/siderolink
1 commit
0a1933cchore: bump dependenciesChanges from siderolabs/tools
27 commits
08071b1feat: update dependencies2723c06chore: bump pkgfile bldr to v0.6.1d333b32chore: bump toolchain to latestc7494c6chore: deps 2026-07-13 (major bumps only)57a0183chore: deps 2026-07-13 (minor bumps only)21db13echore: deps 2026-07-13 (patch only)7079a8achore: bump toolchain5326524feat: build LLVM as cross-compiling878f1dbfeat: bump dependencies0f1c859chore: make rekres5c0c9bechore: update dependencies 2026-06-16b88d99cfeat: bump OpenSSL to 3.6.342c59b9feat: bump toolchain to bring in Go 1.26.4206a4c0feat: update dependencies, rework LLVM buildf9f37dffix: add proper name for zlib-ng sbomaa45c41fix: add SBOM for zstd library808f34ffeat: update Go to 1.26.35dfe83dfeat: drop fakeroot and policycoreutils618fd20feat: add Python wheel packagedf3c1b7feat: bump dependencies44ad18cfeat: bump depsf3d0dd9fix: renovate configs4ac4449feat: update dependencies027744ffeat: bump OpenSSL to 3.6.27067f1ffeat: update util-linux to 2.41.46cb3e56feat: update Go to 1.26.29186c5ffeat: update musl to 1.2.6Dependency Changes
5adc3eb->c76316d310581b->c87a4186706a29->93566ba31e136bnew8ae5a48newPrevious release can be found at v1.13.0
v1.14.1Compare Source
Talos 1.14.1 (2026-09-15)
Welcome to the v1.14.1 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.51
containerd: 2.3.5
Talos is built with Go 1.26.8.
Contributors
Changes
36 commits
2f86b9drelease(v1.14.1): prepare release65f704echore: pass kernel version down to VEX generator63101affix: prevent sandboxd signal dispositions leaking into services676276ftest: peer passively with the MetalLB speaker2b8b46dtest: stop ARP flux breaking the BGP VRF test357d600fix: rebuild the BGP server when its VRF is recreateddb0b5a1fix: guard against nil config document slices094741fdocs: clarify the kube-apiserver extra args and new configa13b560docs: correct the UnattendedInstallConfig name in the schema166c407fix: make --insecure reachable for talosctl meta subcommandsaac1068fix: ignore apply config dry-run for try mode7a2c4e8fix: tighten the validation of v1alpha1 configs vs. migrationaef64fafix: reconnect the WireGuard over gRPC tunnel after a failured07a21afix: drop logical links if they no longer declare as logical9996bc8fix: create GRUB bootloader ISOs only for BIOS0604432feat: add NixOS OVMF search path5cb44dcfix: wait for USB settle explicitly20dcd51fix: empty searchdomains dropped on merge1e3e3fechore: support correctly various disk types for the system disk7c2e0b1fix: notify about link alias changese9a67e1chore: use the host page cache for the QEMU cluster disks0afebcafix: use the final config version in upgrade-k8s0ad18bbfeat: bring in containerd 2.3.504c49d8feat: allow generating an ECDSA service account key in secrets bundlesbb2cb91fix(security): define the permissions the 6.18 kernel expects in the classesbf31b28fix: improve resilience of the action tracker against dropped conns00a0ea0fix: set TCP keealive and user timeout on apid proxied connections6c06560test: revert disabling PS/2 in QEMU9841e0bdocs: fix containerconfig.dependson examplesa11a260feat: add USB LAN78XX drivers to the rootfs9f82774fix: harden the code around kubelet's client certificate handling3260b1efix: resolve volume devices in shared selector helper0841525fix: create LVM physical volumes on the decrypted device7dabdebfeat: add xfrm interface module63963f7feat: sync pkgs/tools09681e8fix: correct the bug with overlay assets in ESP being droppedChanges from siderolabs/gen
2 commits
cbd9518chore: rekres and update deps26ccee1feat: provide new YAMl unmarshal validator for null valuesChanges from siderolabs/pkgs
10 commits
f694e1bfeat: update Linux to 6.18.5185a249afeat: update libpathrs to 0.2.6fe037b6feat: update Linux to 6.18.5035e3898feat: update containerd to 2.3.5fd0c2b2fix: add a kernel patch for EFI SecureBoot integrity lockdown2415a01feat: add kernel modules to enable Intel HD audio202a677feat: bump kernel to 6.18.495ddbb53feat: enable CONFIG_USB_LAN78XX and CONFIG_MICROCHIP_PHY on amd64c61bcc3feat: enable CONFIG_XFRM_INTERFACE in the kernel40ccb0dchore: sync tools & toolchainChanges from siderolabs/tools
2 commits
a404efbchore: bump util-linux 2.42.33c49a3cfeat: bump go to 1.26.8Dependency Changes
Previous release can be found at v1.14.0
Images
v1.14.0Compare Source
Welcome to the v1.15.0-alpha.1 release of Talos!
This is a pre-release of Talos
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Boot Partition Wait
Talos now waits for the partition it was booted from to be discovered before declaring the system volumes (
META,STATE) missingand entering maintenance mode, so that disks enumerated late (SD cards, USB, some RAID controllers) are not mistaken for a fresh machine.
On UEFI systems booted via
systemd-bootthe boot partition comes from theLoaderDevicePartUUIDEFI variable, while the GRUB configurationnow passes the
talos.boot.partuuid=<UUID>kernel argument (probed by GRUB at boot). The detected boot partition is published as thebootpartitionresource.containerd Configuration Version 4
Talos now generates
containerdconfiguration withversion = 4(previouslyversion = 3).containerdonly migrates configuration from older versions, so any custom CRI configuration provided viaCRICustomizationConfigdocuments (or shipped by system extensions) is now interpreted as version 4, and settingswhich moved in version 4 are silently ignored (only a
Ignoring unknown key in TOMLwarning is logged bycontainerd).In version 4, the top-level server sections moved into plugin configuration blocks, so the following patches need to be adjusted:
[metrics]address[plugins."io.containerd.server.v1.metrics"]address[metrics]grpc_histogram[plugins."io.containerd.metrics.v1.grpc-prometheus"]grpc_histogram[grpc]address,uid,gid,max_recv_message_size,max_send_message_size[plugins."io.containerd.server.v1.grpc"](same keys)[grpc]tcp_address,tcp_tls_ca,tcp_tls_cert,tcp_tls_key,tcp_tls_common_name[plugins."io.containerd.server.v1.grpc-tcp"]address,tls_ca,tls_cert,tls_key,tls_common_name[ttrpc]address,uid,gid[plugins."io.containerd.server.v1.ttrpc"](same keys)[debug]address,uid,gid[plugins."io.containerd.server.v1.debug"](same keys)For example, the
containerdmetrics customization documented for previous versions of Talos:should now be written as:
Note that
[debug]level,formatandlog_trace_idstay at the top level, and that thettrpcaddress is no longerderived from the
grpcaddress: if thegrpcaddress is customized, thettrpcplugin address has to be set explicitly.Unified --namespace Flag
talosctl containers,logs,statsandrestartnow select the containerd namespace through the same--namespaceflag and vocabulary already used bytalosctl imageandtalosctl debug:system(the default),crifor Kubernetes workloads, andtaloscontainersfor containers declared via aContainerConfigdocument.The
--kubernetes/-kflag is deprecated in favor of--namespace cri.talosctl image listalso supports--namespace taloscontainers, to inspect images pulled forContainerConfigcontainers.talosctl debugdoes not support thetaloscontainersnamespace.CPU Scaling Configuration
CPU frequency scaling can now be configured declaratively with the
CPUScalingConfigdocument, instead of through kernel argumentsor raw
SysfsConfigkeys:Settings apply to the cpufreq policies matched by the selector, which targets cores by property rather than by index, so a machine
whose cores are not uniform can be configured without hardcoding how many it has:
The selector matches against the fields of the
CPUScalingStatusresource, and may also setenergyPerformancePreference,minFrequencyKhzandmaxFrequencyKhz. Where several documents match the same policy, the one whose name sorts first wins, and thedocument which claimed a policy is reported on the resulting
CPUScalingSpecresource. Removing the configuration restores thevalues the machine booted with.
Setting a cpufreq attribute through both
CPUScalingConfigandSysfsConfigis rejected, as the two would otherwise overwrite eachother continuously.
Disk SMART Status
Talos can now collect SMART (Self-Monitoring, Analysis and Reporting Technology) health information from disks,
exposed via the new
SMARTStatusresource (one per disk, keyed by the disk device name).Collection is controlled by the presence of the new
DiskSMARTConfigdocument: while the document is part ofthe machine configuration SMART status is collected, and removing the document disables collection (any
SMARTStatusresources already produced are removed as well). There is noenabledfield.talosctl gen configandtalosctl cluster createemit this document by default, so SMART status collectionis enabled by default for machine configurations generated by Talos 1.15. Clusters upgraded from an earlier
version keep their existing machine configuration, which carries no
DiskSMARTConfigdocument, so SMARTstatus collection stays off there until the document is added.
Rotational disks are never spun up just to be probed: a disk in standby is detected via ATA
CHECK POWER MODEand its SMART data is left untouched until it is active again.To retrieve SMART statuses:
The resource reports an overall health verdict, temperature, power-on hours and power cycles, NVMe wear
indicators (percent used, available spare, critical warning, media errors) and, for ATA/SATA disks, the raw
SMART attribute table with per-attribute thresholds.
Disk Free
A new
talosctl diskfreecommand (aliased todf) reports storage and inode usage for mounted volumes.Extension Service Configuration
ExtensionServiceConfigis supported only for extension services whose service manifest explicitly declares a configuration dependency:Using
ExtensionServiceConfigwith a service that does not declare this dependency is unsupported and has undefined startup behavior.The service might start before its configuration is rendered, leaving config files or environment variables unavailable until a later service restart.
Extension authors must declare the dependency before documenting
ExtensionServiceConfigsupport.talosctl gen removed subcommands
The following
talosctl gensubcommands have been removed:talosctl gen catalosctl gen crttalosctl gen csrtalosctl gen keytalosctl gen keypairThese commands where historically used to generate pieces of Talos PKI, but they are no longer needed
as
talosctl gen configandtalosctl gen secretsnow generate all required PKI material automatically.Blank Virtual Machine Disks
A virtual machine disk can now be provisioned as an empty volume in a storage pool, rather than only
as a CD-ROM attached from a content library:
The pool must be declared by a
StoragePooldocument in the same machine configuration; a disknaming an undeclared pool is now a configuration error rather than a virtual machine that silently
never starts.
Four behaviours are worth knowing before you rely on this:
machine and the disk, so removing the disk from the configuration leaves the data in place, and
re-declaring the same virtual machine and disk names in the same pool reattaches it. Reclaiming
the space is a deliberate, out-of-band act.
talosctl get storagepoolvolumestatuseslistsmanaged volumes, not retained orphan files: their statuses disappear when their requests and
consumers are gone. Inspect the pool's backing directory to discover retained files before
reclaiming space; confirm a file is no longer in use before deleting it.
sizegrows the volume the next time no virtual machine has it open,because growing one underneath a running guest corrupts qcow2 metadata and is invisible to the
guest for raw. The pending growth is reported on the volume's status.
sizeis reported and ignored. Shrinking would truncate a filesystem the guest laidout, so it is refused rather than applied; the disk stays attachable and the virtual machine keeps
running.
StoragePooldocument. Removing areferenced pool alone is rejected by configuration validation. Remove or update every virtual
machine referencing it in the same configuration change. During teardown, consumers release
the pool before it is undefined and its backing directory can be unmounted. The volume files
survive.
Provisioning a disk from a content library image is not implemented yet;
provision.fromImageisstill only supported on a
cdrom.Ignore Ctrl-Alt-Delete
Setting
ignoreCtrlAltDelete: truein theSecurityProfileConfigdocument makes Talos log and ignore Ctrl-Alt-Delete instead of rebooting the machine.Ctrl-Alt-Delete still reboots the machine until a configuration with this option is applied.
IPVS Support
Following Kubernetes deprecation of IPVS support (
kube-proxy), Talos Linux now ships IPVS as kernel modules which are not loaded by default.If you require IPVS support, you can enable it by loading the following kernel modules:
ip_vs(core)ip_vs_rr,ip_vs_wrr,ip_vs_lc,ip_vs_shorip_vs_mh(scheduling algorithms)xt_ipvs(nftables/iptables match)Kernel Log Extra Tags
The
KmsgLogConfigdocument now supports anextraTagsfield which attaches additional key-value pairsto every kernel log message sent to that destination:
Tags are scoped to the destination they are configured on, so different endpoints can receive different tags.
The keys
facility,seq,clock,priority,msg,talos-timeandtalos-levelare reserved and rejected,as they are set by Talos itself.
Kubelet Image GC Thresholds
Talos now defaults kubelet
imageGCHighThresholdPercentto 75 andimageGCLowThresholdPercentto 65 (upstream defaults are 85 and 80).The upstream image GC high threshold matches the default
imagefs.available<15%hard eviction threshold, so the node was putinto
DiskPressure(and tainted forevictionPressureTransitionPeriod) before image GC had a chance to run.The defaults are applied only if neither of the thresholds is set in
machine.kubelet.extraConfig.On upgrade, nodes with disk usage above 75% will garbage collect unused images.
Kubelet Resource Manager State
Talos now validates the kubelet CPU manager and memory manager state files (
/var/lib/kubelet/cpu_manager_state,/var/lib/kubelet/memory_manager_state)the same way kubelet does on startup, and removes a state file kubelet would refuse to load before starting kubelet.
Previously only a change of the manager policy was detected, so changing e.g.
reservedSystemCPUsorreservedMemory, ora change of the CPU/NUMA topology of the machine, left kubelet unable to start until the state file was removed manually.
Only the rendered
KubeletConfiguration(machine.kubelet.extraConfig) is checked: the resource manager settings passed as kubeletcommand line flags via
machine.kubelet.extraArgs(e.g.--cpu-manager-policy,--reserved-cpus) are not taken into account.KubeSpan Peer Endpoint Filters
KubeSpan now supports filtering the endpoints received from other peers via
filters.peerEndpointsin theKubeSpanConfigdocument.While
filters.endpointsfilters the addresses a node advertises to the whole cluster,filters.peerEndpointsfilters the endpointsreceived from other peers before the node connects to them, affecting only that node. This allows excluding peer-advertised endpoints
which are known to be unreachable from a node (e.g., addresses of a private network the node is not connected to), so that KubeSpan
endpoint rotation never attempts them.
LLDP Neighbor Discovery
Talos now listens for LLDP on physical Ethernet interfaces and reports neighbors through the
LLDPNeighborStatusresource.Reported information includes chassis and port IDs, system and port descriptions, system names, management addresses, and VLANs.
The built-in listener does not transmit advertisements; use the
lldpdsystem extension when advertising is required.Secure Boot images no longer have lockdown=confidentiality enabled by default
Secure Boot images no longer have
lockdown=confidentialityenabled by default.This change was made to improve compatibility with eBPF tooling under default schematic.
This means that Secure Boot images will now have
lockdown=integrityenabled by default (implicitly), which is the recommended setting for most users.Users can override it by adding
lockdown=confidentialityto the kernel command line through Image Factory if they require it.MACVLAN Links
Talos Linux now supports creating MACVLAN links with a new
MacVLANConfigdocument:The
sourcemode is not supported yet, as it requires a list of allowed source MAC addresses.Multipath Configuration
The
multipath-toolssystem extension now reads/etc/multipath.conffrom the Talos host instead of usingExtensionServiceConfig.The
multipathdservice waits for this file and bind-mounts it read-only into its service container.Before updating the extension, apply a machine config patch that deletes the existing
ExtensionServiceConfigdocument and adds anEtcFileConfigdocument:The extension does not provide a default configuration, so
multipathdremains waiting until/etc/multipath.confis present.NFS External Volumes
Talos now supports NFS as an
ExternalVolumeConfigfilesystem type alongsidevirtiofs, allowing nodes to mount network exports at/var/mnt/<name>through the existing block volume machinery.Supported
versionvalues are3,4,4.1, and4.2.The
mount.nfsspec configures the kernel NFS client:server(hostname or IP; IPv6 is bracketed automatically) and absolutepathare required; optionalport,transport(tcp/udp), and NFSv3-onlymountPort/mountTransport(otherwiserpcbinddiscovery is used).locking(localdefault /remote) controlsnolock/lock; Talos does not runrpc.statd, solocal(nolock) is the safe default. You needrpc.statdextension for remote locking.recovery(hard/soft/soft-error) maps tohard/soft/softerr.timeout(timeo, deciseconds),retransmissions(retrans),readSize/writeSize(rsize/wsize, 1024–1048576 multiples of 1024),connections(nconnect, 1–16, TCP only),reservedPort(resvport/noresvport), andsecurity(none/sys; Kerberos flavors are unsupported as Talos does not runrpc.gssd).tcptransport.Common
mountflags (readOnly,disableAccessTime,secure) apply as with other volume types.Validation rejects
mountPort/mountTransport/lockingoutside NFSv3 andudpfor NFSv4.NUMA Topology and VM Placement Validation
Talos reports host NUMA nodes, CPU membership and total node memory through the
NUMATopologyresource.Explicit VM CPU pins and memory-node selections are checked against the host before starting or replacing a guest.
Invalid placement leaves an existing guest running; CPUs and guest memory may intentionally use different nodes.
This validates placement, not available memory capacity or reservations. Host inventory is not exposed in container mode.
Route Updates
RouteSpecresource IDs now match the key the Linux kernel uses for routes: routing table, address family, destination and priority (metric),e.g.
inet4/10.0.0.0/8/1024instead ofinet4/10.0.0.1/10.0.0.0/8/1024.The gateway, the output link and the multipath next-hops are no longer part of the ID, so changing them updates the route in place
(
RTM_NEWROUTEwithNLM_F_REPLACE) without the route ever being missing, e.g. when a BGP route switches between a single next-hop and ECMP.Routes which differ only in the next-hops (which can't be installed into the kernel at the same time) are now merged into a single route,
with the higher configuration layer taking precedence.
RouteStatusresource IDs are not changed.Permissions of the Generated Files
talosctlnow writes every file which might contain secrets with0600permissions (owner read/write only),and it restricts the permissions of the files it overwrites as well.
This affects the machine configuration (
talosctl gen config,talosctl machineconfig patch,talosctl cluster create --skip-injecting-config),talosconfigandkubeconfig.Time Check API
The
TimeService/TimeCheckAPI (talosctl time --check) is no longer available to theos:readerrole, as it allows queryingarbitrary time servers from the node. The
TimeService/TimeAPI (querying the configured time server) is still available toos:reader.PTP device paths are now strictly validated both in the machine configuration and in the API: the path should be directly under
/dev,the name should start with
ptp(e.g./dev/ptp0,/dev/ptp_kvm), and the device should be a PTP character device.Filesystem Trim Chunking
The
FilesystemTrimConfigdocument (and the per-volumetrimsettings) now supportchunkSize,chunkDelayandminLengthoptions.By default, the whole filesystem is trimmed at once (same as the
fstrimcommand), which issues discards for all free space back-to-backand might cause latency spikes for other workloads on the same disk (e.g. etcd).
Setting
chunkSizesplits the trim into multiple operations withchunkDelayin between, whileminLengthskips free ranges smaller than the specified size.Component Updates
Linux: 6.18.55
Kubernetes: 1.38.0-alpha.2
containerd: 2.3.6
runc: 1.5.2
CoreDNS: 1.14.7
systemd-udevd: 262
Talos is built with Go 1.27.2.
Virtual Machine Serial Console
Talos-managed virtual machines now expose their serial console over the Talos API, with no host shell access required.
talosctl hypervisor console <vm-name>attaches to the live serial console of a running VM.Press
Ctrl-]to detach without stopping the VM;Ctrl-Cis forwarded to the guest.Only one session can be attached to a VM at a time, and previous output is not replayed.
The command is supported on Unix clients only.
Serial output is also persisted on the host (with bounded retention), and can be read with
talosctl logs --kind=vm <vm-name>,including
--tailand--follow. The new--kindflag (container,vmorservice) selects the log source explicitly;omitting it keeps the previous service/container routing.
Both the console and the VM logs require the
os:adminrole and a single target node.Virtual Machine VNC Console
The new
talosctl hypervisor vnc <vm-name>command forwards a virtual machine's graphical console to a local loopback TCP port.Enable
console.vnc.enabledin itsVirtualMachineConfig; access requires theos:adminrole and exactly one target node.The listener accepts one viewer at a time and supports reconnecting without restarting the command.
Use a viewer that supports unauthenticated RFB.
Talos authenticates the tunnel, and no VNC TCP port is opened on the node.
VXLAN Links
Talos Linux now supports creating VXLAN links with a new
VXLANConfigdocument:Workload Memory Limits
The new
WorkloadResourceConfigdocument sets independent aggregate memory limits for Kubernetes pods, Talos containers and virtual machines:Each root is optional. Limits are ceilings, not reservations, and do not cover swap or HugeTLB memory.
For
kubepods, Talos derivessystemReserved.memoryso kubelet enforces the cap and adjusts Node Allocatable;an explicit
systemReserved.memory, conflicting kubelet flags or the Static memory manager cannot be combined with this limit.Changing the Kubernetes cap restarts kubelet. Without Kubernetes, only the container and virtual machine limits apply.
Lowering a limit can OOM-kill workloads in that group, including QEMU guests or Kubernetes control-plane pods.
Talos exclusively owns
memory.maxon/taloscontainersand/virtualmachines.partition, even without this document.Omitting their limits means unlimited aggregate memory; individual child limits still apply.
Kubelet system-reserved or kube-reserved memory enforcement on these roots is rejected regardless of this document;
CPU-only or compressible enforcement and reservations on unrelated roots remain supported.
Kubelet drop-in directories are rejected while any cap is active; without caps, their contents remain the operator's responsibility.
Removing the Kubernetes cap restores the original kubelet configuration. The document has no effect in container mode.
Contributors
Changes
282 commits
2682d461efeat: provision blank virtual machine disks in storage poolsb834e3cb6fix: remove the NUMANodes flag from cluster create qemu cmd53c484f96feat: configurable video device for virtual machines340df0456feat: bump kubernetes to v1.38.0-alpha.2751f65514feat: show guest VM IPs from qemu-guest-agent3e41f2501feat: bump depsb9e82ebdcfix: vm console queue overflows on read3c0838b39test: isolate concurrent IPv4 route scope fixtures0e17fa324test: bound NUMA reconciliation triggers by suite lifetimeee6a6bd8atest: synchronize VNC cancellation coverageb5f476ddafeat: reconcile CPU partition policydf0193f5efeat: add authenticated VNC access to virtual machinesb4178e11atest: distinguish concurrent foreign route fixtures44c569644chore: add VM serial console release notes4e2e4f308feat: add host NUMA topology and validate VM placementb277651cafeat: attach qemu-guest channel to virtual machines051a4bf6dtest: wait for device removal before testing disk recreation04dde9148test: make DNS bind failure independent of interface addresses4948088b0feat: add aggregate workload memory limits1227b2b84feat: provision cloud-init seed assets for virtual machines8fca67333test: talos container status coverage5ca54ad2efeat: plan safe CPU partition updateseb958e61etest: improve hypervisor unit tests stability4194ca142feat: persist VM serial logs and add explicit log kind selection527a272c5feat: content lib. locking, vm resource chainingcf07b8a7ffeat: impl. VirtualMachineConfig - gueste18d5ce09feat: add CPU partition cgroup operations6b1edb94dtest: boot stock Alpine ISO over serial console3663614bafeat: rework route configurationda3c10225fix: clean up mountpoints on unmount738f1ab8ffix: roll back stacked try configs to the config before the first trye880b96c0feat: add CPU partition configurationbdfe7bd2btest: coverage for explicit vm stop, before deleted63f6c38bfeat: add CPU partition resource typesa5aa41488test(ci): add hypervisor short pipelinee7b50c50dfeat: vm disk provisioning from iso7396302bafeat: set vm domaincpu to host-model83a80df90fix: verify the claim for the legacy bundle image verification95c86b810fix: correct handling of DHCP changing addresse1386c60dfix: image verification testb77b8b8bcfeat: add hypervisor VM serial console streaming87e039ea9fix: make GenerateClientConfiguration API work in K8s-less modebf9d68ed6feat: update Kubernetes to 1.38.0-alpha.1a003bd22bfix: restore source names for pseudo filesystem mountsb3736b9a9fix: network on azure (and might fix some other platforms)41e63cb24fix: skip impersonation tests without Kubernetesef5bdc8dcfix: gate libvirt dial on virtqemud readiness53fa44cbffix: add validation for the PTP device nameb6a32fc16fix: reject impersonation header without impersonator role76e761d83fix: validate ExtensionServiceConfig name21b74679ffeat: add support for chunked fstrim5b7c96d75feat: override the kubelet's image GC thresholds7e972eecffeat: impl. hypervisor network tap90e22ed5bfeat: update etcd to 3.7.22363acc1efix: hv domain status ctrl must use openpersistent6d70efe9ffeat: bring in Linux 6.18.54, runc 1.5.26b333c145fix: don't overwrite currently booted on upgrade for GRUB1ea1724bbfeat: add virtual machine CPU pinning and NUMA placementcb9852c4efeat: add VirtualMachineStatus resource13426fd28test: avoid racing CPU scaling sysfs writescad70acb2feat: add ignoreCtrlAltDelete to SecurityProfileConfig494abedf6docs: clarify the KMS endpoint schemefede90e81feat: talosctl dashboard container support691a26f18fix: installer-with-extension image tag handling92fdb5b08test: fix OOM kills in TinkSuitebfa1ef264fix: drop devices from the last observed generation if they are gone8c90991bdfeat: add LVFS metadata parsing and PKCS7 verification3f3a1e01afix: type VM CPU limits for 32-bit talosctl builds6a1ff6688feat: place virtual machines in a Talos-owned cgroup partition6ced93742feat: handle the change in kubelet's CPU and memory policies0438aa72dchore: mark generated code and reference docs as generatedd5393f3effeat: reconcile virtual machine domains with libvirtb230c581afeat: update containerd to 2.3.60e7245da4fix: reject extra config merge pathsf3aa7374cfeat: add CPU frequency scaling controllercd48649d2chore: fix build of talosctl on non-Linuxab6af70d1test: fix the md-boot pipeline59ff84267feat: detect and publish hybrid ISO partitions0e3511020test: add a test exercising partitions on top of DM devices6304eeb40fix: relax the validation for block device wipe0553b3e51feat: support partitions on device mapper devices0962b72d6fix: disable storagepool controllers in container mode5592dc59afeat: impl. virtualmachineconfig - networking3c9c65f0fchore: validate VM domain XML against libvirt schemaa61097889feat: add libvirt storage pool configuration515a590eafix: pass boot partition UUID on kexecb6ec9e7d8feat: translate virtual machine configuration into domain specsa40182833refactor: hypervisor test pipelinefa69d23b5chore: drop some talosctl gen subcommands6fe8bafa5fix: perform stricter validation of hostnames/search domainsef123b413feat: update Linux to 6.18.532976d533frefactor: add enums for vm conf str-fields53ec6047etest: bump Go version for cloud imagesb56f98033test: fix cilium triggered testf11bd1c0afix: handle correctly routes without outlinkname setab3d78b44feat: impl. virtualmachineconfig powerstateed7111fbbfeat: provide SecureBoot fingerprints used during boot5248bba87docs: update bug issue templateee0a723befix: do not disclose pre-shared Wireguard key in LinkStatus56f9c6a08chore: clean up unused settings in LVM reconcile controllersa314372a1feat: impl. virtualmachineconfig - firmware5f0b06335feat: impl. virtualmachineconfig - console34c306f32fix: report selected context in talosctl config info36bed8610fix: retry transient LVM reconciliation failures93c711852feat: impl. virtualmachineconfig - disksf188ff448feat: content library upload verification4ecd21a54docs: add a note about the dev command to the qemu commanddf493c685fix: ignore missing device nodes for inotifya4b38516bchore: automatic linting fixesdfabc0ed7chore: update dependencies8cf987052chore: bump CSI helm chartsd2de8e21cfix: preserve hostname under Docker (in container mode)f04a3438efeat: add macsec module4d024ecf8feat: add virtualmachineconfig571c4665drefactor: move size types to config/types/metacc815177dfix: apply config patches last in talosctl cluster create9d5901f7dfeat: content library api, talosctl support657a95a68chore: implement controller/resource tracera26d35862docs: clarify admission control and flannel config docs5d1981ecafeat: add contentlibrary resources, ctrlb46b3b872feat: implement boot device wait in volume manager35d67a3a5test: fix the aws-arm64 test956c739c9refactor: container dependency status spec05f60de61feat: report LLDP neighbors on physical links2d2567ba8fix: use correct conditions on CRI <> sandboxd dependencyacdcc9cdafeat: update Linux to 6.18.526e59bd86cfeat: update SideroLink library to v0.3.182f5cc2fb0fix: extend the USB settle code for more code paths0e1fdd26afeat: impl container status controller64c3de56bchore: pass kernel version down to VEX generator8fe31217dchore: update dockerfile syntaxfe4bd64c9chore: update integration k8s helm charts0129eac91chore: update helm, cilium cli817a479c6chore: update tools and pkgsd66c60a98fix: prevent sandboxd signal dispositions leaking into services64f8f83c1test: peer passively with the MetalLB speaker75eea7897test: stop ARP flux breaking the BGP VRF testbebcad562fix: rebuild the BGP server when its VRF is recreated175925220fix: create GRUB bootloader ISOs only for BIOS78a70ed5etest: check owned mounts in hostns cleanup testsba50b647ftest: skip the macvlan DHCP test on full-CLOS clusters7f5327d5bfix: guard against nil config document slices2e23abc13fix: reconnect the WireGuard over gRPC tunnel after a failurea1d2ce2a7feat: support disk smart config and statuscc92d40a7fix: tighten the validation of v1alpha1 configs vs. migration66c7d4505docs: clarify the kube-apiserver extra args and new config5d2fa54eetest: test Cilium with SELinux enforcing mode8a615bf5adocs: correct the UnattendedInstallConfig name in the schema4327e1083fix: make --insecure reachable for talosctl meta subcommandsf715d06a4fix: ignore apply config dry-run for try mode850a4384btest: add a way to provision extra DHCP entries in the test8537cf06bfix: drop logical links if they no longer declare as logicalb8aa858d9fix: resolve volume devices in shared selector helper64355d0e3fix: create LVM physical volumes on the decrypted device189086bd6fix: bump history max cap to 1536ee71f190efeat: upate Linux to 6.18.50b735fd683feat: add NixOS OVMF search pathf593732fafix: support ARMv7 talosctl builds682a0c96dfix: gate NFS server behind linux build tag5c5fd29e9fix: restrict generated configuration file permissions85aa3ea93feat: discover bmc over local ipmi interface7ee755a87feat: add NFS external volume support12dfb8e1arelease(v1.15.0-alpha.0): prepare releasef3017d31efix: add missing extension test patches for nfs67ae852a9fix: wait for USB settle explicitly274dc8581fix(security): define the permissions the 6.18 kernel expects in the classes28841f4c4fix: empty searchdomains dropped on merge5a67d1e8echore: support correctly various disk types for the system disk834ba888afix: improve resilience of the action tracker against dropped connsa2d35a90cfix: notify about link alias changes9de219cfbtest: nvidia - switch to nri24ef6f436fix: use the final config version in upgrade-k8sa1ec9d567docs: update CODE_OF_CONDUCT.md6a8b836f2fix: set TCP keealive and user timeout on apid proxied connections607ee15c9chore: use the host page cache for the QEMU cluster disksa6bde65fdfeat: allow generating an ECDSA service account key in secrets bundlesecb012883feat: update containerd to 2.3.554204560cfeat: bump to containerd config version 4a42ea1d4afeat: add KubeSpan peer endpoint filters0bd0cc8fcfix: ensure lockdown integrity in SecureBoot mode7eb4e75c1feat: add KmsgLogConfig extraTags support01ebf95a0feat: add VXLAN interface configuration support019b5f432feat: add macvlan interface configuration supportf5dc088fdfix: correct the bug with overlay assets in ESP being dropped465a691f7feat: update Linux to 6.18.490666eed65fix: harden the code around kubelet's client certificate handling5a2dfd460test: revert disabling PS/2 in QEMU6b16225b6fix: correct typos in talosctl output, comments and config example5da7387c9docs: fix containerconfig.dependson examples9f2eb6fb4test: relax OOM test conditions9361ad0c1fix: normalize image reference when passing to image verification flow7fd43a419fix: name diskSelector in UnattendedInstallConfig validation errors7aeb7d4a8test: isolate base OCI spec test in BGP CLOS runs27ea73811feat: add USB LAN78XX drivers to the rootfsd7d41b53dfix: filter out passed metadata in API proxyingba625bc5efix: allow CSI volumes to be mounted with an SELinux contextfc0a1f020test: libvirtd extensions6e1c0cd42fix: filter the output in talosctlb1b173f59fix: treat desired roles empty as error in Talos API accessed3a1e091fix: handle Akamai/Linode metadata without IPv69c058f898feat: talos containers run with imagegccontroller9cba2783ffix: container mount rshared propagation241d55f37refactor: don't skip container tests in short mode10e8fb449fix: ctr machinedaccss allowed roles86628c57efix: validate received kubeconfig083e7f923fix: drop dead legacy registries init from worker generationa8c09fb73fix: exclude scheduler config from apiserver config versionb46c53e8ffix: keep the time sync boot timeout across a syncer restarta4707d403test: skip filemap heap test under race detector86bfa8c21feat: bump kernel to 6.18.486ee461278fix: escape output in the talosctl dashboard1ee84b268fix: use os.Root in the talosctl extract pathd970ebca4chore: speed up unit-testsd5f53edeefix: add checks for meta key in the API path6b1d1845cfeat: update COSI to 1.16.3bfb8dfcc4feat: add host extension pre-shutdown hookse434671d7fix: preserve shared libs symlinksfd0eee43ffix: drop libssl from the rootfsf7065d3c2fix: route creation churning every 100ms6f7b08ab4chore: reduce verbosity of the grype scan4f7f5c2fafix: drop gRPC client keepalive aggressive settings in the tracker1b1905a07chore: bump sigstore/rekor to v1.5.4ea5484ba2chore: add SPD5118 driver to squashfs770e5cdd6fix: preserve special modes when extracting files613463d64feat: containers can connect to machinedabff95d73feat: bump kubernetes to 1.37.0ba2d9a773refactor: log filter stays enabled on enter press0179b80f5fix: hostns etc mount6dcde1d9efeat: impl. container mount controller48fe469a8fix: write the uploaded etcd snapshot atomicallyf25b4a3ccchore: update multipath notes86d76b0dffeat: support host extension servicesd70eb0078feat: talos containers support for talosctl4f56e5f44fix: cache filemap layers on disk1bb6e1f10fix: skip selinux label for read-only/detached/external mounts7ca297a11feat: add xfrm interface modulee489f9538fix: capture packets correctly on VLANse12769b1ftest: update Image Factory Talos versions17b631eb0feat: update Linux to 6.18.4600ec33789fix: enable additional SELinux permissions for Cilium9c747cb2efix: use os.Root in the untar pathf48e688bfdocs: update CRI customization example15c3d1a4btest: apid tls provider8979ecefefeat: impl. container runtime controller0ae93592brefactor: make runner.runner context-native48e604d52fix(talosctl): preserve uncompressed cached image layers1205defbbfix: use default terminal theme colors in talosctl dashboarde8872ff71fix: don't create new client in dry-run modef61de6f44fix: preserve selected sd-boot entry on upgradead8823176feat: add a talosctl df command78e378a48fix: use the UKI command line when the config has no install sectiona469e965afix: persist in-memory meta on fresh installa72281e5bfix: drop lockdown=confidentiality default for 1.14+f80fd0985fix: reduce stalls in the etcd member promotion cycle3b3e0e955feat: update Go to 1.26.741c0c0a02feat: update CoreDNS to 1.14.7481f98d8cfeat: update Kubernetes to 1.37.0-rc.1dcfb17c96feat: implement support for primary setting for the BondConfig63bd62c9cfix: watch IPv6 route changes in RouteSpecControllerb2693f08efeat: update Linux to 6.18.45398d2be8dfix: enable SELinux to work with overlaysdf72d021ffix: move the spike information field of the time.Status resource8b5f1097bchore: ensure nightlies only run in one regionf7305d6f5feat: impl ContainerInstanceControllerfdf0efa8bfeat: log peer address in gRPC request log013b9489efeat: talosctl dashboard log filtering5fcf360fefix: truncate files replaced by system extensions4c575c207fix: skip target settings for external volume mountsc685f2712chore: update disvulncheck datesaaf35fbdefix: use v1.13 config to test downgrade failure2b0316913test: use tiny hostns debug image42d72ed56feat: move IPVS support into modulesbe6b96386fix: support try mode apply without prior config68876cc1efix: adjust cluster size for VFAT on ISO9cb5dc9b9feat: update containerd to 2.3.432f7fc0dffeat: impl ContainerImageController5675ada21test: add cachefilesd to the test matrixa1183478afix: apply directory user volume mount security55e0f6350fix: install conntrack handler in accept ingress firewall mode1c50b73fbfix: share IPC namespace with the host for extension services6cda3e2e2chore: prepare for Talos 1.158514d9963fix: provide read-only random seed in the ISOChanges from siderolabs/gen
2 commits
cbd9518chore: rekres and update deps26ccee1feat: provide new YAMl unmarshal validator for null valuesChanges from siderolabs/go-debug
1 commit
44d6398feat: support Go 1.27Changes from siderolabs/go-kubernetes
2 commits
1a7f4fbfix: set a logger on the ssa controller-runtime clientf752bb3feat: add Kubernetes 1.38 compatibilityChanges from siderolabs/go-lldp
4 commits
09c4339feat: add a Linux LLDP receiver76e7deffix: stop LLDP decoding at the end markera5ba2a7chore: kresify and lint fixesafd9f83lldp: initial commitChanges from siderolabs/go-pcidb
1 commit
78c9051feat: update PCI IDs to the latest availableChanges from siderolabs/pkgs
53 commits
305b1b6feat: bump deps2a7769efeat: enable bhyve guest support on amd64ce4bafbfeat: enable CONFIG_DRM_ACCEL_AMDXDNA on amd648f7ce6cfeat: enable CONFIG_MOTORCOMM_PHY on arm64fa71c34feat: enable pNFS block and SCSI layouts in nfsdf6b8411feat: add hailort v5 package64af669feat: enable Qualcomm Cloud AI 100 (QAIC) driver518972afix: add a patch to fix booting on Apple hardware2b782b6feat: update Linux to 6.18.54, runc to 1.5.24871c10feat: enable CONFIG_CRYPTO_ECC, CONFIG_CRYPTO_ECDH on arm64 to match amd64b4cb94cfeat: enable CONFIG_BLK_WBT6868054feat: update containerd to 2.3.655806c6feat: update systemd to v262a2b57eefix: add missing sboms for swtpm12b29b3feat: update Linux to 6.18.536868000feat: bump dependenciesbed8e18feat: add swtpm777c95ffeat: enable CONFIG_MACSEC in the kernel99ec357feat: update DRBD & Linux firmwarea51429bfeat(kernel): enable CONFIG_NO_HZ_FULLb39d2c3feat: update Linux to 6.18.5269ed550feat: update Linux to 6.18.51f380535chore: rekres05913b5chore: updates 2026-09-101a28bfbchore: update tools, toolchain, rustce7b09e2feat: enable earth-pt3 dvb driver5096469feat: update libpathrs to 0.2.643e533cfeat: update Linux to 6.18.50977b61ffeat: update containerd to 2.3.543e6298fix: add a kernel patch for EFI SecureBoot integrity lockdowna8b682bfeat: add kernel modules to enable Intel HD audioff111fffeat: enable Apple Silicon platform driverse68eeb5feat: enable VIRTIO_INPUT as built-in for amd64/arm64381fc2dfeat: bump kernel to 6.18.495394321feat: enable CONFIG_USB_LAN78XX and CONFIG_MICROCHIP_PHY on amd644b9bf36fix: preserve symlinks for libudev50bf09ffix: update OpenSSL to 3.6.4f2b7acffeat: update kernel to 6.18.4873327fffeat: bump kernel to 6.18.47b6b2843feat: enable CONFIG_XFRM_INTERFACE in the kernel696fa3cfeat: expose more software as pkgsaa069d3chore: update OpenZFS to 2.4.4c1837b6feat: bump kernel to 6.18.4628f5f23feat: enable SPD5118 sensor driverbc45b69feat: backport aes256k support (Ceph)b914c26feat: update Go to 1.26.7caac515feat: update Linux to 6.18.45ada230afeat: enable IPSec offload and dma-buf heaps33d14e0feat(kernel): enable CONFIG_MLX5_VFIO_PCI107b628feat: kernel: enable MPTCP, sched_extc9173bbfeat: move IPVS into modulesd418aa7feat: update containerd to 2.3.4c4a6a61feat: update Go to 1.26.6Changes from siderolabs/siderolink
6 commits
755a982chore: update dependencies and rekres5d6e09ffix: rework keying of the streams to the peersad296abchore: rekres, bump deps23030b0fix: keep a replacement gRPC stream's send queue after cleanup4b69f46fix: correct the wireguard device error handling5157d0cfix: accept valid short IPv6 packets on filtered devicesChanges from siderolabs/tools
13 commits
32e115cfix: restore llvm 22 for rust compatibility47166adfeat: bump depsd40b203feat: update tools components19bb4b7chore: downgrade llvm to major 22b28aa66chore: bump util-linux 2.42.31023701chore: update dependencies 2026-09-08c3165c7chore: update toolchain image09ccc74feat: bump go to 1.26.835fab51fix: update OpenSSL to 3.6.4e033f2afeat: move more packages into separate imagesd102f15feat: update Go to 1.26.7fd531a3feat: update Go to 1.26.65eabe31chore: rekres 2026-08-12Dependency Changes
486c28bnew1a83157newffadbf3newc308df0->234b974529eae5newfdeea32->3075585cf1189dnewPrevious release can be found at v1.14.0
v1.13.12Compare Source
Talos 1.13.12 (2026-10-21)
Welcome to the v1.13.12 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.57
containerd: 2.2.10
Talos is built with Go 1.26.9
Contributors
Changes
7 commits
cf95cccrelease(v1.13.12): prepare release6491fc0test: adapt minimal settings to new QEMU version6d99d8afix: disable GSO offload on QEMU 10.2+0268524fix: correct handling of DHCP changing addressed1d9ddfix: image verification test004736afix: verify the claim for the legacy bundle image verificationfdd5d23feat: update pkgs/toolsChanges from siderolabs/pkgs
5 commits
19e92dcfeat: update Linux to 6.18.57008f852fix: restore ACPI power buttone112479chore: update DRBD compat97c9a42feat: update Linux to 6.18.562cb821efeat: sync toolchain, tools, containerd 2.2.10Changes from siderolabs/tools
2 commits
38b4a6efeat: update Go to 1.26.103d10a45feat: update for Talos 1.13.12Dependency Changes
Previous release can be found at v1.13.11
Images
v1.13.11Compare Source
Talos 1.13.11 (2026-10-01)
Welcome to the v1.13.11 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Time Check API
The
TimeService/TimeCheckAPI (talosctl time --check) is no longer available to theos:readerrole, as it allows queryingarbitrary time servers from the node. The
TimeService/TimeAPI (querying the configured time server) is still available toos:reader.PTP device paths are now strictly validated both in the machine configuration and in the API: the path should be directly under
/dev,the name should start with
ptp(e.g./dev/ptp0,/dev/ptp_kvm), and the device should be a PTP character device.Component Updates
Linux: 6.18.54
containerd: 2.2.9
Talos is built with Go 1.26.7
Contributors
Changes
13 commits
638bd94release(v1.13.11): prepare release5f3e4fctest: fix up tests for default OCI spec4fe094efix: add validation for the PTP device name56c81cffix: drop devices from the last observed generation if they are gonebd7a2d4fix: perform stricter validation of hostnames/search domainsdbe8e02fix: do not disclose pre-shared Wireguard key in LinkStatus00db0afchore: pass kernel version down to VEX generator5008991fix: reconnect the WireGuard over gRPC tunnel after a failure0077a50fix: drop logical links if they no longer declare as logical29b1e65fix: notify about link alias changes118a773fix(security): define the permissions the 6.18 kernel expects in the classes365e3c4fix: set TCP keealive and user timeout on apid proxied connections080979bfeat: update pkgs/toolsChanges from siderolabs/pkgs
10 commits
642a01bfeat: update containerd to 2.2.93016b61fix: add a patch to fix booting on Apple hardware889ec2bfeat: update Linux to 6.18.54b554743feat: update Linux to 6.18.53574809bfeat: update DRBD & Linux firmware6f29f5dfeat: update Linux to 6.18.521737c02feat: update Linux to 6.18.516b76586feat: update Linux to 6.18.50bb9fe70feat: bump kernel to 6.18.496187366chore: sync toolsChanges from siderolabs/tools
2 commits
b912600feat: update pcre to 10.487b95365chore: bump util-linux 2.42.3Dependency Changes
Previous release can be found at v1.13.10
Images
v1.13.10Compare Source
Talos 1.13.10 (2026-09-03)
Welcome to the v1.13.10 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.48
CoreDNS: 1.14.7
Talos is built with Go 1.26.7
Contributors
Changes
28 commits
00ca4c9release(v1.13.10): prepare release271ce0dfix: update DHCP library3c70f40fix: harden the code around kubelet's client certificate handling40d7de4fix: normalize image reference when passing to image verification flowcf30d6dfix: filter out passed metadata in API proxyingcc556d9fix: treat desired roles empty as error in Talos API access0d7a473fix: allow CSI volumes to be mounted with an SELinux context17ab196fix: validate received kubeconfig934ae8achore: update etcd to v3.6.14df9b82dchore: update pkgs and tools591c53afix: use os.Root in the talosctl extract pathc36d990fix: escape output in the talosctl dashboardfc355dcfix: add checks for meta key in the API pathe950f65feat: update COSI to 1.16.320cafbdfix: route creation churning every 100msc6fe78cchore: reduce verbosity of the grype scanb9696f9fix: preserve special modes when extracting files865aaecfix: use os.Root in the untar path097fa18fix: create parent directories when extracting tar archivesc6edc39chore: bump sigstore/rekor to v1.5.46d062e1fix: write the uploaded etcd snapshot atomicallyf6b7959fix: skip selinux label for read-only/detached/external mountsbea850afix: persist in-memory meta on fresh installdcf46c1fix: reduce stalls in the etcd member promotion cycle0f4d08afeat: update CoreDNS to 1.14.7e091638fix: watch IPv6 route changes in RouteSpecController92614cafix: truncate files replaced by system extensionsb7b27ecfix: skip target settings for external volume mountsChanges from siderolabs/pkgs
5 commits
9b044c5feat: update kernel to 6.18.48de74a50feat: bump kernel to 6.18.47bb15c62chore: update toolchain and tools49c50f7feat: bump kernel to 6.18.462da2cdcfeat: backport aes256k support (Ceph)Changes from siderolabs/tools
3 commits
c70be08chore: update toolchain7791f48feat: use kernel gnu mirrorsd908dc0fix: update OpenSSL to 3.6.4Dependency Changes
5adc3eb->234b974f2248ac-> v1.36.12Previous release can be found at v1.13.9
Images
v1.13.9Compare Source
Talos 1.13.9 (2026-08-19)
Welcome to the v1.13.9 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.44
containerd: 2.2.7
Kubernetes: 1.36.3
Talos is built with Go 1.26.6.
Contributors
Changes
7 commits
3ebd10arelease(v1.13.9): prepare release9ade215feat: update Kubernetes to 1.36.314343cdtest: save the provision test logsb33e5fcfix: support try mode apply without prior config6a8f295fix: share IPC namespace with the host for extension servicesb525b82fix: size the receive/send buffers for nftables netlink7ac5264feat: update Go to 1.26.6Changes from siderolabs/pkgs
5 commits
f541ca4feat: bump kernel to 6.18.44a4f2c26feat: bump kernel to 6.18.4379a7531feat: update Linux firmware to202608189d76bffeat: update backportable dependenciesaf6c08afeat: update Go to 1.26.6Changes from siderolabs/tools
1 commit
a201d19feat: update Go to 1.26.6Dependency Changes
Previous release can be found at v1.13.8
Images
v1.13.8Compare Source
Talos 1.13.8 (2026-08-04)
Welcome to the v1.13.8 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.42
CoreDNS: 1.14.6
Flannel: 0.28.8
Talos is built with Go 1.26.5.
Contributors
Changes
14 commits
3de4932release(v1.13.8): prepare release76de777chore: update dependencies77d5fe2chore: update pkgsa7db9b2fix: verify the public key signed images correctlyd769389fix: use context without cancelation for etcd locks3a2abc0fix: redact resource specs in the merge controllers1531797fix(machined): preserve health when services reach runningfc75754fix: race with PCR extensions and volume unlock2a51fb1feat: update Flannel to 0.28.805471d3feat: update CoreDNS to 1.14.69e0b1cafix: volume mount race (third attempt) around service restartc5cb365fix: ignore insecure-only imager assetsc67b10dtest: update Calico in canal reset test9eca6eafix: preserve trailing rate-limited trigger eventsChanges from siderolabs/pkgs
6 commits
f677246chore: update kernel6c5daf2chore: replace gnu mirror4304e87feat: bump kernel to 6.18.41e66edebfeat: enable PCF8523 RTC support for arm64b2e51fcfeat: bump kernel to 6.18.4033195c5feat: enable CONFIG_NFT_SOCKET in the kernelDependency Changes
Previous release can be found at v1.13.7
Images
v1.13.7Compare Source
Talos 1.13.7 (2026-07-21)
Welcome to the v1.13.7 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.39
containerd: 2.2.6
Flannel: 0.28.7
CoreDNS: 1.14.4
Talos is built with Go 1.26.5.
Contributors
Changes
19 commits
b0039b7release(v1.13.7): prepare releasefc6f9b1test: add nginx to the image cache integrationc6c435btest: increase resource inmem buffer to stabilize the tests202dc15fix: add ca-certificates to talosctl3a14c8dfix: vrf sortinga4c1e6efix: oom podruntime protection57b8616feat: bump CoreDNS, Flannel58a78fefix: use symlinks for init aliases428872bfix: do proper backoff for NTP Kiss-of-Death responses1d55e28feat: add iommufd as a kernel module576638dfix: make audit restartable76328f9fix: avoid image cache mount request churn46f9ac6feat: bring in ifb.ko module0d752e7fix: provide correct handler for Ctrl-Alt-Delete sequencefe9d330fix: terminate log persistence a bit harder7c8021afeat: add --no-reboot flag to upgrade cmda155badfix: do not block volume lifecycle teardown on failed user volumesc63f078fix: flaky tests2bf6b74feat: bring in Linux 6.18.39, containerd 2.2.6Changes from siderolabs/pkgs
6 commits
91fe0a0feat: update Linux to 6.18.391018556feat: enable CONFIG_IOMMUFD and CONFIG_VFIO_DEVICE_CDEVd529479chore: bump nvidia to 580.167.08971fd23fix: enable CONFIG_IFB as a moduleacece91feat: update DRBD to 9.3.3b91905cfeat: update containerd to 2.2.6Changes from siderolabs/tools
1 commit
c2844e6feat: update util-linux to 2.42.2Dependency Changes
7e8f69fPrevious release can be found at v1.13.6
Images
v1.13.6Compare Source
Talos 1.13.6 (2026-07-09)
Welcome to the v1.13.6 release of Talos!
Please try out the release binaries and report any issues at
https://github.com/siderolabs/talos/issues.
Component Updates
Linux: 6.18.38
Talos is built with Go 1.26.5.
Contributors
Changes
15 commits
0431885release(v1.13.6): prepare release9d8e47dchore: update pkgs and tools31552f4fix: shutdown/reboot via usermode helpersbc0c3f3fix: flaky serviceaccount suite test3e75592fix: flaky testsfbe4d90fix: data race in manifest sync6df3a45fix: provide cooldown period for the QoS trigger85f8dd6fix: decode extraArgs list values correctlyc2a56d5fix: kubelet stuck restarting8714408chore: bump rekor for GHSA-47q9-m4ww-924m3e37ef8fix: handle image cache being disabled466bcd8fix: align documented image cache partition labeld3cf09bfix: image verification with referrerse9609b9feat: add AMD XGBE driver to initramfsf18efccchore: update depsChanges from siderolabs/gen
1 commit
c526410fix: skip unknown-key check for types with custom YAML unmarshalerChanges from siderolabs/pkgs
7 commits
d8c80ccchore: update toolchain and tools71874fbfeat: bump kernel to 6.18.38a2406a1feat: bump kernel 6.18.37e410c35feat: update Linux firmware to2026062389b8aafix: patch Linux kernel for tunnel metadata buffer overflow7e4a719feat: add support for AMD XGBE driver1915c58feat: enable NF_TABLES_ARP optionChanges from siderolabs/tools
1 commit
c58afd5chore: bump toolchainDependency Changes
Previous release can be found at v1.13.5
Images
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
f5787865f0tof1f83db842f1f83db842to72fb47ba97Update dependency talosctl to v1.13.6to Update dependency talosctl to v1.13.7Update dependency talosctl to v1.13.7to Update dependency talosctl to v1.13.8Update dependency talosctl to v1.13.8to Update dependency talosctl to v1.13.9Update dependency talosctl to v1.13.9to Update dependency talosctl to v1.14.028e3d6d4cfto946c4c4aacUpdate dependency talosctl to v1.14.0to Update dependency talosctl to v1.14.1946c4c4aacto04fdc99fceUpdate dependency talosctl to v1.14.1to Update dependency talosctl to v1.14.204fdc99fceto300777d9e5Update dependency talosctl to v1.14.2to Update dependency talosctl to v1.14.3300777d9e5to5b75ac7888Update dependency talosctl to v1.14.3to Update dependency talosctl to v1.14.4View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.