6284 Commits

Author SHA1 Message Date
Mateusz Urbanek
b9e9c65796
release(v1.13.0): prepare release
This is the official v1.13.0 release.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
v1.13.0 pkg/machinery/v1.13.0
2026-04-27 10:58:28 +02:00
Mateusz Urbanek
5e2fc260a8
fix: revert add extraArgs from service-account-issuer
This reverts commit d1954278a1ba3470b2e5ccae90762078c18d69e9.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit f19eef78b9cc01c107f86a6eddf24da0d288d124)
2026-04-27 10:43:57 +02:00
Mateusz Urbanek
17448fcd29
fix: revert use append instead of prepend in service-account-issuer
This reverts commit 01a3678913de0fa4d309a361428c117d24ce0d1e.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 6821225b64ddd48e5cc0d16ab80204d539110f78)
2026-04-27 10:42:47 +02:00
Edward Sammut Alessi
4b9fe000f4
feat: add quirk for talosctl factory downloads
Add a SupportsFactoryTalosctlDownload quirk to mark the minimum version that supports talosctl downloads from factory

Signed-off-by: Edward Sammut Alessi <edward.sammutalessi@siderolabs.com>
(cherry picked from commit b43c3a124f6c6d1523c1feaddc9c4a23454eeb56)
2026-04-24 22:13:10 +04:00
Andrey Smirnov
f62c331130
refactor: make all controller unit-test follow modern patterns
Kill old-style "manual" tests, use `ctest` consistently now.

This should be no-op refactoring.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit df0b9a8da1423842d830261e5ddc5dc8f5a234c1)
2026-04-24 21:50:39 +04:00
Andrey Smirnov
cd317d5330
feat: support auth for Image Factory in cluster create
Allows to authenticate to Image Factory (if Image Factory is configured
for auth), applies for HTTP downloads (e.g. ISO), and injects registry
auth into Talos as well.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit c2948cef232f6a175312636369b444124cb995db)
2026-04-24 21:49:44 +04:00
Andrey Smirnov
92ca9e16f9
feat: update Kubernetes to v1.36.0
The final Kubernetes version for Talos v1.13.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit ecf2fa855b8eb19731b228990a3acbe1430ccad4)
2026-04-24 21:49:23 +04:00
Andrey Smirnov
e9afea74d6
test: fix OOM test flake
While the OOM pressure is high, we might observe "extra kills" as there
are no other victims to kill anymore (as `stress-ng` is already gone).
Tolerate those kills, but log them in case we see this getting out of
hand.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 71aeb347f90969cb6057651666bfda205269d917)
2026-04-24 21:48:44 +04:00
Mateusz Urbanek
d34a61c8d1
fix(talosctl): ensure uncordon runs after reboot/upgrade errors
Use defer blocks and error joining to guarantee uncordon cleanup
runs regardless of reboot/upgrade success or failure. Prevents nodes
from staying cordoned when operations fail.

Also added gRPC keepalive params to prevent timeout issues during
long operations.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 3db14309e058cacc2ab8664944fc18f80a3bb747)
2026-04-24 21:48:21 +04:00
Andrey Smirnov
f9531d3529
test: fix a flake in the manifest sync test
A sample failure:

```
manifests.go:133:
        	Error Trace:	/src/internal/integration/k8s/manifests.go:133
        	Error:      	[]string{"/usr/local/bin/kube-proxy", "--cluster-cidr=10.244.0.0/16", "--conntrack-max-per-core=0", "--hostname-override=$(NODE_NAME)", "--kubeconfig=/etc/kubernetes/kubeconfig", "--proxy-mode=nftables"} does not contain "--nodeport-addresses=0.0.0.0/0"
        	Test:       	TestIntegration/k8s.ManifestsSuite/TestSync
    manifests.go:137: disabling kube-proxy
```

My running theory is that `List()` picks up a stale pod, so trying to
filter it out and log it in full if we hit it.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 9b9542cc55ee6d08f3490d270c1b497c7b9d3049)
2026-04-24 21:47:54 +04:00
Andrey Smirnov
9f04f2c4ef
fix: watch kubelet's kubeconfig and time out for cache sync
Fixes #13169

Also fixes a number of other issues with controller being stuck
"watching" over stale data.

The major part of the change is to watch contents of kubelet's
kubeconfig and restart the watch when it changes.

The internals of the watch process don't always bubble up error
properly, or we don't watch for errors.

With this change, not only initial sync has a timeout and a way to abort
the sync process, Talos now can also restart the sync on kubeconfig
change make it more transparent.

This might become irrelevant if we start managing kubeconfig via Talos
controlplane for workers, but for now this seems to be the way to fix
issues.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 149592fa59d20c5aa29e4c0af9a3760585f378ce)
2026-04-24 21:45:14 +04:00
Noel Georgi
f3bab2baf2
chore(ci): nvidia update helm values
See #13159, newer GPU operator v26.3.1 has better detection.

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit bba0b4aeefd7ec0daf7cc048e48c66d8b614f576)
2026-04-24 21:44:51 +04:00
Andrey Smirnov
d4d018b546
fix: propagate route table down to the resource
Fixes #13153

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 3399ff4de05b4fafb8511d6399e919436f1178da)
2026-04-24 21:44:31 +04:00
Noel Georgi
ffa0bcf61a
chore(ci): bump gpu operator version
Bump GPU operator version.

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit ed9545d0db55cdff8ad7f7755398913780a7540e)
2026-04-24 21:44:10 +04:00
Utku Ozdemir
8035e6e49b
fix: do not flip machine stage to rebooting during shutdown
At the end of every sequence that intentionally terminates the machine (reboot, shutdown, upgrade, etc.), a fatal event is published to signal expected termination. The machine status controller was unconditionally flipping the stage to "rebooting" on this event, which was correct for sequences that end in a reboot but incorrect for the shutdown sequence whose expected termination is a power-off.

The stage tracker now skips this transition when the current sequence is shutdown, so the machine stays in "shutting down" until it actually powers off.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
(cherry picked from commit c028db0b8d25e85a4b580e10252d964785320291)
2026-04-24 21:43:48 +04:00
Noel Georgi
10606bdfe8
fix: boot entry detection
Fixes: #13080

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 509cd9733926a6994843fb58ccdf38e5cd63a382)
2026-04-24 21:43:29 +04:00
Noel Georgi
23393a5ea3
fix: zfs extensions test
Make sure we run the check commands also on the same node where we created the pool.

Fixes: #13014

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 7fa4d39197e1a9e54ba8a259c111f2cb8047ef9c)
2026-04-24 21:42:31 +04:00
Andrey Smirnov
a922d1540c
fix: return failed precondition on upgrade when not installed
This check was in maintenance Upgrade API for Talos <= 1.12,
so keep it in the "normal" API as well.

It always makes sense - the upgrade would fail if Talos is not
installed, but that failure in legacy Upgrade API is async and not
reported properly back.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 0d8362119e4415182caa9349e0ddfb27ea290d90)
2026-04-24 21:41:14 +04:00
Andrey Smirnov
252799a00b
fix: reduce memory dashboard usage
Many small changes, memory reduction measured to be aroun -20MiB.

Reduce cgroup memory limit.

Changes:

* limit updates to 2fps
* batch log updates
* reuse/maps slices to reduce allocations

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit bdcc9321b637da77f1007a571193c2e03c984b8b)
2026-04-24 21:40:52 +04:00
Mateusz Urbanek
8180cb11c9
fix: wrong slot of encryption key was logged
During removal of encryption key, we logged slot of current key instead of the removed key.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit be58eafaba98bb7b1bcd20ac1ed8f8b03734c7e0)
2026-04-24 21:40:28 +04:00
Andrey Smirnov
b6bcd47e6c
feat: update Flannel to 0.28.4
See https://github.com/flannel-io/flannel/releases/tag/v0.28.4

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 986e97fc757824bc998d81933e60108250316e5e)
2026-04-24 21:40:07 +04:00
Andrey Smirnov
370c035ab6
fix: audit trustd code for security
There are no security issues fixed.

Drop username/password creds - they were not used.

Improve security of token interceptor.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 9fbb7c95df2b1dcd68fafa23865412bbd8300f4b)
2026-04-24 21:39:29 +04:00
Andrey Smirnov
3e1c6fd84b
chore: bump container registry library
They re-enabled support for absolute symlinks, but symlinks which target
paths with `../` are still dropped.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 212182e6f655f61e8917059868fc381728e4a959)
2026-04-24 21:39:09 +04:00
Andrey Smirnov
dacd733137
chore: update sign images to support image name suffix
Now sign-images target correctly handles image name suffix.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit f3817d1d1c90bb2f2c19c209af154dc1a93eb507)
2026-04-24 21:37:40 +04:00
Andrey Smirnov
1a519a4108
test: allow more tests to run in FIPS strict mode
Remove the skip statements/rework the code to allow
FIPS builds to do Wireguard by wrapping Wireguard operations
into `fips140.WithoutEnforcement` blocks.

Using Wireguard (or not using it) is still a user's choice, but this
allows tests to run in strict mode.

There might be more fixes required for FIPS strict, right now being
blocked by Go issue with X25119 which is going to be backported to Go
1.26.3.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 1ef8e630ab77b3c849e7da6d1ff83e7c6795f070)
2026-04-24 21:37:23 +04:00
Andrey Smirnov
cb969aa9f8
feat: update Linux to 6.18.24
Sync pkgs/tools, also updates Flannel CNI plugin.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-04-24 21:36:46 +04:00
Andrey Smirnov
1f949d9a55
release(v1.13.0-rc.0): prepare release
This is the official v1.13.0-rc.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
v1.13.0-rc.0 pkg/machinery/v1.13.0-rc.0
2026-04-16 14:48:38 +04:00
Nico Berlee
929ab71653
fix(machined): clear stale bond ARP/NS targets on decode
Reset ARPIPTargets and NSIP6Targets at the start of BondMasterSpec.Decode.

Without this, repeated decode calls on the same struct can retain old target
entries after config removes them, which makes link status drift from
current bond configuration.

Add a regression test that decodes a payload with targets, then decodes a
payload without target attributes into the same struct and asserts both
slices are empty.

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 0a47f40b3cdf304a079c6b3fa964e9f82e91ec63)
2026-04-15 19:29:36 +04:00
Noel Georgi
730937eee9
chore: bump tools
Bump tools

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit e3e8f01ca66ee74898ebba5dadf4f199775d278e)
2026-04-15 19:29:36 +04:00
Andrey Smirnov
0f9d4b5b93
feat: update Kubernetes 1.36.0-rc.1
See:

* https://github.com/kubernetes/kubernetes/releases/tag/v1.36.0-rc.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit e776721f33b1fedff1dff310298035b3d603e676)
2026-04-15 19:29:35 +04:00
Andrey Smirnov
41e6866fd5
fix: encode extra args fields in resources with new id
This is a fixup for #12475

Split the protobuf id for extraArgs fields to use new value, so that we
don't have unmarshal failure when using newer machinery with older Talos
or vice versa.

Also pull in a fix https://github.com/siderolabs/go-talos-support/pull/15

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit f6e7346fa725a703ac4281854150d7a3be12c8d1)
2026-04-15 19:29:35 +04:00
Noel Georgi
5feeab90d9
chore(ci): nvidia try UKI boot
NVIDIA extensions test with UKI boot.

Fixes: #11397

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 3ba35c9b9fca9c54e596d5c6df61d515a4a39555)
2026-04-15 19:29:34 +04:00
Noel Georgi
cd88cbd0cd
chore: bump tools
Bump tools, to make dependabot happy.

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 3c7bb80bab0323d72a1727256ccf339d2c79804c)
2026-04-15 19:29:33 +04:00
Andrey Smirnov
53609713f3
fix: upgrade API in maintenance mode (legacy)
Add an integration test and fix legacy upgrade API in maintenance mode.

There were several assumptions which do not hold true in maintenance as
we have no machine configuration.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit c464c7e88a3f058cb2bbc36af1910d69d903cd07)
2026-04-15 19:29:33 +04:00
Andrey Smirnov
2de7fb60d5
refactor: allow overriding out image name suffix
Also fix one more place when version.Name wasn't used properly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 4ba11156fd164a0d94538508f5c028f249deed50)
2026-04-15 19:29:32 +04:00
Andrey Smirnov
384b189a56
feat: update Kubernetes to 1.36.0-rc.0
Getting ready for 1.36.0 final release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit b7512d9125b623d2bb92e3a8b5839e85e1309a39)
2026-04-15 19:29:32 +04:00
Noel Georgi
9b8c1891bb
fix: panic in reading PCR values
Fix panic in reading PCR values.

Fixes: #13110

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit c81aa125c85d3886c5b9bb4d7f77ec2def104f21)
2026-04-15 19:29:31 +04:00
Noel Georgi
67a34a6eb3
feat(ci): add nvidia arm64 matrix
Add NVIDIA arm64 test matrix.

Also ensure we have a known baseline for nvidia cdi files,
so if upstream adds more files and we don't install to right location
the test would fail.

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 6a3ab87c54f83f70869a2e298e6ed7722cf4afad)
2026-04-15 19:29:31 +04:00
Noel Georgi
cd73b4a822
feat: bump go to 1.26.2
Bump Go to 1.26.2

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 9fcb9e05b668ba2fbc7df776ab32e57b1c15e221)
2026-04-15 19:29:29 +04:00
Zadkiel AHARONIAN
77406ec31a
fix: validate hostDNS forwarding requires hostDNS to be enabled
When hostDNS.enabled is false but forwardKubeDNSToHost defaults to true
(via version contract >= 1.8), the controller still writes the host DNS
service address into HostDNSConfig. This causes CoreDNS pods to get a
resolv.conf pointing to 169.254.116.108 while nothing listens there,
leading to DNS query timeouts.

Add a config validation error when forwardKubeDNSToHost is true while
hostDNS.enabled is false.

Fixes siderolabs/talos#13100

Signed-off-by: Zadkiel AHARONIAN <hello@zadkiel.fr>
(cherry picked from commit ca208e51492c4584f9a4cea4d0762c2199f703e7)
2026-04-15 18:45:43 +04:00
Mateusz Urbanek
7d7776dcaa
fix: handle boot failure
Fixes #13083

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 181584a5f1850f2bfb2a837c0d05bd9e30ee48b5)
2026-04-15 18:45:08 +04:00
Benoît Knecht
6dc97e8aa7
fix(talosctl): always use default GRPC dial options
When run in "normal" mode, `talosctl` takes into account proxy
configuration, such as the `https_proxy` and `no_proxy` environment
variables; but when invoked with `--insecure`, those would be ignored,
which results in `talosctl` being unable to interact with nodes in
maintenance mode if they're only reachable through a proxy.

This commit adds the `WithDefaultGRPCDialOptions()` option to the
client created by `WithClientMaintenance()`, same as `WithClient()`.

Signed-off-by: Benoît Knecht <benoit.knecht@proton.ch>
(cherry picked from commit 21f459aab5d8ac2841aa69a9237ca3faa06da7df)
2026-04-15 18:44:44 +04:00
Andrey Smirnov
db2c007ee7
fix: create correct blackhole routes for IPv4
For IPv4, they should be attached to no interfaces.

Discovered while doing some manual testing for the documentation.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 0bfdf7f7035fefe804ec4b568709cd6a09195293)
2026-04-15 18:44:14 +04:00
Andrey Smirnov
6f84628494
refactor: propagate NAME properly, allow to set on build
Allow to set build NAME on build, propagate it down to more consumers.

Expose name in `Version` resource, and use that in the dashboard
next to Talos version.

Fix some places where `Name` was hardcoded.

Propagate Name down to UKI build.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 968ec1e0ca26eb1f0de0836e0a55df09dea7dafe)
2026-04-15 18:43:43 +04:00
Mateusz Urbanek
6a0ec46b5b
feat: add dis-vulncheck tool
Add wrapper around govulncheck that allows adding ignores.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 4229bb9d2ed263c309d0b0082f6e21d2f002c925)
2026-04-15 18:43:19 +04:00
Andrey Smirnov
4c79bd8155
chore: bump some tool dependencies
Update to resolve Dependabot alerts, these
are all not important as they come via tools.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 0cfa6e3024100e34692a0b10e9dacb762c16a626)
2026-04-15 18:41:51 +04:00
Andrey Smirnov
cd8d70fb9d
fix: set the minimum TLS version to 1.3
Via https://github.com/siderolabs/crypto/pull/46

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit acc69c346f8816324b632fd33a5d0cb3f4b73509)
2026-04-15 18:41:30 +04:00
Dharsan Baskar
fe5b849ec5
refactor: remove manual shell completion and replace with cobra completion
Fixes #13066

Signed-off-by: Dharsan Baskar <git@dharsanb.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 34fb2cbe5148a9f60fd888551ba6eceb84b550cf)
2026-04-15 18:41:04 +04:00
Noel Georgi
fef5ef49eb
feat: allow more nvidia and nvme files from extensions
See: https://github.com/siderolabs/extensions/pull/1033

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 79fa2e3001082cf21be92c52b3da4e844313184d)
2026-04-15 18:40:38 +04:00
Noel Georgi
33b89cff72
feat: allow glibc ld files in etc
Allow both /etc/ld.so.conf and /etc/ld.so.cache files in /etc since tools expect these to be standard.

See: https://github.com/siderolabs/extensions/pull/1031

Replaces changes for Dockerfile from #12909

Signed-off-by: Noel Georgi <git@frezbo.dev>
(cherry picked from commit 414f78a298fc1a196fe310b17b89d3aadc15e1b4)
2026-04-15 18:38:58 +04:00