310 Commits

Author SHA1 Message Date
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
Noel Georgi
37e4c40c6a
fix: skip module signature tests on docker provisioner only
Only skip the kernel module signature verification tests on docker provisioner only.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-10-17 15:43:37 +05:30
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
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
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
7bae5b40b4
feat: implement link configuration
New multi-doc way to apply static configuration to network links.

Fixes #10957

Also implements related changes:

* new-style auto-DHCP mode - run DHCP as long as there is no new-style
  config document
* refactoring of controllers/tests which were touched in this PR
* implemented embedded config structs handling in docgen -> Markdown and
  docgen -> JSON schema

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-25 18:28:06 +04:00
Andrey Smirnov
53ce93aaed
test: try to clear connection refused more aggressively
Try to stabilize some tests.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-18 14:11:37 +04:00
Noel Georgi
b88f27d804
chore: make reset test code a bit better
Simplify the reset test code.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-09-16 19:53:02 +05:30
Andrey Smirnov
1cde53d017
test: fix several issues with tests
One issue is with update hostname tests which runs against Talos v1.11
machine config which contains legacy fields which need to be removed.

Another is an attempt to refactor apply-try tests.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-16 16:41:37 +04:00
Mateusz Urbanek
2120904ec5
feat: create detached tmpfs
Fixes #10159

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-09-15 13:00:18 +02:00
Andrey Smirnov
a2122ee5cb
feat: implement HostConfig multi-doc
Fixes #10952

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-12 14:28:50 +04:00
Andrey Smirnov
f85f82f32f
test: fix flakiness in RawVolumes test
We test for labels immediately after volume status is ready, but we
should instead wait a bit for labels to be discovered.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-11 16:49:48 +04:00
Andrey Smirnov
8b64f68f69
test: improve test stability
Fixes #11780

Couple of changes:

* clear connection refused before apply config with reboot (no-op CRI
  patch test)
* improve log output in volume tests
* drop locking in vgcreate, as it seems to conflict with background disk
  scans (by Talos or udevd)

Co-authored-by: Noel Georgi <git@frezbo.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-10 14:34:06 +04:00
Andrey Smirnov
2b556cd22a
feat: implement multi-doc StaticHostConfig
Fixes #10953

This the very first migrated document. I picked up a very simple
configuration document to build some initial idea how we handle
migration of the config documents to the new format.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-08 14:38:18 +04: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
6a389cad35
chore: update dependencies
Update Go modules, some test dependencies, bump tools, etc.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-09-02 14:14:53 +04: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
Andrey Smirnov
a5f3000f2e
feat: implement encryption locking to STATE
Fixes #10676

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-08-01 18:24:56 +04:00
Andrey Smirnov
3751c8ccfa
test: wait for service account test job longer
It seems we hit the 30s timeout with network chaos tests.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-28 20:06:03 +04:00
Andrey Smirnov
5f442159b2
feat: unify disk encryption configuration
Deprecate/hide old v1alpha1 disk encryption config, and move to
unified approach via `VolumeConfig` resource.

Allow only encryption configuration for `STATE` (for now).

Fixes #10749

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-24 19:08:48 +04:00
Noel Georgi
38e176e594
chore(ci): fix datasource versioning
Fix datasource versioning for container images.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-07-24 15:23:06 +05:30
Noel Georgi
450b30d5a9
chore(ci): add more nvidia test matrix
Add more NVIDIA tests covering all supported OSS and Proprietary LTS and Production driver versions.

Fixes: #11398

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-07-22 23:17:36 +05:30
Andrey Smirnov
cb7ca17bba
feat: implement ExistingVolumeConfig
Fixes #11153

The idea is to allow to mount existing partitions on a Talos machine so
that they are available for workloads.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-22 14:32:31 +04:00
Mateusz Urbanek
a857c696fa
chore(machined): remove deprecated Endpoints
Remove deprecated core/v1.Endpoints in favor of discovery/v1.EndpointSlices.

Fixes #11322

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-07-22 09:32:59 +02:00
Mateusz Urbanek
9920da3e1a
feat: add etcd downgrade API
Fixes #11058

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-07-16 15:33:51 +02:00
Andrey Smirnov
da5a4449f1
feat: implement raw volume support
Fixes #10931

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-14 13:46:50 +04:00
Andrey Smirnov
a957ef4163
feat: add SBOMs to the imager container
Fixes #10939

E.g. we can consume it from the Image Factory side.

Also enable timestamp rewriting for output images, goes from
`SOURCE_DATE_EPOCH`.

See https://github.com/moby/buildkit/blob/master/docs/build-repro.md#source_date_epoch

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-11 17:05:26 +04:00
Mateusz Urbanek
0b8c180b82
fix: rename instances to referenceCount
ReferenceCount is a more common name, so replacing Instances will
provide better UX and will match online resources.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-07-10 18:39:31 +02:00
Mateusz Urbanek
b8fcf3c712
fix: change module instance evaluation
A minor change to validation of LoadedKernelModules (Instances field).
This field should be non-negative, zero should be treaded as correct
value.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-07-10 12:33:15 +02:00
Andrey Smirnov
6415055847
feat: support project quota support for user volumes
Just exposting existing value via the config.

Fixes #11090

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-09 19:35:10 +04: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
Mateusz Urbanek
8789a02c3e
feat: present loaded kernel modules
Fixes #11280

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-07-07 15:13:14 +02:00
Andrey Smirnov
33ecbaec6d
test: update apply config tests
Make the setup phase of the test a bit more consistent - wait for the
machine to be ready, connection refused to be cleared (after reboots).

This doesn't change anything in the tests themselves, but hopefully
should reduce number of flakes like: https://github.com/siderolabs/talos/actions/runs/15895820994/job/44827039818

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-04 19:04:15 +04:00
Andrey Smirnov
3801413309
feat: expose kernel cmdline as a resource
Fixes #11279

Co-authored-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-07-02 15:31:10 +02:00
Andrey Smirnov
c880835c80
feat: implement zswap support
Zswap allows to compress pages in memory before they hit the actual swap
device.

Both swap and zswap (or either one of these) can be enabled.

Fixes #10675

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-06-30 20:17:27 +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
Andrey Smirnov
d32ccfa598
feat: implement swap support
Fixes #10674

Provide a way to see current swap status, configure additional swap
devices (block) and de-configure them on the fly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-06-11 14:25:38 +04:00
Andrey Smirnov
c7d4191e78
fix: rework the way CRI config generation is waited for
Instead of relying on the fact that CRI patch should modify the
generated final CRI config, rely on the specific checksum of the CRI
patch to be included into the generated CRI config.

This also to resolve Talos hanging on boot when a CRI patch is a no-op
(it doesn't change the generated config).

Fixes #11132

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-06-03 14:56:52 +04:00
Andrey Smirnov
0b99631a0b
fix: bump apid memory limit
Fixes #11046

Test up to the maximum gRPC message size as we support.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-05-20 22:54:56 +04:00
Andrey Smirnov
da67952666
fix: disable automatic MAC assignment to bridge interfaces
Linux kernel has the following policy:

* initial bridge MAC is random
* if the bridge MAC is not set explicitly by userspace,
  bridge MAC is the smallest MAC address of all ports

But systemd-udevd which we use started to assign "stable" MACs to bridge
interfaces (when they are created), which Linux kernel treats as
userspace explicitly set, so the bridge no longer gets an automatic MAC
of the ports.

This is a breaking change, so we need to revert it.

Fixes #10884

Fixes #11011

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-05-15 18:45:16 +04:00
Andrey Smirnov
c6824c2114
fix: deny apply config requests without v1alpha1 in "normal" mode
In maintenance mode, we still accept any config.

Fixes #10897

As "normal" mode requires v1alpha1 config today, it should be an easy
fix to require it part of the applied config always.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-05-05 20:06:37 +04:00
Noel Georgi
1299aaa45d
chore(ci): add extensions test for Youki runtime
Add extensions test for Youki container runtime.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2025-05-01 08:28:09 +05:30
Andrey Smirnov
8013aa06cd
test: replace platform metadata test
It seems that the integration test introduced in
https://github.com/siderolabs/talos/pull/10792 is causing some
unintented side-effects in kube-apiserver -> kubelet communication (most
probably around the TLS certificate??).

Instead of assigning dummy external IP, create a dummy link.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-30 16:56:12 +04:00
Andrey Smirnov
f7c5b86be7
fix: sync PCR extension with volume provisioning lifecycle
Ensure volumes are not locked to the wrong value of PCR.

Fixes #10665

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-25 17:41:29 +04:00
Andrey Smirnov
8db34624c6
fix: handle correctly changing platform network config
The bug was with incorrect condition: if `activeNetworkConfig` was ever
set to non-nil value, it was stuck with this value forever, despite new
network config being available with `networkConfig`.

In `talosctl dashboard` case, Talos `metal` platform always reports
initial data (before META is available) which doesn't have any network
config, but later on sends updates (if something updates META), so this
bug leads to Talos being stuck with initial empty network config.

Fixes #10787

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-24 20:04:46 +04:00
Dmitrii Sharshakov
be3f0c018c
fix: fix Gvisor tests with containerd patch
Fixes #10681

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-04-23 13:42:24 +02:00
Andrey Smirnov
8cd3c8dc77
test: fix NVIDIA OSS tests
Add more logging output.

Force non-UEFI boot.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-15 21:15:36 +04:00
Andrey Smirnov
664fa36973
feat: implement user volumes
User volumes are identified by a short name which serves both
as a `/var/mnt` mount point and a partition label.

User volumes can be added and removed on the fly, and they are
automatically propagated into the `kubelet` mount namespace.

Also deprecate `.machine.disks`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-11 20:27:39 +04:00
Dmitrii Sharshakov
c1bec3cd0d
test: add negative tests for SELinux
Make sure a privileged pod cannot violate some of the important security rules enforced by SELinux.

Fixes #10615

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2025-04-11 14:15:20 +02:00