5919 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>
v1.12.0-beta.0 pkg/machinery/v1.12.0-beta.0
2025-11-14 15:23:39 +04:00
Andrey Smirnov
e62384ba34
fix: re-creating STATE after partition drop
Pulls in https://github.com/siderolabs/go-blockdevice/pull/139.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-14 14:49:48 +04:00
Andrey Smirnov
6919d232ab
docs: update kernel args size
Fixes #12162

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-14 14:49:47 +04:00
Andrey Smirnov
887b296dc5
test: randomize MAC addresses used in the unit-tests
The theory is that makes the unit-test flaky for network controllers.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-14 14:49:46 +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
Mateusz Urbanek
542a67a066
feat: add riscv64 build of talosctl
Add Linux riscv64 build of talosctl.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-11-14 10:47:52 +01: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
Mateusz Urbanek
2c3d30e94f
docs: fix image-cache-path flag description
Fix invalid description of flag, spotted during reviewing docs.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-11-14 08:33:52 +01:00
Adrian L Lange
93f2e87c2d
feat: shorthand for generating secrets to stdout
Fixes #12190

Signed-off-by: Adrian L Lange <git@p3lim.net>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-13 19:50:28 +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
Laura Brehm
399240be3a
feat: drop partitions on reset with system partitions wipe
When resetting+wiping system partitions (`talosctl reset
--system-labels-to-wipe ...`), also drop partitions. This enables
usecases such as relocating EPHEMERAL, etc. with a new machine
config.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-13 16:09:17 +01: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
Noel Georgi
00fe50d868
fix: uefi bootorder setting
Drop setting UEFI bootorder.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-11-13 16:30:52 +05:30
Laura Brehm
3a881184bf
chore: improve error handling for system disk reset
This previously returned immediately on first error, preventing
the "STATE was wiped but META wasn't" codepath from running.

This patch instead collects errors, checking whether META/STATE were
successfully wiped along the way, and unconditionally runs the "delete
state encryption info from META" if STATE was wiped and META wasn't.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-13 10:42:35 +01:00
Laura Brehm
859194e678
chore: extract system+user volume config transformers, test
Move `internal/app/machined/pkg/controllers/block/` `system_volumes.go`
+ `user_volumes.go` (and extras) to
`internal/app/machined/pkg/controllers/block/internal`. Adds plenty of
unit tests.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2025-11-12 16:09:10 +01:00
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
e9b016f809
fix: use strict platform match when pulling images
It only applies to Talos pulling images, not CRI-initiated pulls.

This more of an experiment to fight a random issue when a wrong platform
image is pulled (specifically on arm64 platform accidentally pulling
amd64 image).

Co-authored-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-07 20:10:06 +04:00
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
Andrey Smirnov
75fe475828
fix: stop attaching to tearing down mount parents
This bug showed up as a random deadlock on kubelet restart (might be any
other service though).

With a chain of mount requests, like `/var/log` ->
`/var/log/containers`, there was a chance that a new generation of mount
requests might try to pick up a tearing down parent of the previous
generation leading to a deadlock when the mount can't proceed for the
parent.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-07 13:04:08 +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
e25db484f5
test: disable parallelism in Longhorn tests
Parallel test don't work inside testify suites.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-06 14:49:33 +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
2af69ff357
fix: provide minimal platform metadata always
Fixes #12097

Reverts "fix: provide nocloud metadata with missing network config"

This reverts commit 435dcbf820cd9f8cc9fecc0f7d42819acef36106.

The reverted commit fixes #12097, while minimal platform metadata
fixes issue
https://github.com/siderolabs/omni/discussions/1633#discussioncomment-14577048.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-04 19:45:33 +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
aa24da9aab
fix: bump kubelet credendial provider config to v1
KubeletConfig itself is only `v1beta1`, while `CredentialProviderConfig`
was `v1` for quite some time, including minimum Kubernetes 1.30
supported with Talos 1.12.

Fixes #12112

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-04 13:58:00 +04:00
Justin Garrison
335f917615
feat: add short -c flag for --cluster
Prevents needing to use --cluster and stays consistent with omnictl.

fixes #12127

Signed-off-by: Justin Garrison <justin.garrison@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-04 13:41:53 +04:00
Andrey Smirnov
4c095281be
fix: set a timeout for SideroLink provision API call
Set a global timeout for SideroLink Provision API calls to ensure we can
retry failures.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-03 21:18:09 +04:00
Andrey Smirnov
75e4c4a598
fix: log duplication on log senders
When the buffer Writer is request, code unconditionally started all
senders (in our case, this was always JSON network senders).

This resulted in log duplication on service restart - each time service
is started, the senders goroutine was recreated.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-31 19:15:34 +04:00
Justin Garrison
e3cbc92c05
fix: add video kernel module to arm
Allows for NVIDIA kernel modules to load on arm arch

Signed-off-by: Justin Garrison <justin.garrison@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-31 15:10:44 +04:00
Andrey Smirnov
d69305a670
fix: userspace wireguard handling
This is a fix for the wrong fix in #11204, which was wrong in two ways:

* the ldflags -X override had a wrong variable name, so it had no effect
* but the above even if it worked, only covered "mamangement" part of
  things, while `wgctrl-go` which configures things still has a
  hardcoded location of `/var/run/`.

So the fix is two ways:

* replace the location where the socket is created properly
* use updated forked wgctrl-go which looks in both locations

This keeps all fixes of #11204 - `talosctl cluster create` siderolink
agent works properly with `wg` on the host, and Talos uses proper
location.

Before the fix the location was actually `/var/run` and it randomly
failed depending on the race condition of Talos booting up and managing
`/var`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-30 14:12:38 +04:00
Noel Georgi
ee5fee7c8a
fix: image-signer commands
Use the `image-signer` cli since we cannot pass in docker login credentials saved in keychain to `docker` container.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-29 21:10:00 +05:30
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>
v1.12.0-alpha.2 pkg/machinery/v1.12.0-alpha.2
2025-10-28 20:32:01 +05:30
Andrey Smirnov
fb4bfe851c
chore: fix LVM test
Rework the assertion to be more specific.

The root cause that now LVM marks device mapper devices in a different
way, and we see just two of them.

Co-authored-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-28 18:44:59 +04:00
Andrey Smirnov
f4ee0d1128
chore: disable VIP operator test
It might restart kube-apiserver (due to cert change) at a random moment.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-10-28 18:27:11 +04:00