1942 Commits

Author SHA1 Message Date
Andrey Smirnov
b7609edd16
chore: update pkgs/extras to final 1.9.0 tags
Almost no changes (pulls in xfs scrub kernel changes).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-29 18:40:59 +04:00
Andrey Smirnov
c7b25430bb
fix: multiple small fixes for service runners
It all started debugging the issue on Talos being stuck on reboot when
`talosctl logs -f kubelet` is being used.

Fixes:

* abort goroutine runner even if the goroutine doesn't terminate - we
  have no way to force termination, so at least don't hang forever
* align timeouts for apid/trustd for graceful termination - so that at
  least the service is not SIGKILLed while it does its own graceful
  shutdown
* in stream chunker, act on canceled context immediately instead of
  relying on `Read` to return: with `logs -f` the reader will block
  forever waiting for new logs

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-29 17:43:03 +04:00
Andrey Smirnov
e33d2f581f
feat: support overriding base OCI spec for CRI
Fixes #9827

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-29 16:22:25 +04:00
Noel Georgi
347b758465
chore: support saving cluster logs on destroy
Support saving cluster logs on destroy

Fixes: #9808

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-29 14:39:15 +05:30
Andrey Smirnov
fc3b31575c
fix: multiple issues with opening encrypted volumes
Fixes #9820

This only affects volumes with multiple key slots configured.

Make sync issues non-fatal, so that if some keys fail to sync, proceed
with normal boot, but record an error in the `VolumeStatus` resource.

When opening, correctly try all key slots.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-28 21:34:41 +04:00
Andrey Smirnov
581c0851d8
feat: update dependencies
Kubernetes: 1.32.0-rc.0
Flannel: 0.26.1
Coredns: 1.12.0

Plus some small bumps.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-28 19:51:02 +04:00
Noel Georgi
e9058461e4
feat: add api-server authorization config
Add support for configuring KubeAPIServer authorization config.

Fixes: #9791

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-28 16:27:50 +05:30
Andrey Smirnov
db1c707689
chore: move enabling SELinux by default to 1.10
For 1.9, we keep it disabled until it gets more production ready in
1.10.

It still can be enabled with `selinux=1`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-28 13:59:50 +04:00
Andrey Smirnov
ef69c9d39b
feat: update Linux to 6.12.1
No other changes, just update default bundled module list.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-27 23:08:14 +04:00
Dmitriy Matrenichev
ccc5a8d34c
chore: split config.Registry into the separate resource
Required for #9614

Closes #9766

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-27 19:58:08 +03:00
Andrey Smirnov
af91c99ba1
chore: update image cache config
Make it nested, so that we can expand easily to support e.g. distributed
cache.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-27 18:18:36 +04:00
Dmitriy Matrenichev
177df62a0e
fix: small logrus fixes
Ensure correct logrus setup.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-26 21:32:52 +03:00
Noel Georgi
939c555f9a
fix: imager disk image-cache generator
Move things around so `talosctl` is not dependent on `go-blockdevice`.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-26 21:47:08 +05:30
Noel Georgi
1bac0b183a
feat: support generating disk images with image cache
Add support for generating disk images with image cache.

Fixes: #9616

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-26 18:52:25 +05:30
Andrey Smirnov
56e1ee72e9
release(v1.9.0-alpha.3): prepare release
This is the official v1.9.0-alpha.3 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-25 18:01:11 +04:00
Dmitry Sharshakov
e899fb37fd
feat: label created files in /etc
Implement SELinux labeling support in EtcFileController, label both squashfs and runtime-created files in /etc and /system/etc.

Add corresponding test cases.

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-11-22 09:16:13 +01:00
Andrey Smirnov
5f68c17eda
feat: implement image cache configuration
Implement a feature flag, a resource which controls the flow.

This controls the volume configuration, mounting, etc.

Fixes #9767

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-21 21:24:39 +04:00
Dmitriy Matrenichev
0ffb2187a3
feat: registry proxy
Implement container registry proxy.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-21 19:28:10 +03:00
Noel Georgi
77cf84fb57
feat: support generating iso with imagecache
Support generating iso with imagecache.

Part-of: #9616

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-21 20:40:05 +05:30
Noel Georgi
5de6275b8f
chore: image cache generator improvements
* Save image in OCI format, so imager can either use as OCI input or from
a registry.
* Support caching layers to a path, so subsequent runs are faster

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-21 20:09:50 +05:30
Dmitry Sharshakov
1a8cc5f8b2
feat: add SELinux labels to volumes
Label mounted filesystems like ephemeral, overlay mounts, as well as data directories (going to become volumes later).

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-11-21 14:23:43 +01:00
Noel Georgi
61b9129e0c
fix: add directory entries and filemode to tarball
Always add directory entries to tarball.
Handle directory v/s files in tarball `build`.
Use the source file info to set file permissions.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-21 15:22:28 +05:30
Noel Georgi
6074a870ad
feat: add e2fsprogs to talos rootfs
Bring in e2fsprogs from pkgs.

Initial support for ext* filesystems.

Fixes: #9746

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-20 21:48:26 +05:30
Andrey Smirnov
cc768037f8
feat: implement block device wipe
Fixes #9731

The wipe doesn't require a reboot, but it requires the blockdevice not
to be used as a volume.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-20 15:46:37 +04:00
Dmitriy Matrenichev
0e3ed30723
fix: no longer leak Close reader
Optimize code.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-20 00:36:20 +03:00
Dmitriy Matrenichev
4dc58cfdf3
chore: small fixes
QoL PR

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-19 22:21:55 +03:00
Andrey Smirnov
f400ae911b
fix: small fixes for image cache generation
* print some progress
* properly save manifests for image refs which are both tagged and
  digested
* skip pulling duplicate blobs

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-20 00:02:38 +05:30
Noel Georgi
93754b7de6
fix: config and platform manifest generation
The initial code missed saving the image config and the platform
specific manifest.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-19 23:20:18 +05:30
Noel Georgi
95b2fc946e
feat: image cache gen
Fixes: #9611

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-19 19:08:38 +05:30
Andrey Smirnov
fd713e4514
feat: add permanent hardware addr to device selectors
This should fix the problem of including bond members by MAC address
when MAC address changes as the link becomes part of the bond.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-18 20:36:39 +04:00
Dmitry Sharshakov
d55a96e8cb
refactor: remove SELinux client_u and client_r
I added those in the early days of the current policy development, yet there was no use for them. This change simplifies the policy and handling of labels.

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-11-18 16:17:03 +01:00
Andrey Smirnov
3a5b55fd22
fix: allow CEL expressions config merge
Fixes #9741

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-18 17:06:27 +04:00
Andrey Smirnov
f9697a9a07
fix: register controlplane node with NoSchedule taint
Fixes #9691

This closes the race between the node registration and the moment
`NodeApplyController` would apply the taint.

As the taint is exactly same as added by `NodeApplyController`, it will
be owned by the controller, so it can be removed if
`allowSchedulingOnControlplanes` is enabled in the machine config while
the cluster is running.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-15 15:45:02 +04:00
Andrey Smirnov
30f8b5a9f7
fix: registry mirror fallback handling
Fixes #9613

This has two changes:

* adjust Talos registry resolver to match containerd (CRI) resolver: use
  by default upstream as a fallback
* add a machine config option to skip upstream as a fallback, and adjust
  CRI configuration accordingly

See https://github.com/containerd/containerd/blob/main/docs/hosts.md#registry-configuration---examples
for details on CRI's `hosts.toml`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-14 20:38:36 +04:00
Dmitriy Matrenichev
e26d0043e0
chore: code cleanup
More usage of slices package, less usage of package sort.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-14 12:25:56 +03:00
Andrey Smirnov
43fe3807a8
feat: implement tracking of blockdevice secondaries
This is going to be used to detect disks that are safe to wipe.

For blockdevices, track secondaries as direct references, e.g. encrypted
`STATE` partition might have secondary `vda5`.

For disks, re-map secondaries to be whole devices names, e.g. `vda`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-13 22:43:27 +04:00
Andrey Smirnov
8a7476c3ae
fix: install on non-empty disk
Fixes #9701

See https://github.com/siderolabs/go-blockdevice/pull/115

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-13 18:43:21 +04:00
Andrey Smirnov
8b4253d185
feat: update etcd to v3.5.17
See https://github.com/etcd-io/etcd/releases/tag/v3.5.17

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-13 14:30:58 +04:00
Andrey Smirnov
9916e2cd8a
chore: update pkgs/tools/extras for Go 1.23.3
Bump some dependencies as well.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-12 16:38:32 +04:00
Sam Stelfox
aea98940b7
fix: arch linux search paths and names for QEMU provisioner
Addresses old and recent change combination that prevents qemu provisioning on
ArchLinux by adding a default search path and the filenames the package
maintainer used.

Signed-off-by: Sam Stelfox <sstelfox@bedroomprogrammers.net>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-12 15:11:24 +04:00
Noel Georgi
682718d4c9
fix: use imager incoming version for extension validation
Use the version coming from imager to validate extension constraints.

Part of : #9694

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-12 15:26:59 +05:30
Andrey Smirnov
9a02ecc49f
feat: rewrite install disk selector to use CEL expressions
Rewrite matcher to take out old go-blockdevice library out of the way,
implementing translation from go-blockdevice format to CEL.

Implement facilities to build CEL expressions programmatically.

Now we can add a machine config disk match expression (CEL) easily.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-11 17:23:15 +04:00
Andrey Smirnov
0290a38818
release(v1.9.0-alpha.2): prepare release
This is the official v1.9.0-alpha.2 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-08 21:06:48 +04:00
Noel Georgi
2001167058
chore(ci): save support zip always after tests
Save `support.zip` always, also use a different folder for saving logs,
so we can save artifacts of multi cluster tests.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-08 19:18:06 +05:30
Andrey Smirnov
6a42c3b8ed
release(v1.9.0-alpha.1): prepare release
This is the official v1.9.0-alpha.1 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-08 15:38:32 +04:00
Nico Berlee
11380f933d
feat: display current CPU frequency on dashboard
Dashboard now shows the active frequency of each CPU core when cpufreq
is available on non-virtualized systems, enhancing real-time accuracy.

Solves the issue of displaying 0MHz on certain SBCs due to
/proc/cpuinfo limitations.

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-08 12:05:48 +04:00
Joakim Nohlgård
fbce267aee
feat: check bridged interfaces should not have addresses
Combine the checks for bonded and bridged interfaces to avoid code
duplication. Add new test case for addresses on bridged interfaces.
Update test cases to match rephrased error messages.
Fix test case implementation for addresses on bonded interfaces to
include eth2 which was configured but not used in the test.

Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-08 11:39:33 +04:00
Andrey Smirnov
0406a05a98
chore: update pkgs to ones built with gcc 14.2
There are no changes to versions of the pkgs themselves.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-07 17:58:02 +04:00
Andrey Smirnov
aa9311f3d8
fix: install disk matcher error
The error was printing wrong field.

See #9647

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-07 16:01:42 +04:00
Noel Georgi
1800f81044
fix: selinux handling and apparmor tests
Conditionally mount selinuxfs only if it's present.

Fix AppArmor tests, `apparmor` and other minor LSM's and set
`apparmor=1`.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-07 07:50:00 +05:30