2309 Commits

Author SHA1 Message Date
Mateusz Urbanek
aebbbaf274
feat: support relative voume size
Include percent-based maxSize, e.g. use 50% of available space.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 83f2bdb9ce6c9466716a6ac9c94dc2222e569ee8)
2025-11-14 16:55:51 +01:00
Andrey Smirnov
3d997d7421
release(v1.12.0-beta.0): prepare release
This is the official v1.12.0-beta.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-14 15:23:39 +04:00
Andrey Smirnov
6063fbf912
feat: update dependencies
Many small changes, linting fixes, migration to moby/moby client
package.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-14 14:49:44 +04:00
Andrey Smirnov
68560b53ab
fix: split volume/disk locators
Don't guess based on the volume type, but use explicit fields for
different locators.

IMAGECACHE-ISO is a disk volume, but uses full volume locator (by
filesystem type, etc.)

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-14 12:18:22 +04:00
Andrey Smirnov
5e1de00359
feat: implement time and resolvers multi-doc configuration
Fixes #10954

Fixes #10955

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-13 19:27:14 +04:00
Noel Georgi
5cca966557
feat: add new rockchip sbcs
Add new Rockchip SBC's.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-11-13 18:26:55 +05:30
Mateusz Urbanek
308c6bc414
feat: add full disk volumes
When set to `disk`, a full block device is used for the volume.

When `volumeType = "disk"`:
- Size specific settings are not allowed in the provisioning block (`minSize`, `maxSize`, `grow`).

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-11-12 14:50:56 +01:00
Andrey Smirnov
82ac1119ec
feat: implement new registry configuration
Move to using multi-doc registry configuration.

Fixes #12120

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-12 17:25:01 +04:00
Andrey Smirnov
106f45799d
feat: update Linux kernel with userfaultfd/VDPA
See:

* https://github.com/siderolabs/pkgs/issues/1360
* https://github.com/siderolabs/pkgs/issues/1314

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-12 17:02:18 +04:00
Laura Brehm
721a1e0d7c
chore: rename+improve client.ErrEventNotSupported
`client.ErrEventNotSupported` was a simple sentinel with no information.

Replaced it with `client.EventNotSupportedError`, a struct implementing
error with the offending TypeURL included.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-12 11:42:41 +01:00
Laura Brehm
43f4e317f1
fix: race between VolumeConfigController and UserVolumeConfigController
Previously, system volumes (`META`, `STATE`, etc.) were created by
`VolumeConfigController` and user volumes were created by
`UserVolumeConfigController`. This resulted in these controllers
racing to create volumes, which could cause partitions to be created in
an incorrect order.

This patch fixes this potential race by merging these two controllers
into a single controller, and refactoring a lot of the similar code
paths into one single pipeline for volume config handling.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-12 12:11:17 +04:00
Laura Brehm
66c01a706f
chore: deprecate interactive installer mode
Removes `interactive` from `talosctl apply-config --mode interactive`,
and deprecates related APIs.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-11 18:22:38 +01:00
Laura Brehm
957770f65a
feat(machined): add panic/force mode reboot
In certain situations, Talos's shutdown/reboot sequence hangs while
waiting for services/mounts to be gracefully stopped (see:
https://github.com/siderolabs/talos/issues/11775).

This patch adds a forceful mode to the reboot sequence (`talosctl reboot
--mode force`) that bypasses graceful userspace teardown and hard
reboots the machine.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-11 12:08:34 +01:00
Andrey Smirnov
60be0daf84
feat: implement multi-doc Wireguard config
Fixes #10963

Also hides/deprecated `.machine.network.interfaces`, as every piece of
it is now available as proper multi-doc.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-10 19:05:58 +04:00
Noel Georgi
cf014cb5d3
fix: only set default bootloader if none is set
Only set a default bootloader if none is set, secureboot still always return `sd-boot`.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-11-10 14:17:21 +05:30
Andrey Smirnov
fafab391b4
feat: update Kubernetes to 1.35.0-alpha.3
See https://github.com/kubernetes/kubernetes/releases/tag/v1.35.0-alpha.3

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-07 17:58:11 +04:00
Noel Georgi
7bf3aaca91
feat: allow glibc aarch64 so files in extensions
See https://github.com/siderolabs/extensions/pull/875

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-11-07 18:25:38 +05:30
Andrey Smirnov
c8561ee2d0
feat: implement bridge multi-document config
Fixes #10962

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-07 13:59:25 +04:00
Andrey Smirnov
f4ad3077b0
feat: implement bond multi-doc configuration
Also expand internal bond configuration to cover missing fields.
They are not going to be exposed in legacy configuration.

Fixes #10960

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-07 13:45:09 +04:00
Dmitrii Sharshakov
c93a9c6b41
fix: improve OOM controller stability and make test strict on false positives
- Add d_* PSI derivative values to the trigger expression context
- Only trigger OOM action while PSI is rising
- Make OOM test fail if controller kills a cgroup without stress-ng
- Wait for stress-mem to terminate before proceeding with the next tests
- Skip OOM test when running with race detector

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-11-06 19:52:46 +01:00
Andrey Smirnov
021bbfefbe
feat: update Go 1.25.4, containerd 2.1.5
See https://github.com/containerd/containerd/releases/tag/v2.1.5

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-06 17:04:43 +04:00
Andrey Smirnov
54b93aff0c
feat: update Linux 6.17.7, runc 1.3.3
See https://github.com/opencontainers/runc/releases/tag/v1.3.3

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-05 19:15:39 +04:00
Andrey Smirnov
92eeaa4826
fix: update YAML library
Update COSI, and stop using a fork of `gopkg.in/yaml.v3`, now we use new
supported for of this library.

Drop `MarshalYAMLBytes` for the machine config, as we actually marshal
config as a string, and we don't need this at all.

Make `talosctl` stop doing hacks on machine config for newer Talos, keep
hacks for backwards compatibility.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-04 15:21:57 +04:00
Andrey Smirnov
be028b67a0
feat: add support for multi-doc VLAN config
Fixes #10961

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-29 17:20:24 +04:00
Mateusz Urbanek
f3df0f80b9
feat: add directory backed UserVolumes
Resolves #11848

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-10-29 12:00:24 +01:00
Pranav
0327e77902
feat: add support for dashboard custom console parameter
Fixes #12070

Signed-off-by: Pranav <pranavppatil767@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-29 14:42:56 +04:00
Noel Georgi
fed948b8ae
release(v1.12.0-alpha.2): prepare release
This is the official v1.12.0-alpha.2 release.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-28 20:32:01 +05:30
Noel Georgi
288f638726
feat: bump deps
Bump dependencies.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-27 19:51:37 +05:30
Utku Ozdemir
b66482c529
feat: allow disabling injection of extra cmdline in cluster create
The command `talosctl cluster create` injects some extra cmdline though SMBIOS OEM variable `io.systemd.stub.kernel-cmdline-extra` when systemd-boot is used (e.g., when UEFI is enabled).

Introduce a new flag to optionally disable this behavior. This allows getting more consistent behavior when testing with a mixed set of UKI and non-UKI machines.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-10-27 12:01:36 +01:00
Andrey Smirnov
704b5f99e6
feat: update Kubernetes to 1.35.0-alpha.2
Start getting on K8s 1.35 for Talos 1.12.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-27 12:49:48 +04:00
Andrey Smirnov
1dffa5d996
feat: implement virtual IP operator config
Fixes #10959

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-24 17:37:03 +04:00
Orzelius
43b1d75375
fix: validate provisioner when destroying local clusters
Return an error when attempting to destroy a cluster that was created
with a different provisioner.

This fixes a bug where the qemu cluster state is removed without any actual
cleanup being done when running `talosctl cluster destroy` (provisioner defaults to docker).

* move the the `vm.State` logic into -> `provision.State` as it's now reused by the docker provisioner as well.
* move "cluster create" command -> "cluster create dev"
* hide the "cluster create" command from docs
* fix omni api url validation
* fix machineconfig.yaml being unnecessarily written to disk on the qemu command

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
2025-10-24 20:55:35 +09:00
Noel Georgi
b494c54c81
fix: talos import on non-linux
Otherwise it fails to import talos on linux machines due to build constraints.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-24 16:29:45 +05:30
Noel Georgi
61e95cb4b7
feat: support bootloader option for ISO
Support selecting bootloader option for ISO.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-24 15:26:09 +05:30
Andrey Smirnov
d110727263
fix: provide offset for partitions in discovered volumes
This was missing in the resource which makes rendering partitions
in the GUI hard.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-23 21:25:42 +04:00
Andrey Smirnov
39eeae9631
feat: update dependencies
CoreDNS 1.13.0
Linux 6.17.4

Other go.mod dependencies, tools, Helm charts used in tests, etc.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-23 19:10:48 +04:00
Mateusz Urbanek
c0772b8eda
feat: add airgapped mode to QEMU backed talos
Add new `--airgapped` flag to talos cluster create (qemu)
to disable NAT in the VMs to effectively become airgapped.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-10-22 18:10:27 +02:00
Andrey Smirnov
ac60a9e27d
fix: update test for PCI driver rebind/IOMMU
Use `e1000` emulation instead of `virtio-net`, as with new network
config if we create another `virtion-net` link, Talos is confused which
one should be aliased, and networking config is broken.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-22 19:01:12 +04:00
Andrey Smirnov
6c98f4cdb0
feat: implement new DHCP network configuration
Fixes #11661

Fixes #10958

This also implement proper client identifier handling.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-21 20:51:58 +04:00
Dmitrii Sharshakov
4e12df8c5c
test: integration test for OOM controller
- Improve docs
- Disable OOM controller in container mode
- Log OOM events
- Add an integration test verifying the system can sustain an OOM event

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-10-20 17:50:59 +02:00
Andrey Smirnov
ec0a813fac
feat: unify cmdline handling GRUB/systemd-boot
Use cmdline from the UKI in Talos 1.12+ by default for new installs.

This brings GRUB in line with systemd-boot vs. cmdline behavior.

Fixes #12019

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-17 16:00:46 +04:00
Noel Georgi
ced57b047a
feat: support optionally disabling module sig verification
Support disabling kernel module signature verification.
Note that this does not work when SecureBoot is enabled.

Fixes: #11989

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-16 20:18:46 +05:30
Mateusz Urbanek
dbdd2b237e
feat: add static registry to talosctl
Fixes #11928
Fixes #11929

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-10-16 14:08:17 +02:00
Dmitrii Sharshakov
59d9b1c75d
feat: update dependencies
This pulls in Linux 6.17.3, Tenstorrent 2.4.1 and NVIDIA LTS 580.95.05.

Also update calico canal manifest for tests to support running without
iptables-legacy

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-10-16 08:43:17 +02:00
Michael Smith
8dc51bae79
feat: add drm_gpuvm and drm_gpusvm_helper modules
See https://github.com/siderolabs/pkgs/pull/1348

Signed-off-by: Michael Smith <mikejsmitty@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-14 19:42:14 +04:00
Noel Georgi
061f8e76fd
feat: bump pkgs
Bump Go to 1.25.3

See: https://github.com/siderolabs/pkgs/pull/1353

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-14 15:42:28 +05:30
Justin Garrison
a9fa852dad
feat: update uefi image to talos linux logo
Use new Talos Linux logo.

Signed-off-by: Justin Garrison <justin.garrison@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-13 22:43:30 +04:00
Noel Georgi
04753ba698
feat: update go to 1.25.2
See https://groups.google.com/g/golang-nuts/c/Gxn25BP4MXk/m/3KrM-XBOBAAJ

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-08 19:33:11 +05:30
Andrey Smirnov
9a42b05bda
feat: implement link aliasing
Fixes #10956

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-08 16:27:27 +04:00
Andrey Smirnov
8d1468209a
fix: stop populating apiserver cert SANs
This affects machine config generation 1.12+: Talos for a long time
automatically pushes controlplane endpoint hostname into certificate
SANs, there is no reason to populate this field in the machine config.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-07 17:19:25 +04:00