1582 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>
2026-04-27 10:58:28 +02: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
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
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
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>
2026-04-16 14:48:38 +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
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
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
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
Mateusz Urbanek
9cc735588b
feat: add client-side Kubernetes node drain to reboot and upgrade commands
Add --drain and --drain-timeout flags to `talosctl reboot` (default off)
and `talosctl upgrade` (default on) that cordon and drain the Kubernetes
node before rebooting, then wait for Ready and uncordon after it comes
back. When --drain is enabled, --wait is forced to true.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 52b920032e97e1b241c1e0bd89c6e41cbc1c9a47)
2026-04-15 18:38:13 +04:00
Andrey Smirnov
128c2c2877
feat: update Flannel to v0.28.2
See https://github.com/flannel-io/flannel/releases/tag/v0.28.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
(cherry picked from commit 1bbba4301495e256f2686a6b0d44663d3fdad2c4)
2026-04-15 18:37:51 +04:00
Mateusz Urbanek
70c356bfda
feat: add flag to force fallback to legacy upgrade
Forcing fallback to legacy flow, might be wanted by some users.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 7b6ab0c1c3cec7b6260e27dd5b6e72faa1975ab0)
2026-04-15 18:37:06 +04:00
Mateusz Urbanek
3c79b432a9
fix: drop unused type from ExternalVolume schema
ExternalVolume has type=nfs defined in the Schema. It is currently
unused and unimplemented, and will fail to provision. Remove it
from the schema, validation and docs, to not confuse the users.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
(cherry picked from commit 11ab0a8c5aec1537542bddb851a9f71e92888e3b)
2026-04-15 18:34:21 +04:00
Andrey Smirnov
213ecf2a5b
release(v1.13.0-beta.1): prepare release
This is the official v1.13.0-beta.1 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-27 16:28:55 +04:00
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
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
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
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
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
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
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
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
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
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
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
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
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
Andrey Smirnov
8b1c974a2a
refactor: drop termui-widgets library
Use the library built for tview, so that we don't have to have two UI
libraries working in parallel in the same TUI.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-21 16:24:26 +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
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
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
Daniil Kivenko
70c6c2154e
feat: add filter for KubeSpan advertised networks
Add advertisedNetworks filter to KubeSpan configuration that allows
filtering which additional networks (e.g., pod CIDRs) are advertised
over KubeSpan when advertiseKubernetesNetworks is enabled.

Signed-off-by: Daniil Kivenko <daniil.kivenko@p2p.org>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-12 15:02:47 +04:00
Andrey Smirnov
4d531884e9
chore: update dependencies
Update Go modules, various test dependencies.

Brings in:

* CoreDNS 1.14.1
* Flannel 0.28.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-10 21:17:23 +04:00
Sébastien Masset
87615f5511
feat: implement network policies with Flannel CNI
Align flannel ClusterRole with upstream chart template (cf.
https://github.com/flannel-io/flannel/blob/master/chart/kube-flannel/templates/rbac.yaml)

Add boolean in cluster flannel CNI config to deploy extra resources to
handle network policies. Inspired by flannel Helm chart handling of
netpol.enabled value (cf. https://github.com/flannel-io/flannel/blob/master/Documentation/netpol.md)

Signed-off-by: Sébastien Masset <86793256+smasset-orange@users.noreply.github.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-10 15:47:49 +04:00
Laura Brehm
d43a01ccbd
feat: implement talosctl debug
This implements a way to run a debug container with a provided image on
the node.

The container runs with privileged profile, allowing to issue debugging
commands (e.g. using some advanced network tools) to troubleshoot a
machine.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-04 21:26:09 +04:00
Pranav Patil
34a31c9797
feat: add mount options support for existing volumes
Add DisableAccessTime and Secure mount options for existing volumes.
DisableAccessTime adds noatime parameter to disable access time updates.
Secure adds nosuid and nodev parameters for security (defaults to true).
Add integration tests for both options.

Signed-off-by: Pranav Patil <pranavppatil767@gmail.com>
2026-02-04 09:13:05 +01:00
Noel Georgi
055add7aeb
release(v1.13.0-alpha.1): prepare release
This is the official v1.13.0-alpha.1 release.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-02-03 19:47:01 +05:30
Andrey Smirnov
8b245b8f26
feat: implement new image service APIs
These new APIs only support one2one proxying, so they don't have any
hacks, and look as regular gRPC APIs.

Old APIs are deprecated, but still supported.

Implement client-side multiplexing in `talosctl`, provide fallback to
old APIs for legacy Talos versions.

New APIs include removing an image, importing an image.

Extracted from #12392

Co-authored-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-02 15:55:56 +04:00
Florian Ströger
562920701e
fix: use node podCIDRs for kubespan advertiseKubernetesNetworks
This commit changes the way kubespan gets the podCIDR to advertise when
`advertiseKubernetesNetworks` is enabled. Before, it used the interface
address, but some CNIs (such as Cilium in NativeRouting) only set a
single /32 IP to a single interface (`cilium_host` in cilium's case).
This adds the `v1.Node`'s `.spec.podCIDRs` array to the `k8s.NodeStatus`
object and uses this to advertise the kubernetes network.

Signed-off-by: Florian Ströger <stroeger@youniqx.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-22 19:43:21 +04:00
Mickaël Canévet
b5c760f707
feat: add ProbeConfig for network connectivity probes
This commit introduces ProbeConfig, a new network configuration document type
that allows users to configure TCP connectivity probes to monitor network
endpoints.

Features:
- ProbeConfig document type with TCP probe support
- ProbeSpec and ProbeStatus resources for probe management
- ProbeConfigController to translate ProbeConfig into ProbeSpec
- ProbeController to execute probes and update ProbeStatus
- Configurable probe interval, timeout, and failure threshold
- Integration tests for API functionality

Signed-off-by: Mickaël Canévet <mickael.canevet@proton.ch>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-21 22:17:38 +04:00
Mateusz Urbanek
8c7b8f5b7d
feat: add support for negative max size
Add support for negative max size values in volume configuration.
Negative max size represents the amount of space to be left free on the device, rather than the size the volume should consume.
For example, a max size of "-10GiB" means the volume can grow to the device size minus 10GiB.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-21 12:11:31 +01:00
Andrey Smirnov
38e280c931
fix: make OOM expression a bit less sensitive
In addition to derivative of full PSI for the affected cgroups, also
look at avg10 value to provide some hysteresis against small spikes.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-21 14:35:06 +04:00