1
0
mirror of https://github.com/siderolabs/talos.git synced 2026-02-05 15:45:37 +01:00
Commit Graph

6098 Commits

Author SHA1 Message Date
renovate[bot]
d85a260cfd chore: update dependencies
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 10:12:52 +00: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
Fritz Schaal
1bf95eed18 feat: improve dashboard uptime display
* display dashboard uptime in days when >= 24h

Signed-off-by: Fritz Schaal <fritz.schaal@siderolabs.com>
2026-02-03 21:52:11 +04: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>
v1.13.0-alpha.1 pkg/machinery/v1.13.0-alpha.1
2026-02-03 19:47:01 +05:30
Noel Georgi
900516e689 chore: update image signer
Update image signer.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-02-03 13:38:51 +05:30
Noel Georgi
938de566ec feat: bump kernel
Bump kernel to 6.18.8

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-02-03 05:20:58 +05:30
Noel Georgi
388cec7279 feat(overlays): add new overlays
Add Friendlyelec CM3588 NAS and Rock 5B Plus overlays.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-02-02 21:37:36 +05:30
Andrey Smirnov
9f2dd6312f refactor: api tests
Unify a list of all APIs in Talos to a single place, and use them in
associated tests:

* the test for one2many specifics
* the test for deprecated methods
* the test for missing RBAC rules

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-02 19:17:27 +04:00
Andrey Smirnov
a90783146f feat: add a helper module to generate standard patches
Allow some patches to be generated correctly according to the version
contract of the machine configuration.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-02 18:09:58 +04:00
Mateusz Urbanek
1fec5b23d0 fix: implement merger for PercentageSize
Fixing issue when PercentageSize is used and instead of calling Merge it was trying to merge individual unexported fields.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-02-02 13:24:20 +01:00
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
Andrey Smirnov
d90c775b84 chore: rename internal talosctl debug air-gapped
This command was always hidden, rename it to `debug-tool` to free up the
`talosctl debug` for #12932.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-02 14:25:01 +04:00
Andrey Smirnov
2165280d0e refactor: change the way one2many proxying is picked
Instead of defaulting to one2many, list explicitly one2many supported
APIs.

The idea is that any new API will only be "normal" gRPC API, so we can
flip the switch, and consider one2many APIs as "legacy".

Extracted from #12392

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-29 16:45:02 +04:00
Orzelius
b1b703dbe2 chore: move sync logging code to go-kubernetes package
so it can be reused in Omni

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
2026-01-27 22:53:17 +09:00
Dmitrii Sharshakov
e48c6d7ab9 fix: allow to expose a port multiple times in Docker
This change prevents user-specified exposed ports from overriding the
default ones.

This allows one e.g. to export the Kubernetes endpoint both at the
default random port and at a specified host address.

Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2026-01-26 20:46:03 +01:00
Andrey Smirnov
410d8cb572 fix: undo CRLF on Windows (talosctl edit)
Fixes #12664

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-26 19:45:39 +04:00
Andrey Smirnov
859d3f03c4 feat: add RPi5 to the list of supported SBCs
Mark as supported from the future Talos v1.2.3.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-26 19:01:11 +04:00
Andrei Kvapil
0bd48bbc6f fix(talosctl): pass --k8s-endpoint flag to rotate-ca kubernetes rotation
The --k8s-endpoint flag was defined but never used in the rotate-ca
command. This fix passes the flag value through to the Kubernetes
client, allowing users to override the default Kubernetes API endpoint
during CA rotation.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-26 18:28:49 +04:00
Andrey Smirnov
b9e27ebe72 feat: update Linux kernel with dm-integrity
Update pkgs with Linux 6.18.6 and dm-integrity module added.

Drops some crc kmods, as they are now compiled in.

See https://github.com/siderolabs/pkgs/pull/1447

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-26 13:50:12 +04:00
Andrey Smirnov
6aa9b0677e fix: skip empty documents on config decoding
Fixes #12649

The cryptic error was coming from our code, as it never worked if the
decoded node is not mapping node.

Also annotate errors with line numbers (or document kinds) to make
understanding the problem better, specifically for multi-doc and long
configs.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-23 21:11:50 +04:00
Andrey Smirnov
494492489b fix: always set advertised peer URLs
It seems that etcd might derive them incorrectly on IPv6-only system.

This change is confusing, as it sets the `--initial-` prefixed flag even
after join, but it seems that on etcd side, the configuration value is
used always despite the flag name.

Fixes #12646 (see the issue for more details)

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-23 18:21:28 +04:00
Matthew Sanabria
782cc507dc fix: open the filesystem as read-only
Updated `ReadFromVolume` to open the filesystem it's attempting to
read from as read-only. This allows `vfat` cloud init volumes to be
successfully read by Talos Linux. This change was made here and not in
`pkg/xfs/fsopen/fsopen_linux.go` so that it only applies to volumes that
are being read for cloud init configuration, not all volumes.

Fixes https://github.com/siderolabs/talos/issues/12647.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-23 13:42:45 +01:00
Andrey Smirnov
28e61a740a fix: set GRUB prefix correctly on arm64
We always unconditionally create `BIOS` partition, even on arm64, so the
prefix should be same on all arches.

We don't use `BIOS` on arm64, but still this would be easier to support
in the future.

Co-authored-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-23 13:40:07 +04:00
Andrey Smirnov
a4f1c5239e feat: update GRUB to 2.14
It looks like xfs with modern 6.18 settings is supported with GRUB 2.14
now.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-22 22:35:18 +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
Andrey Smirnov
39460365c1 feat: implement layering for ProbeSpec
Same as for any other resource - layering per source, and proper merge
across layers, so we can see where it comes from.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-22 17:49:45 +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
Tim Jones
4b274f7615 feat: support aws cert manager in imager
Add support for using certificates stored in AWS Certificate Manager to
sign secureboot images in imager.

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2026-01-21 18:33:59 +01:00
Mateusz Urbanek
4172095125 fix: fallback to /proc/meminfo for memory modules
If SMBIOS does not report memory information, fall back to
/proc/meminfo and expose a dummy memory module as a best-effort
approximation.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-21 15:50:16 +01:00
Mateusz Urbanek
7f1147bed4 fix: add warnings to 802.3ad bond
In case some settings are missing that might be impacting the usage of
802.3ad, present a warning to users.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-21 14:37:36 +01:00
Andrey Smirnov
ddd6b186eb refactor: generate GRUB images
Simplify the flow a bit by using live partition info,
avoid doing some calculations which are already done in the
partition code.

Remove some steps I believe we don't need to do.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-21 16:37:25 +04:00
Andrey Smirnov
c7aa266ea5 fix: overwrite resolver config with machine config
Fixes #12614

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-21 16:14:36 +04:00
Noel Georgi
cf70f05fa4 fix: oracle platform file format
Fixes: #12557

Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-01-21 17:14:33 +05:30
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
77bc3d21fa fix: marshal of FailOverMac property
This value for some historical reason (I guess treating empty string as
'none') doesn't use standard enumer's methods.

So we shipped it in Talos 1.12 without proper encoding/decoding
in YAML config documents (it was actually converted to int).

Fix encoding, but keep backwards compatibility for integer values
just in case someone already started relying on it.

Fixes #12625

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-21 14:55:54 +04: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
Andrey Smirnov
3d1301640d fix: wipe the first/last 1MiB in addition to wiping by signatures
I got a failure when dual-boot image refuses to format EPHEMERAL
partition where `EFI` partition used to be (VFAT).

So until we have a resolution, do this workaround.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-20 21:25:54 +04:00
Dmitrii Sharshakov
1aa6528adc fix: make OOM controller more precise by considering separate cgroup PSI
This should reduce false triggers due to high IO activity and similar
events increasing global memory PSI despite free memory being available.

Also add more details for trigger condition and debugging.

Fixes: #12526

Co-authored-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
Signed-off-by: Dmitrii Sharshakov <dmitry.sharshakov@siderolabs.com>
2026-01-20 16:19:34 +01:00
Andrey Smirnov
f7072c050e fix: check if the device is not mounted when wiping
Open the blockdevice in `O_EXCL` mode when wiping to ensure that we
don't wipe a mounted device.

This issue was discovered via #12620, when we wipe a blockdevice which
is still mounted ending up in a wrong state.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-20 17:07:19 +04:00
Andrey Smirnov
743c3b94b9 fix: use correct containerd import path
Use `/v2` import path, otherwise we pull in `containerd` v1.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-20 15:48:54 +04:00
Andrey Smirnov
f2dd08594e feat: report image pull progress in the console
This reports image pull progress in the console for images pulled by
Talos:

* etcd
* kubelet
* installer

This work was mostly done by @laurazard, I just wrapped it for the
console with Laura's help. (see #12932)

Co-authored-by: Laura Brehm <laurabrehm@hey.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-19 18:00:13 +04:00
Andrey Smirnov
72fe98a06f fix: boot with GRUB
The problem is that xfs with 6.18 LTS settings is not supported
by GRUB yet. It might be supported with newly released 2.14 though.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-19 14:14:47 +04:00
Jonas Lammler
d4ed13d939 fix: add talos version to Hetzner Cloud client user agent
Add Talos details to the Hetzner Cloud client user-agent.

Helps us identify and troubleshoot issues with users running Talos on Hetzner Cloud.

Signed-off-by: Jonas Lammler <jonas.lammler@hetzner-cloud.de>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2026-01-19 13:04:17 +05:30
Andrey Smirnov
150c41c30e feat: update Linux to 6.18.5
Also test new NVIDIA drivers.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-16 18:27:46 +04:00
Mateusz Urbanek
01a3678913 fix: use append instead of prepend in service-account-issuer
Changing `.cluster.controlPlane.endpoint=$NEW` will cause old tokens to be no longer valid.
We want to ensure that new tokens are issued using the `.cluster.controlPlane.endpoint=$NEW` value,
but all the existing tokens (issued using `.cluster.controlPlane.endpoint=$OLD`) are still accepted.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-16 12:17:23 +01:00
Mateusz Urbanek
d1954278a1 feat: add extraArgs from service-account-issuer
In API Server, passing extra args with `service-account-issuer` will add them to default value.

Fixes #11694

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-16 11:21:00 +01:00
Mateusz Urbanek
91b88f7f99 feat: support multiple values for extraArgs
BREAKING: internal resources for the components use different
representation of AxtraArgs, resulting in modified types in protocol
buffers.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek.98@gmail.com>
2026-01-16 11:20:59 +01:00
Andrey Smirnov
96e604874b fix: add hostname to endpoints
Populate endpoint coming from the Kubernetes controlplane endpoint with
the hostname (if the endpoint is a hostname).

This should improve cases when hostname is used for the endpoint in
terms of SNI, proper resolving of DNS if it's dynamic.

See https://github.com/siderolabs/talos/pull/12556#issuecomment-3755862314

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-15 22:56:46 +04:00
Andrey Smirnov
7033275a7a refactor: move BootloaderKind into machinery
This type is used in Image Factory schematic, so move it into machinery
so that it can be imported into IF without pulling Talos core.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-01-15 20:21:11 +04:00