722 Commits

Author SHA1 Message Date
Andrey Smirnov
5bc3e34cb3
fix: detect GPT before ZFS
Fixes #10069

Pulls in https://github.com/siderolabs/go-blockdevice/pull/122

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-01-13 18:35:42 +04:00
Andrey Smirnov
bbd6067d42
fix: partition alignment on disks with 4k sectors
Fixes #10097

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

I added an option to QEMU provisioner to create disks with custom block
sizes (supported for some disk types).

Unfortunately, this case can't be built as a regression as QEMU's
firmware boots fine with ESP partition at 256/1024/2048 LBA.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-01-09 19:54:43 +04:00
Andrey Smirnov
4761a9e6aa
chore: update dependencies
Go modules, tools, pkgs, etc.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-26 14:48:31 +04:00
Andrey Smirnov
b72bda0a42
fix: talosctl support and race tests
1. Don't set max cgroups limit if race mode is enabled (only in test
   mode). When e.g. apid/trustd are built with race detector on, they
   consume 10x the memory.
2. Fix a data race in `talosctl support` when showing UI progress.
3. Fix an issue pulling `kubeconfig` in `talosctl support` - pull from
   endpoints (controlplanes) without setting any nodes.

Fixes #10036

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-25 21:05:27 +04:00
Andrey Smirnov
5dc15e8db4
fix: update go-blockdevice to v2.0.9
Pulls in https://github.com/siderolabs/go-blockdevice/pull/120

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-25 15:04:45 +04:00
Andrey Smirnov
73c82e3e56
feat: bring Linux 6.12.6, CNI plugins 1.6.1
To be backported to Talos 1.9.1.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-20 18:25:57 +04:00
Dmitriy Matrenichev
dec0185c85
chore: reduce memory usage for secureboot functions
Mostly by using new version of `go-uefi` module and streaming instead of loading all at once.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-12-20 02:11:13 +03:00
Andrey Smirnov
8003536c7c
fix: restore previous disk serial fetching
See https://github.com/siderolabs/go-blockdevice/pull/119

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-18 15:03:53 +04:00
Andrey Smirnov
284ab11794
feat: support link altnames/aliases
At the moment, we don't use/support aliases, but we might in the future.

Altnames are filled out by `systemd-udevd`.

This PR has two parts:

* show aliases & altnames in `LinkStatus`
* match links by aliases/altnames when we configure
  addresses/routes/links

This should make a transition to `systemd-udevd` less painful if the
previous link name is in `altNames`.

Forked rtnetlink for https://github.com/jsimonetti/rtnetlink/pull/241

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-17 14:09:26 +04:00
Andrey Smirnov
590c016571
feat: update containerd to v2.0.1
See https://github.com/containerd/containerd/releases/tag/v2.0.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-16 15:03:11 +04:00
Andrey Smirnov
58236066dd
fix: support image cache on VFAT USB stick
Scenario: copy contents of the ISO to the USB VFAT stick.

Make sure VFAT filesystem has a label `TALOS_*`.

Fixes #9936

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-13 17:15:24 +04:00
Andrey Smirnov
d45e8d1d1d
feat: update Kubernetes to 1.32.0
Final Kubernetes release for Talos 1.9.0.

Also update COSI to pull in a fix for watch restarts:
https://github.com/cosi-project/runtime/pull/512

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-12 22:51:33 +04:00
Andrey Smirnov
5a4bdf62a9
feat: update Kubernetes to 1.32.0-rc.1
See https://github.com/kubernetes/kubernetes/releases/tag/v1.32.0-rc.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-12-04 15:59:16 +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
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
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
Andrey Smirnov
f1b15f580e
chore: remove replace for safchain/ethtool
See https://github.com/siderolabs/talos/issues/9412

PR merged https://github.com/safchain/ethtool/pull/88

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-11-18 13:00:48 +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
Dmitriy Matrenichev
4fe6dc8a0a
chore: clean dns code
Split from #9596 (without IPv6 stuff). This PR does this things:
- Refactored `DNSResolveCacheController`. Most of the logic moved to `dns` package types. Simplify and streamline logic.
- Replace most of the goroutine orchestration with suture package.
- Support per-item reaction to the dns listeners/servers failing to start. This allows us to ignore IPv6 errors if it's disabled.
- Support per-item reaction to the dns listeners/servers failing to stop.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-11-08 21:54:28 +03:00
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
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
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
Noel Georgi
61d363e1d0
chore: update go-auditlib
Update `go-auditlib` with fix from https://github.com/elastic/go-libaudit/pull/165

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-04 22:00:53 +05:30
Noel Georgi
9abf16108e
feat: add auditd service
Adds a auditd service that gathers all audit logs from kernel.

Signed-off-by: Noel Georgi <git@frezbo.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-11-02 22:25:04 +05:30
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
Dmitry Sharshakov
66012a7f26
feat: remove wrapperd and launch processes directly
Launch services without intermediary calls to reduce overhead

Fixes #9427

Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
2024-10-28 17:38:53 +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
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
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
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
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
Dmitriy Matrenichev
59a78da42c
chore: add proto-codec/codec
Unify usage of proto codec v2 across our projects.
Bump grpc library to 1.67.1 and ensure that we it still works with HTTP/2 ALPN value changes.

For https://github.com/siderolabs/talos/issues/9404

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-10-17 00:12:42 +03:00
Dmitriy Matrenichev
7ff1cedfe3
chore: update siderolabs/crypto module and return proper ALPN
Fixes #9463

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-10-16 22:12:49 +03:00
Andrey Smirnov
5853bb0ea4
fix: json logging panic
Fixes #9466

There are two fixes:

* fix the actual panic via https://github.com/siderolabs/go-circular/pull/5
* prevent similar issues in the future by installing a panic handler

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-16 17:19:35 +04:00
Andrey Smirnov
0a2b4556c5
fix: volume encryption with failing keyslots
Fix the flow when a failing key slot leads to repeated attempts to open
the volume, while it's already open, but the failure was to sync other
keys.

Refactor the code to get rid of variable assignment in the outer block
from closures.

Fixes #9415

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-07 21:59:42 +04:00
Andrey Smirnov
6affbd3182
fix: update grpc-go the latest patch release
See https://github.com/grpc/grpc-go/releases/tag/v1.66.3

Specifically stream failures, I wonder if that is causing flaky
support script.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-07 19:14:24 +04:00
Andrey Smirnov
a341bdb064
fix: prevent file descriptors leaks to child processes
See #9412

I'll keep the issue open to track upstream PR status and remove replace
directives.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-01 19:11:45 +04:00
Andrey Smirnov
9b77698cf2
fix: update blockdevice library to v2.0.2
Fixes #9350

Actual fix is https://github.com/siderolabs/go-blockdevice/pull/111

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-23 15:05:12 +04:00
Andrey Smirnov
6b15ca19cd
fix: audit and fix cgroup reservations
Fixes: #7081

Review all reservations and limits set, test under stress load (using
both memory and CPU).

The goal: system components (Talos itself) and runtime (kubelet, CRI)
should survive under extreme resource starvation (workloads consuming
all CPU/memory).

Uses #9337 to visualize changes, but doesn't depend on it.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-20 22:22:28 +04:00
Andrey Smirnov
8d6884a8e2
test: add a test for inline machine config trusted roots
Run SideroLink API server via TLS with self-signed certificate, inject
that certificate into Talos via `talos.config.inline=`.

Fix a couple of place where our special TLS root CA provider supporting
reloading on the fly was not used.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-12 21:44:36 +04:00
Andrey Smirnov
869f8379f2
feat: update default Kubernetes version to 1.31.1
See https://github.com/kubernetes/kubernetes/releases/tag/v1.31.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-12 18:19:56 +04:00
Andrey Smirnov
5c6277d171
feat: update etcd to 3.5.16
See https://github.com/etcd-io/etcd/releases/tag/v3.5.16

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-11 14:14:14 +04:00
Noel Georgi
361283401e
chore: version specific kube-scheduler health checks
Use K8s version specific kube-scheduler health checks.

Ref: https://github.com/siderolabs/go-kubernetes/pull/17

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-09-06 19:47:47 +05:30
Andrey Smirnov
bcaf63628b
feat: update dependencies
Update to final tools, pkgs, extras.

Bump Go dependencies.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-09-06 15:51:05 +04:00
Andrey Smirnov
b453385bd9
feat: support volume configuration, provisioning, etc
This implements the first round of changes, replacing the volume backend
with the new implementation, while keeping most of the external
interfaces intact.

See #8367

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-08-30 18:32:34 +04:00