2467 Commits

Author SHA1 Message Date
Kevin Tijssen
576c269484
feat: add --platform=all support to image cache-create
Add support for caching all platforms in a multi-platform image index
by passing --platform=all to the images cache-create command.

When all is specified, the index manifest is fetched without platform
resolution, and each platform-specific image is downloaded individually.
Attestation manifests (unknown/unknown) are included.

Include the platform in the fetch log line so each pull is identifiable,
e.g. fetching image "..." (linux/amd64).

Signed-off-by: Kevin Tijssen <kevin.tijssen@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 786bf00abb309955616e440cd06fd0718b1b77ab)
2026-03-26 16:01:56 +04:00
Andrey Smirnov
ceec42f2a5
feat: update Linux to 6.18.19, CNI to 1.9.1
Also clean up some imports in go.mod, reduce replaced modules.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 9c34591144f1e2fc759fdc6d56694541eb9f241a)
2026-03-26 16:01:35 +04:00
Andrey Smirnov
902c78a17e
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>
(cherry picked from commit ad72c73006abc3b51e5371496c61d8637b2222f0)
2026-03-26 16:01:16 +04:00
Andrey Smirnov
76931f4092
feat: enforce PID check on connections to services over file sockets
Whitelist services which can access the file socket, refuse other
connections.

Fixes #12701

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 038cb87354eea1c1ff4612bdd13d1e77e595955a)
2026-03-26 15:58:41 +04:00
Andrey Smirnov
df4e0e7f58
feat: update etcd to 3.6.9
Resolves:

* https://github.com/etcd-io/etcd/security/advisories/GHSA-q8m4-xhhv-38mg
* https://github.com/etcd-io/etcd/security/advisories/GHSA-rfx7-8w68-q57q

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 362fdc9ece81e805a5a6a4e0303bdf78a6b2c35d)
2026-03-26 15:58:20 +04:00
Andrey Smirnov
08ba425e6c
feat: update Kubernetes to 1.36.0-beta.0
Update to the latest available release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit b1a02f3681c7e361ee6a3ef3d230b47480b48408)
2026-03-26 15:58:02 +04:00
Andrey Smirnov
1cb2a8b302
fix: update diff library to v1.0.1
Our fixes got merged, and more fixes in the library as well.

Bump grpc library (due to a reported CVE which we are not affected
with).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 86344639fcb76d9430ac1e975c98db4488701e43)
2026-03-26 15:57:44 +04:00
Andrey Smirnov
f98e76f8d8
fix: panics in diff algorithms
The fix PR https://github.com/neticdk/go-stdlib/pull/44

Replace the library for now.

Add fuzzing test, keep panic causing vectors.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit eff89d1ed46e5f3c709305a8cb134dabae925420)
2026-03-26 15:57:01 +04:00
Mateusz Urbanek
a544aea844
release(v1.13.0-beta.0): prepare release
This is the official v1.13.0-beta.0 release.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-03-18 12:41:00 +01:00
Mateusz Urbanek
f36f6ef54d
chore: update pkgs and tools
Update dependencies:
```
pkgs: v1.13.0-beta.0
tools: v1.13.0-beta.0
```

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-03-17 14:32:17 +01:00
Andrey Smirnov
b7d70cf625
feat: unify maintenance and regular APIs
Drop maintenance service and all the code supporting it directly.

Instead, move all network API termination into the `apid` service, which
now can work now in more modes to support maintenance operations as
well.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-17 17:00:35 +04:00
Andrey Smirnov
d2661d2531
fix: apparmor parser config files
Bring in apparmor fix from https://github.com/siderolabs/pkgs/pull/1489

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-16 17:38:11 +04:00
Dominik Pitz
a728bbd897
fix: validate missing apiVersion in config document decoder
Add ErrMissingAPIVersion check in the config document decoder, parallel
to the existing ErrMissingKind. Previously, a typo in the apiVersion key
(e.g. 'apiVerstion') would result in a misleading 'not registered' error
instead of clearly indicating the missing field.

Signed-off-by: Dominik Pitz <pitzdominik@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-16 13:36:33 +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
Mateusz Urbanek
6bb5cf57a2
feat: implement routing rules support
Add RoutingRuleConfig multi-doc config type for management of routing rules.
KubeSpan now uses COSI resources instead of direct kernel management.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-03-13 15:17:49 +01:00
Zadkiel AHARONIAN
a0b9d6e777
feat: bump kernel with uhci_hcd driver
See https://github.com/siderolabs/pkgs/pull/1483

Signed-off-by: Zadkiel AHARONIAN <hello@zadkiel.fr>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-12 17:19:37 +04:00
Andrey Smirnov
1f0d2da396
feat: update containerd to 2.2.2
Pull in via pkgs, bump containerd module (our fork).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-11 21:54:01 +04:00
Andrey Smirnov
fc9749b9eb
feat: pull in kernel with preemptible kernel
Also sync tools, now the kernel is built with LLVM 22.1.

See https://github.com/siderolabs/pkgs/issues/1479 for the context.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-11 12:12:23 +04:00
Andrey Smirnov
da70cedfd2
refactor: drop apid file socket
This was yet another socket with implicit auth - remove it completely
by reworking the only usecase for it - cluster-side health checks.
Now these health checks build a "regular" network Talos API client (as
they anyways work only controlplane nodes).

Refactor the check for controlplane nodes to use resources instead of
machine config directly (as machine config might not be always present).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-10 21:52:03 +04:00
Andrey Smirnov
17335107be
fix: use non-sensitive resource for health check precondition
A fixup for #12896

The health check might be running as a reduced privilege role client, so
don't pull the machine config, but instead read a field from a
non-sensitive resource.

As this field doesn't exist in older versions of Talos, the check should
still run by default (as it will be empty).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-10 18:37:55 +04:00
Andrey Smirnov
451b13c1b8
feat: update Linux to 6.18.16
Also test new extension versions.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-09 21:06:22 +04:00
Andrey Smirnov
a02d578faa
feat: add support for mirroring image signatures
Enable signature verification in image cache & airgapped tests.

Fixes #12892

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-09 20:07:51 +04:00
Orzelius
57599fb877
fix: skip some readiness checks when the CNI is disabled
* skip node readiness check
* skip coredns readiness check

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
2026-03-09 22:10:57 +09:00
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
Laura Brehm
7f2eb48561
feat: add image verification endpoint
Add support for whole machine-wide image verification configuration.
Configuration is a set of rules applied top-down to the image reference,
each specifying a specific cosign-based identity or static public key
claim.

Talos provides a machined API to verify an image reference, resolving it
to the digest on the way as needed.

Talos itself hooks up in the image verification process, while
containerd CRI plugin accesses same API via the machined socket.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-06 20:06:07 +04:00
Mateusz Urbanek
1e4cd20d23
feat: add talosctl install command and upgrade via LifecycleService
Add new `talosctl install` command using the LifecycleService.Install
streaming API with support for insecure (maintenance) mode and progress
reporting. Refactor `talosctl upgrade` to use the new
LifecycleService.Upgrade streaming API with automatic fallback to the
legacy MachineService.Upgrade path for older Talos versions.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-03-06 15:40:54 +01:00
Mateusz Urbanek
15a5ec9985
feat: implement new install/upgrade API
Implement new minimal Install/Upgrade LifecycleService API with streaming
support for real-time progress reporting. Add protobuf definitions, gRPC
service implementation, and client bindings.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-03-06 12:16:35 +01:00
Spencer Smith
10f49ca91a
feat: add trusted roots generation to stdpatches
This PR would add the ability to generate a standardized document for trusted roots.
Ran into wanting this with the vsphere provider and I generally feel like we should try
to extend the available standard patches here over time.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-05 12:20:08 +04:00
Andrey Smirnov
58e006461d
feat: update Kubernetes to 1.36.0-alpha.2
See https://github.com/kubernetes/kubernetes/releases/tag/v1.36.0-alpha.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-02 20:07:37 +04:00
Andrey Smirnov
ebcfafd4e2
feat: update Linux to 6.18.15
Latest LTS.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-02 18:36:10 +04:00
Andrey Smirnov
0ab84c2a15
fix: ignore image digest when doing upgrade-k8s
The `talosctl upgrade-k8s` doesn't support pinning to image digests, but
it should ignore any image digests if they already exist in the
machine configuration.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-02 17:26:01 +04:00
Orzelius
d417d68e0d
feat: bring in new ssa logic
drop the old cli-utils based manifest apply logic and replace it with the new fluxcd/pkg/ssa based implementation

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
2026-03-02 19:37:31 +09:00
Andrey Smirnov
bf2cd0a850
feat: update Linux to 6.18.14
See if it works.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-27 21:58:31 +04:00
Andrey Smirnov
bfb98a9ca3
feat: bump kube-network-policy to v1.0.0
The latest release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-27 16:07:40 +04:00
Andrey Smirnov
000c18d538
feat: implement blackhole route config
This is useful part of #12608

Closes #12608

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-27 14:15:43 +04:00
Andrey Smirnov
f0c51b2805
feat: implement correct config patching for extraArgs fields
Since the type was changed to the custom one, merging code can't handle
it correctly, so add an explicit merge method.

```
merge field v1alpha1.Config.ClusterConfig: merge field v1alpha1.ClusterConfig.ProxyConfig: merge field v1alpha1.ProxyConfig.ExtraArgsConfig: merge map key v1alpha1.Args[metrics-bind-address]: merge field v1alpha1.ArgValue.strValue: merge not possible, left $(POD_IP):10249 is not settable
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-26 19:11:14 +04:00
pythoner6
1da2b63ab5
feat: multi-doc support for configuring vrfs
Fixes https://github.com/siderolabs/talos/issues/11960

This adds a new network config document type, network.VRFConfig that can
be used to configure vrfs https://docs.kernel.org/networking/vrf.html.

Signed-off-by: pythoner6 <pythoner6@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-25 15:10:35 +04:00
Andrey Smirnov
c1d0a33607
fix: patch with delete for LinkConfigs
There were two issues which prevented this patch from working:

* `CommonLinkConfig` is an embedded struct, so we need to make selector
  descend into embedded structs properly
* The previous `reflect.Value.String()` doesn't handle correctly complex
  values (like `netip.Prefix`) which have a custom `fmt.Stringer`

See https://github.com/siderolabs/talos/discussions/12848#discussioncomment-15910003

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-25 14:21:41 +04:00
Mateusz Urbanek
59311a7924
release(v1.13.0-alpha.2): prepare release
This is the official v1.13.0-alpha.2 release.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-02-25 10:58:15 +01: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
ae29a0dcce
feat: update Linux to 6.18.13
Also pulls in Cilium eBPF verifieer fixes.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-24 11:52:31 +04: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
Noel Georgi
0a7b6eb2c9
chore: test extensions
Test extensions

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-02-23 19:02:22 +05:30
Andrey Smirnov
d3e793d141
fix: stop Kubernetes client from dynamically reloading the certs
Fixes #12822

This stops the internal Kubernetes client goroutine which reloads certs
from being started.

This is only part of the full fix, as there is a TLS transport leak
related to go-kubernetes client aggressively caching TLS configs with
unique dialers (a separate fix will go to `go-kubernetes`).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-20 17:24:20 +04:00
Nico Berlee
6a5a0e3bd4
feat: support pattern link aliases
Allow LinkAliasConfig names like net%d to match multiple links and assign
sequential aliases in alphabetical order, skipping links already claimed by
earlier alias configs. Add validation for the format verb and controller
tests covering ordering and reconciliation on link changes.

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-20 16:01:11 +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
e00aed0f66
feat: update Kubernetes v1.36.0-alpha.1
Not updating Go modules yet, as there's a dependency conflict via
fluxcd/pkg/ssa right now due to removed autoscaling API in k8s.io/api.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-19 21:18:43 +04:00
Andrey Smirnov
f20445ad09
chore: improve logging of disk encryption handling
Pulls in KMS with logging, and adds more logging to Talos.

This allows to debug encryption problems better.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-19 19:06:42 +04:00
Andrey Smirnov
35ad0448c9
fix: switch to better Myers algorithm implementation
See https://github.com/siderolabs/omni/pull/2311 for the rationale.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-18 16:55:06 +04:00
Andrey Smirnov
0048464be8
feat: update etcd to v3.6.8
See https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.6.md

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-18 16:31:10 +04:00