257 Commits

Author SHA1 Message Date
Mateusz Urbanek
1dffebaf2a
fix: mount throws EPERM on virtiofs with SELinux
Fixes #13245

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-04-30 11:03:06 +02:00
Andrey Smirnov
1f315e6e90
feat: update Linux to 6.18.23
Sync tools/pkgs.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-04-22 17:32:30 +04:00
Andrey Smirnov
015081c768
feat: update dependencies
Sync pkgs/tools, update Go dependencies.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-04-16 23:10:04 +04:00
Noel Georgi
919d8c3655
chore: drop debug shell
Now that talos has native `talosctl debug` `WITH_DEBUG_SHELL` seems not needed.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-03-30 11:06:29 +02:00
Utku Ozdemir
bed2bd414e
feat: add graceful power off support to QEMU VM launcher
The QEMU VM launcher's /poweroff HTTP endpoint now accepts an optional grace-period query parameter (Go duration format, e.g. "5m"). When set, it sends an ACPI power button event via the QEMU monitor socket instead of immediately killing the process, allowing the guest OS to shut down cleanly. If the guest does not shut down within the grace period, the process is force-killed as a fallback.

Without the parameter, the behavior is unchanged (immediate kill).

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2026-03-26 16:57:24 +01:00
Andrey Smirnov
ad72c73006
test: improve maintenance API provision tests
Add a test that covers all maintenance APIs in general.

Add a test for transition from SideroLink.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-24 22:00:27 +04:00
Noel Georgi
e7e21fe8ee
feat: bump dependencies
Bump dependencies.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-03-15 20:53:59 +05:30
Andrey Smirnov
e6d8669fb7
feat: update Go to 1.26.1
Update via pkgs/tools.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-06 23:00:10 +04:00
Mateusz Urbanek
009f0d6ca0
chore: update pkgs
Update pkgs to v1.13.0-alpha.0-61-g3c982f8

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-02-25 08:24:09 +01:00
Andrey Smirnov
7cf1de2794
fix: bring in new version of go-cmd and go-blockdevice
See:

* https://github.com/siderolabs/go-blockdevice/pull/147
* https://github.com/siderolabs/go-cmd/pull/9

Lots of changes through the code as I deprecated `Run`, `RunWithContext`
methods and allow only new `RunWithOptions` to clean up the library
usage.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-23 21:06:22 +04:00
Dmitrii Sharshakov
9758bd4fe0
feat: update Go to 1.26
Via tools/pkgs, also pulling in Clang-built Linux

Update go.mod dependencies

Fix linter errors with new golangci-lint, modernize, use new()

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-19 22:15:19 +01:00
Andrey Smirnov
9690dbad02
chore: bump tools (including linter)
Re-generate, fix new linting issues.

Update containerd library to the latest 2.2.1 to address the new cgroups
package import (via tools update).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-09 13:07:35 +04:00
Noel Georgi
938de566ec
feat: bump kernel
Bump kernel to 6.18.8

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-02-03 05:20:58 +05:30
Dmitrii Sharshakov
e48c6d7ab9
fix: allow to expose a port multiple times in Docker
This change prevents user-specified exposed ports from overriding the
default ones.

This allows one e.g. to export the Kubernetes endpoint both at the
default random port and at a specified host address.

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2026-01-26 20:46:03 +01:00
Andrey Smirnov
b9e27ebe72
feat: update Linux kernel with dm-integrity
Update pkgs with Linux 6.18.6 and dm-integrity module added.

Drops some crc kmods, as they are now compiled in.

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

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-26 13:50:12 +04:00
Noel Georgi
27253d7317
feat: use new xfs config file
Use new xfs config file version.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-01-09 18:06:46 +05:30
Andrey Smirnov
43937c1cd4
feat: update Linux and systemd
Bump Linux to 6.18.2 and systemd to 259.

Also cryptsetup 2.8.3.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-12-24 20:52:21 +04:00
Dmitrii Sharshakov
3dfa4d6e40
fix: make upgrade work with SELinux enforcing=1
Add a test for this case

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>

Co-authored-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-12-23 13:43:38 +04:00
Andrey Smirnov
39117d4576
feat: update dependencies
Bump Go modules, Helm charts, other versions.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-12-18 22:59:51 +04:00
Noel Georgi
94905c73e9
feat(talosctl): support running qemu x86 on Mac
Supporting running x86 VM's on Mac.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-12-16 12:39:49 +05:30
Mateusz Urbanek
694f45413f
feat: external volumes
Add new volume type for managing external volume mounts - Virtiofs volumes

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-12-15 14:35:52 +01:00
Andrey Smirnov
74c1df6f4b
test: propagate MTU size to QEMU in talosctl cluster create
Set the MTU in QEMU launch args. MTU is already sent by DHCP to Talos
machines, so the rest should just work.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-12-10 15:30:14 +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
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
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
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
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
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
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
Dmitrii Sharshakov
053fd0bd4d
feat: update Linux to 6.17
Also update module lists, pull in other tools/pkgs updates.

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-10-06 16:52:16 +02:00
Andrey Smirnov
7f048e962e
feat: update dependencies
Bump PKGS (Linux 6.16.9), tools, other go.mod dependencies.

Fix the linting issues.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-30 20:55:29 +04:00
Andrey Smirnov
1fca111e24
feat: support setting wake-on-lan for Ethernet
Fixes #11866

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-22 21:05:50 +04:00
Mateusz Urbanek
9db6dc06c3
feat: stop mounting state partition
Fixes #11608

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-09-18 15:34:28 +02:00
Noel Georgi
895133de99
feat: support configuring PCR states to bind disk encryption
See 4b840414be for more information.

Talos versions prior to 1.12 locked to PCR 7 state and PCR 11 for signed policies.

In-order for backwards compatibility newer installs will still default to PCR 7 state. Locking to PCR 7 can be disabled by passing an empty list.

Fixes: #10677

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-09-05 20:08:01 +05:30
Andrey Smirnov
e5acb10fcc
feat: update pkgs
Pulls in https://github.com/siderolabs/pkgs/pull/1319

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-03 13:57:21 +04:00
Dmitrii Sharshakov
639f0dfdd8
feat: update Linux to 6.16.4
Also integrates GCC 15 update and minor bumps from tools and pkgs.

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-09-01 12:19:16 +02:00
Dmitrii Sharshakov
a1c0e237d6
feat: update Linux to 6.15.11, Go to 1.25
Via pkgs and tools. Also bump go-debug for Go 1.25 support.

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-08-28 12:59:17 +02:00
Andrey Smirnov
92db677b5d
fix: image cache lockup on a missing volume
When one of the image cache volumes (ISO/disk) is missing,
the controller locks up on shutdown as one of the `VolumeStatus`es is
gone, while other one is locked up on the mount status which is being
held by the finalizer from the controller.

Drop the early exit from the controller to ensure it will keep
processing volumes even if one of them is missing, so that we reach the
code which removes the finalizer.

Fixes #11341

Fixes #11540

Also, unrelated fix for the problem in `talosctl cluster create` with
ISO and bootloader disabled: on reboot QEMU still boots from disk, while
we want to boot from compiled initramfs.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-08-18 18:43:01 +04:00
Orzelius
26bbddea95
fix: darwin build
update darwin specific findAPIBindAddrs func

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
2025-08-15 17:32:11 +09:00
Andrey Smirnov
c079119337
chore: refactor how tools are being installed
Move stuff into `tools/go.mod`.

Also fix linting issues on the way (updating golangci-lint).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-08-14 17:45:39 +04:00
Mateusz Urbanek
a60101c551
fix: fill serial using helpers
Fixes #11348

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-07-22 08:29:03 +02:00
Dmitrii Sharshakov
c38682279b
feat: bump pkgs and tools, read extensions' SBOMs, rekres
SBOMs from /usr/local/share/spdx will now also be read, this is to be
used by system extensions. Add a sample for testing this feature.

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-07-16 14:57:02 +02:00
Andrey Smirnov
850579448e
feat: export SBOM as resources
Fixes #10942

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-09 16:48:48 +04:00
Andrey Smirnov
7f0300f108
feat: update dependencies, Kubernetes 1.34.0-alpha.2
Bump all dependencies, many small changes due to new golangci-lint
version.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-06-30 19:05:22 +04:00
Orzelius
3035744a80
fix: correctly predict interface name on darwin
Old implementation didn't work if the interface to be created wasn't the biggest index.

For example if interfaces `bridge100` and `bridge102` already existed, vmnet would create a `bridge 101`,
but the old logic expected a `bridge103`.

Signed-off-by: Orzelius <albert.kostusev@siderolabs.com>
2025-06-09 21:57:33 +09:00