Commit Graph

1910 Commits

Author SHA1 Message Date
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
Andrey Smirnov
313bffadfb feat: update Kubernetes to v1.32.0-beta.0
The latest v1.32.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-06 20:26:52 +04:00
Andrey Smirnov
bbfa144510 feat: update containerd to v2.0.0
Also pulls in a patch, so

Fixes #9594

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-06 17:51:44 +04:00
blablu
474949dc77 feat: add dm-cache dm-cache-smq kernel modules
https://github.com/siderolabs/pkgs/pull/1075

Signed-off-by: blablu <kk@sudo-i.net>
2024-11-06 15:39:52 +04:00
Noel Georgi
5112547d6b chore: generate support zip for crashdump
Generate support zip on crashdump.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-06 15:54:21 +05:30
Dmitry Sharshakov
a867f85e4c feat: label system socket and runtime files
Set SELinux labels so that services could gain access permissions.

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-11-06 07:29:35 +01:00
Andrey Smirnov
398f714cff feat: update Linux 6.6.59, runc 1.2.1
Update Go dependencies, other releases.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-05 20:10:27 +04:00
Andrey Smirnov
05c620957c feat: allow extra mounts for docker-based talosctl cluster create
Fixes #9607

Use docker CLI syntax, support any kind of mounts supported by docker
CLI.

Also drop modules from `talos` container image, as it's useless to
provide modules in container mode.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-05 16:10:08 +04:00
Dmitriy Matrenichev
cedabeddf7 chore: cleanup code
- Replace unsafe resource interface calls with type-safe versions.
- Remove unused parameter names.
- Minor changes.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-04 21:14:00 +03:00
Dmitry Sharshakov
960a040491 feat: start enabling SELinux
Part of: #9127

Label executables and processes, build, load and manage SELinux policy, enable audit support.

Labeling filesystems, devices and runtime files will be done in further changes, see the full PR.

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-11-04 16:56:53 +01:00
Andrey Smirnov
74b0e8c371 fix: make route normalization keep family
When we normalize the route with e.g. IPv6 all addresses (`::/0`), we
were wiping the family information. Keep the information, and also fix
the scope for such routes.

Fixes #9624

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-04 15:55:12 +04:00
solidDoWant
d8b652150c docs: add warning about NVMe bus path bug
Document NVMe bus path.

Signed-off-by: solidDoWant <fred.heinecke@yahoo.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-31 14:32:04 +04:00
Andrey Smirnov
3e16ab135e feat: update Kubernetes to v1.32.0-alpha.3
See https://github.com/kubernetes/kubernetes/releases/tag/v1.32.0-alpha.3

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-30 20:05:51 +04:00
Joakim Nohlgård
0b8b356777 feat: add BridgePort property to network machine configuration
Allow putting a device into a bridge from device configuration.

Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-30 18:55:40 +04:00
Utku Ozdemir
2136358d65 feat: introduce metal agent mode
Introduce a new operating mode called the metal agent mode.

The mode is activated by the presence of a `/usr/local/etc/is-metal-agent` file under the root FS.

In this mode, Talos will:
- Only run the Initialize sequence, won't follow it up with the install/boot sequences
- Mark STATE partitions as `missing`, so Talos will always be in "not installed" state.
- Block applying configuration via API while in maintenance mode.

This mode can be used, e.g., to collect hardware information from bare-metal servers.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-10-28 23:25:06 +01:00
Andrey Smirnov
dc0c6acbd7 refactor: remove unmaintained github.com/vishvananda/netlink
Replace it with other based on mdlayher/netlink packages.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-28 19:18:15 +04:00
Noel Georgi
9db7a36bfc fix: generation of SecureBoot iso
The Secureboot ISO previously generated has just an EFI parition.

Now generate iso with both the EFI partition and also having ISO
filesystem having the content so *File System transposition* also works.

Fixes: #9565

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-10-28 17:02:59 +05:30
Andrey Smirnov
c755b6d7e4 fix: update the CRI sandbox image reference
Fix the test, and update the reference.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-28 14:52:19 +04:00
Utku Ozdemir
cec290b354 feat: allow extensions to log to console
Allow extensions to opt-in for their logs to be printed in the console, i.e., Talos kernel log buffer as well as their default logging target.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-10-25 18:02:35 +02:00
Joakim Nohlgård
d4cb478a50 docs: improve field description for BridgeSTP, BridgeVLAN
Add more clarifying notes.

Signed-off-by: Joakim Nohlgård <joakim@nohlgard.se>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-25 14:45:58 +04:00
Dmitriy Matrenichev
a13cf76a34 chore: simplify DNSUpstreamController and DNSUpstream resource
This PR does those things:
- Fixes race condition where controller could potentially modify upstream, while other controller is copying its internals to the slice.
- Simplifies `run` function in `DNSUpstreamController` by removing all `Idx` handling.
- Removes `Idx` field from `DNSUpstream`. Upstreams are now sorted by their id with №X prefix.
- `Proxy` Stop is now called from the finalizer. In combination with iterators, this ensures that we only stop upstream when it's fully unreachable.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-10-24 19:29:21 +03:00
Andrey Smirnov
77d7368eae feat: update containerd to v2.0.0-rc.6
See https://github.com/containerd/containerd/releases/tag/v2.0.0-rc.6

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-24 16:54:09 +04:00
Andrey Smirnov
d39393879a fix: rework the 'metal-iso' config acquisition
Fixes #9538

Re-do the implementation by using the volume management primitives, so
that we can avoid/skip old code. This should fix all issues related to
the partition/whole disk.

Fix issues in the volume management (exposed, as we haven't used it this
way before).

Build a test case in `talosctl cluster create` to inject machine config
via `metal-iso`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-24 16:18:50 +04:00
Dmitry Sharshakov
8680351c13 chore: move system extensions' udev rules
Update packages and relevant paths
Ref: siderolabs/pkgs#1053

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-10-23 19:03:25 +02:00
Andrey Smirnov
3067f64c84 feat: update Flannel to v0.26.0
See https://github.com/flannel-io/flannel/releases/tag/v0.26.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-23 14:55:53 +04:00
Andrey Smirnov
534b0ce183 feat: update runc to 1.2.0 final
Via pks.

See https://github.com/opencontainers/runc/releases/tag/v1.2.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-22 16:47:24 +04:00
Andrey Smirnov
375e3da73f feat: update Kubernetes to 1.32.0-alpha.2
See https://github.com/kubernetes/kubernetes/releases/tag/v1.32.0-alpha.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-21 20:02:04 +04:00
Noel Georgi
1b22df48a4 chore: support debug shell for advanced development
Support dropping into a very minimal debug shell.

```bash
sudo -E --preserve-env=HOME _out/talosctl-linux-amd64 cluster create --provisioner=qemu $REGISTRY_MIRROR_FLAGS --controlplanes=1 --workers=0 --with-bootloader=false --with-debug-shell
```

Co-authored-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-10-19 16:56:24 +02:00
Andrey Smirnov
c14b446229 feat: update Kubernetes to v1.32.0-alpha.1
Talos 1.9 is going to be shipped with Kubernetes v1.32 by default.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-18 20:28:14 +04:00
Andrey Smirnov
3d342af447 fix: update incorrect alias for PCIDevice resource
Fixes #9519

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-18 18:19:21 +04:00
Andrey Smirnov
f7d35a5e0b release(v1.9.0-alpha.0): prepare release
This is the official v1.9.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-18 17:50:58 +04:00
Andrey Smirnov
e0434d77d7 feat: update dependencies
Bring in new tools, pkgs, update Go dependencies and others.

In preparation for Talos 1.9.0-alpha.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-17 22:12:50 +04:00
Andrey Smirnov
5c5a248861 feat: add Talos 1.9 compatibility guarantees
To be backported to Talos 1.8 machinery to provide upgrade
compatibility.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-17 16:58:19 +04:00