Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package talosctl for openSUSE:Factory checked in at 2025-06-12 15:53:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/talosctl (Old) and /work/SRC/openSUSE:Factory/.talosctl.new.19631 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "talosctl" Thu Jun 12 15:53:22 2025 rev:30 rq:1285003 version:1.10.4 Changes: -------- --- /work/SRC/openSUSE:Factory/talosctl/talosctl.changes 2025-05-31 19:18:15.730222116 +0200 +++ /work/SRC/openSUSE:Factory/.talosctl.new.19631/talosctl.changes 2025-06-12 15:55:12.050012825 +0200 @@ -1,0 +2,7 @@ +Thu Jun 12 05:20:22 UTC 2025 - Johannes Kastl <opensuse_buildserv...@ojkastl.de> + +- update to 1.10.4: + https://github.com/siderolabs/talos/releases/tag/v1.10.4 + * no CLI-related changes in the Changelog + +------------------------------------------------------------------- Old: ---- talosctl-1.10.3.obscpio New: ---- talosctl-1.10.4.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ talosctl.spec ++++++ --- /var/tmp/diff_new_pack.ihlB0F/_old 2025-06-12 15:55:15.034136318 +0200 +++ /var/tmp/diff_new_pack.ihlB0F/_new 2025-06-12 15:55:15.038136483 +0200 @@ -17,7 +17,7 @@ Name: talosctl -Version: 1.10.3 +Version: 1.10.4 Release: 0 Summary: CLI to interact with Talos Linux License: MPL-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.ihlB0F/_old 2025-06-12 15:55:15.294147078 +0200 +++ /var/tmp/diff_new_pack.ihlB0F/_new 2025-06-12 15:55:15.318148071 +0200 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="exclude">.git</param> <param name="exclude">go.work</param> - <param name="revision">v1.10.3</param> + <param name="revision">v1.10.4</param> <param name="match-tag">v*</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ talosctl-1.10.3.obscpio -> talosctl-1.10.4.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/.kres.yaml new/talosctl-1.10.4/.kres.yaml --- old/talosctl-1.10.3/.kres.yaml 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/.kres.yaml 2025-06-11 14:22:34.000000000 +0200 @@ -317,6 +317,7 @@ - '30 3 * * *' triggerLabels: - integration/qemu + - integration/release-gate steps: - name: download-artifacts conditions: @@ -371,6 +372,7 @@ - '30 3 * * *' triggerLabels: - integration/qemu-enforcing + - integration/release-gate steps: - name: download-artifacts conditions: @@ -441,6 +443,7 @@ - '30 4 * * *' triggerLabels: - integration/conformance + - integration/release-gate steps: - name: download-artifacts conditions: @@ -563,6 +566,7 @@ - '30 3 * * *' triggerLabels: - integration/trusted-boot + - integration/release-gate steps: - name: download-artifacts conditions: @@ -711,6 +715,7 @@ triggerLabels: - integration/provision - integration/provision-0 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -769,6 +774,7 @@ triggerLabels: - integration/provision - integration/provision-1 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -820,6 +826,7 @@ triggerLabels: - integration/provision - integration/provision-2 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -871,6 +878,7 @@ triggerLabels: - integration/misc - integration/misc-0 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -956,6 +964,7 @@ triggerLabels: - integration/misc - integration/misc-1 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1046,6 +1055,7 @@ triggerLabels: - integration/misc-enforcing - integration/misc-1-enforcing + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1152,6 +1162,7 @@ triggerLabels: - integration/misc - integration/misc-2 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1274,6 +1285,7 @@ triggerLabels: - integration/misc - integration/misc-3 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1434,6 +1446,7 @@ triggerLabels: - integration/misc - integration/misc-4 + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1522,6 +1535,7 @@ triggerLabels: - integration/misc-enforcing - integration/misc-4-enforcing + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1634,6 +1648,7 @@ - '30 6 * * *' triggerLabels: - integration/extensions + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1717,6 +1732,7 @@ - '30 3 * * *' triggerLabels: - integration/cilium + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1797,6 +1813,7 @@ - '30 3 * * *' triggerLabels: - integration/qemu-encrypted-vip + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1852,6 +1869,7 @@ - '30 3 * * *' triggerLabels: - integration/qemu-race + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1918,6 +1936,7 @@ triggerLabels: - integration/qemu-csi - integration/qemu-csi-rook-ceph + - integration/release-gate steps: - name: download-artifacts conditions: @@ -1985,6 +2004,7 @@ - integration/qemu-csi - integration/extensions # since iscsi is tested with longhorn - integration/qemu-csi-longhorn + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2079,6 +2099,7 @@ triggerLabels: - integration/qemu-csi - integration/qemu-csi-openebs + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2145,6 +2166,7 @@ - '30 2 * * *' triggerLabels: - integration/images + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2183,6 +2205,7 @@ - '30 2 * * *' triggerLabels: - integration/reproducibility-test + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2244,6 +2267,7 @@ - '30 2 * * *' triggerLabels: - integration/image-cache + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2441,6 +2465,7 @@ - '30 7 * * *' triggerLabels: - integration/aws + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2708,6 +2733,7 @@ - '30 7 * * *' triggerLabels: - integration/gcp + - integration/release-gate steps: - name: download-artifacts conditions: @@ -2770,25 +2796,25 @@ spec: customManagers: - customType: regex - fileMatch: + managerFilePatterns: - Makefile matchStrings: - '# renovate: datasource=(?<datasource>.*?)(?:\s+extractVersion=(?<extractVersion>.+?))?\s+depName=(?<depName>.+?)\s.*_VERSION\s+\?=\s+(?<currentValue>.+)' versioningTemplate: "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}" - customType: regex - fileMatch: + managerFilePatterns: - pkg/machinery/constants/constants.go matchStrings: - '\/\/\s+renovate: datasource=(?<datasource>.*?)(?:\s+extractVersion=(?<extractVersion>.+?))?(?:\s+versioning=(?<versioning>.+?))?\s+depName=(?<depName>.+?)?\s.*Version\s+=\s+\"(?<currentValue>.+?)\"' versioningTemplate: "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}" - customType: regex - fileMatch: + managerFilePatterns: - internal/integration/k8s/constants.go matchStrings: - '\/\/\s+renovate: datasource=(?<datasource>.*?)(?:\s+extractVersion=(?<extractVersion>.+?))?(?:\s+versioning=(?<versioning>.+?))?\s+depName=(?<depName>.+?)?(?:\s+registryUrl=(?<registryUrl>.+?))?\s.*Version\s+=\s+\"(?<currentValue>.+?)\"' versioningTemplate: "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}" - customType: regex - fileMatch: + managerFilePatterns: - Dockerfile matchStrings: - '# syntax = docker\/dockerfile-upstream:(?<currentValue>.*)' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/CHANGELOG.md new/talosctl-1.10.4/CHANGELOG.md --- old/talosctl-1.10.3/CHANGELOG.md 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/CHANGELOG.md 2025-06-11 14:22:34.000000000 +0200 @@ -1,3 +1,107 @@ +## [Talos 1.10.4](https://github.com/siderolabs/talos/releases/tag/v1.10.4) (2025-06-11) + +Welcome to the v1.10.4 release of Talos! + + + +Please try out the release binaries and report any issues at +https://github.com/siderolabs/talos/issues. + +### Component Updates + +Linux: 6.12.31 + +Talos is built with Go 1.24.4. + + +### Contributors + +* Andrey Smirnov +* Artem Chernyshev +* Dennis Marttinen +* Utku Ozdemir +* Dmitriy Matrenichev +* Noel Georgi +* Spencer Smith +* yashutanu + +### Changes +<details><summary>11 commits</summary> +<p> + +* [`7caf90a37`](https://github.com/siderolabs/talos/commit/7caf90a37ce7a822a1c805ea86b4af0da7d77ece) fix: nil pointer deref in quirk +* [`b6f16e592`](https://github.com/siderolabs/talos/commit/b6f16e59275b1dcdff68333c153c865c76271d23) fix: update siderolink library for wgtunnel panic fix +* [`037801f5f`](https://github.com/siderolabs/talos/commit/037801f5f1cd6eebb03c9236f2f3ba8d055ebb76) fix: correctl close encrypted volumes +* [`2755aebec`](https://github.com/siderolabs/talos/commit/2755aebec88d7c427bb2e062fff6f218a0494ed7) chore: fix renovate config, add release-gate label +* [`1cab7bba1`](https://github.com/siderolabs/talos/commit/1cab7bba13b8c077502ca0c315ba66bed4452fc2) fix: rework the way CRI config generation is waited for +* [`bda53869e`](https://github.com/siderolabs/talos/commit/bda53869e578ddb1ce5d80163261df968ba950c7) fix: typo in DiscoverdVolume spec +* [`76ecdacbc`](https://github.com/siderolabs/talos/commit/76ecdacbcf50a4ee3bac31c001650f541310df3e) feat: support nocloud include url userdata directive +* [`4f96f35a4`](https://github.com/siderolabs/talos/commit/4f96f35a47ae20ca87f1aae74e687a98babf48e5) fix(ci): drop nebula from extensions test +* [`47a642804`](https://github.com/siderolabs/talos/commit/47a642804a47fb98cdeed85a848e8ec5377dc290) feat: update Linux 6.12.31, go 1.24.4 +* [`141e452c4`](https://github.com/siderolabs/talos/commit/141e452c4aa7151fd9e84ee84fff6ca786e62171) fix: use correct FUSE magic for IMA `fsmagic` matching +* [`09a4ed1e0`](https://github.com/siderolabs/talos/commit/09a4ed1e0768ab37deb6e16ef403de855b820aa0) fix: upgrade grpc library to the latest 1.71.x +</p> +</details> + +### Changes from siderolabs/gen +<details><summary>4 commits</summary> +<p> + +* [`dcb2b74`](https://github.com/siderolabs/gen/commit/dcb2b7417879f230a569ce834dad5c89bd09d6bf) feat: add `panicsafe` package +* [`b36ee43`](https://github.com/siderolabs/gen/commit/b36ee43f667a7a56b340a3e769868ff2a609bb5b) feat: make `xyaml.CheckUnknownKeys` public +* [`3e319e7`](https://github.com/siderolabs/gen/commit/3e319e7e52c5a74d1730be8e47952b3d16d91148) feat: implement `xyaml.UnmarshalStrict` +* [`7c0324f`](https://github.com/siderolabs/gen/commit/7c0324fee9a7cfbdd117f43702fa273689f0db97) chore: future-proof HashTrieMap +</p> +</details> + +### Changes from siderolabs/pkgs +<details><summary>6 commits</summary> +<p> + +* [`51e388c`](https://github.com/siderolabs/pkgs/commit/51e388c75957eca9dfee7fd6b0e118b4dec57a5a) chore: use ftpmirror for GNU sources +* [`81623cd`](https://github.com/siderolabs/pkgs/commit/81623cdb004efcc91828e517afd8501232d51fe5) feat: update NVIDIA drivers to 570.148.08 +* [`f6caaf0`](https://github.com/siderolabs/pkgs/commit/f6caaf00d59ee5fffe53acca586997b753bd49d5) feat: update Linux to 6.12.31 +* [`ae52cde`](https://github.com/siderolabs/pkgs/commit/ae52cde1aa850a4b31865e373114f5f1b1e3e61d) feat: add patch for CephFS IMA performance regression +* [`d0a42eb`](https://github.com/siderolabs/pkgs/commit/d0a42eb1d972161da3143834d4bd06409331fcb8) feat: add CONFIG_NFT_CONNLIMIT to kernel +* [`cd20b0a`](https://github.com/siderolabs/pkgs/commit/cd20b0a4812ec801e9dcc089404dc994d8ba602e) feat: update Go to 1.24.4/1.23.10 +</p> +</details> + +### Changes from siderolabs/siderolink +<details><summary>3 commits</summary> +<p> + +* [`5f46f65`](https://github.com/siderolabs/siderolink/commit/5f46f6583b9d03f91c9bb5f637149fe466d17bfc) feat: handle panics in goroutines +* [`d09ff45`](https://github.com/siderolabs/siderolink/commit/d09ff45b450a37aa84652fa70b5cd3467ee8243d) fix: race in wait value +* [`d2a79e0`](https://github.com/siderolabs/siderolink/commit/d2a79e0263806b68ff0a44ea9efa58b83fb269ec) fix: clean up device on failure +</p> +</details> + +### Changes from siderolabs/tools +<details><summary>2 commits</summary> +<p> + +* [`9d54ed4`](https://github.com/siderolabs/tools/commit/9d54ed43416f0f94c8b1a0e0adcb724a446f1844) chore: use ftpmirror for GNU sources +* [`8b87c11`](https://github.com/siderolabs/tools/commit/8b87c111974cf0c9d4ca1b80f753403809aa2eef) feat: update Go to 1.24.4 +</p> +</details> + +### Dependency Changes + +* **github.com/siderolabs/gen** v0.8.0 -> v0.8.4 +* **github.com/siderolabs/pkgs** v1.10.0-16-g39b9c9f -> v1.10.0-22-g51e388c +* **github.com/siderolabs/siderolink** v0.3.13 -> v0.3.15 +* **github.com/siderolabs/tools** v1.10.0-2-gfa51331 -> v1.10.0-4-g9d54ed4 +* **golang.org/x/net** v0.39.0 -> v0.41.0 +* **golang.org/x/oauth2** v0.29.0 -> v0.30.0 +* **golang.org/x/sync** v0.13.0 -> v0.15.0 +* **golang.org/x/sys** v0.32.0 -> v0.33.0 +* **golang.org/x/term** v0.31.0 -> v0.32.0 +* **golang.org/x/text** v0.24.0 -> v0.26.0 +* **google.golang.org/grpc** v1.71.1 -> v1.71.3 + +Previous release can be found at [v1.10.3](https://github.com/siderolabs/talos/releases/tag/v1.10.3) + ## [Talos 1.10.3](https://github.com/siderolabs/talos/releases/tag/v1.10.3) (2025-05-29) Welcome to the v1.10.3 release of Talos! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/Makefile new/talosctl-1.10.4/Makefile --- old/talosctl-1.10.3/Makefile 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/Makefile 2025-06-11 14:22:34.000000000 +0200 @@ -25,9 +25,9 @@ EMBED_TARGET ?= embed TOOLS_PREFIX ?= ghcr.io/siderolabs/tools -TOOLS ?= v1.10.0-2-gfa51331 +TOOLS ?= v1.10.0-4-g9d54ed4 PKGS_PREFIX ?= ghcr.io/siderolabs -PKGS ?= v1.10.0-16-g39b9c9f +PKGS ?= v1.10.0-22-g51e388c KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest CONFORMANCE_IMAGE ?= ghcr.io/siderolabs/conform:latest @@ -286,7 +286,7 @@ CI_ARGS ?= -EXTENSIONS_FILTER_COMMAND ?= grep -vE 'tailscale|xen-guest-agent|nvidia|vmtoolsd-guest-agent|metal-agent|cloudflared|zerotier' +EXTENSIONS_FILTER_COMMAND ?= grep -vE 'tailscale|xen-guest-agent|nvidia|vmtoolsd-guest-agent|metal-agent|cloudflared|zerotier|nebula' all: initramfs kernel installer imager talosctl talosctl-image talos diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/go.mod new/talosctl-1.10.4/go.mod --- old/talosctl-1.10.3/go.mod 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/go.mod 2025-06-11 14:22:34.000000000 +0200 @@ -1,6 +1,6 @@ module github.com/siderolabs/talos -go 1.24.0 +go 1.24.4 replace ( // see e.g. https://github.com/grpc/grpc-go/issues/6696 @@ -141,7 +141,7 @@ github.com/siderolabs/crypto v0.6.0 github.com/siderolabs/discovery-api v0.1.6 github.com/siderolabs/discovery-client v0.1.11 - github.com/siderolabs/gen v0.8.0 + github.com/siderolabs/gen v0.8.4 github.com/siderolabs/go-api-signature v0.3.6 github.com/siderolabs/go-blockdevice v0.4.8 github.com/siderolabs/go-blockdevice/v2 v2.0.16 @@ -164,8 +164,8 @@ github.com/siderolabs/kms-client v0.1.0 github.com/siderolabs/net v0.4.0 github.com/siderolabs/proto-codec v0.1.2 - github.com/siderolabs/siderolink v0.3.13 - github.com/siderolabs/talos/pkg/machinery v1.10.3 + github.com/siderolabs/siderolink v0.3.15 + github.com/siderolabs/talos/pkg/machinery v1.10.4 github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 @@ -182,15 +182,15 @@ go.uber.org/goleak v1.3.0 go.uber.org/zap v1.27.0 go4.org/netipx v0.0.0-20231129151722-fdeea329fbba - golang.org/x/net v0.39.0 - golang.org/x/oauth2 v0.29.0 - golang.org/x/sync v0.13.0 - golang.org/x/sys v0.32.0 - golang.org/x/term v0.31.0 - golang.org/x/text v0.24.0 + golang.org/x/net v0.41.0 + golang.org/x/oauth2 v0.30.0 + golang.org/x/sync v0.15.0 + golang.org/x/sys v0.33.0 + golang.org/x/term v0.32.0 + golang.org/x/text v0.26.0 golang.org/x/time v0.11.0 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10 - google.golang.org/grpc v1.71.1 + google.golang.org/grpc v1.71.3 google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 k8s.io/klog/v2 v2.130.1 @@ -353,10 +353,10 @@ go.opentelemetry.io/otel/metric v1.34.0 // indirect go.opentelemetry.io/otel/trace v1.34.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.37.0 // indirect + golang.org/x/crypto v0.39.0 // indirect golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/tools v0.32.0 // indirect + golang.org/x/mod v0.25.0 // indirect + golang.org/x/tools v0.33.0 // indirect golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250409194420-de1ac958c67a // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/go.sum new/talosctl-1.10.4/go.sum --- old/talosctl-1.10.3/go.sum 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/go.sum 2025-06-11 14:22:34.000000000 +0200 @@ -627,8 +627,9 @@ github.com/siderolabs/discovery-client v0.1.11/go.mod h1:Iw5XUphGNNV0m2czHjbj9aLhQvfM8hYEfWCc6fdQ4ko= github.com/siderolabs/ethtool v0.4.0-sidero h1:Ls/M4bFUjfcB1RDVviPZlL3kWcXaEVVSbKke+EZ2A9U= github.com/siderolabs/ethtool v0.4.0-sidero/go.mod h1:nOIR88fiFTdBfakYLEUAhxdy75Ih/fgnSlsSKAHRpfc= -github.com/siderolabs/gen v0.8.0 h1:Pj93+hexkk5hQ7izjJ6YXnEWc8vlzOmDwFz13/VzS7o= github.com/siderolabs/gen v0.8.0/go.mod h1:an3a2Y53O7kUjnnK8Bfu3gewtvnIOu5RTU6HalFtXQQ= +github.com/siderolabs/gen v0.8.4 h1:1Xj/YvKTXgpnr9ZC7heKcskJo5wHvWOybwjQSCfEmsQ= +github.com/siderolabs/gen v0.8.4/go.mod h1:CRrktDXQf3yDJI7xKv+cDYhBbKdfd/YE16OpgcHoT9E= github.com/siderolabs/go-api-signature v0.3.6 h1:wDIsXbpl7Oa/FXvxB6uz4VL9INA9fmr3EbmjEZYFJrU= github.com/siderolabs/go-api-signature v0.3.6/go.mod h1:hoH13AfunHflxbXfh+NoploqV13ZTDfQ1mQJWNVSW9U= github.com/siderolabs/go-blockdevice v0.4.8 h1:KfdWvIx0Jft5YVuCsFIJFwjWEF1oqtzkgX9PeU9cX4c= @@ -675,8 +676,8 @@ github.com/siderolabs/proto-codec v0.1.2/go.mod h1:TCsjpw732TWuOx4Vd4gYhivPOttEhdPvczLfMQ6Y9Dc= github.com/siderolabs/protoenc v0.2.2 h1:vVQDrTjV+QSOiroWTca6h2Sn5XWYk7VSUPav5J0Qp54= github.com/siderolabs/protoenc v0.2.2/go.mod h1:gtkHkjSCFEceXUHUzKDpnuvXu1mab9D3pVxTnQN+z+o= -github.com/siderolabs/siderolink v0.3.13 h1:v5tDcEEc7Fr8DpKuzNkAfnCW203iMcM52Mf0bhFSwyw= -github.com/siderolabs/siderolink v0.3.13/go.mod h1:g/QSKmgzJcea/PZ1TKFZZAE0JmQgBHDA1j0itQSmiM8= +github.com/siderolabs/siderolink v0.3.15 h1:WSsgKQGJY/ObIKjTcYYGEaGfRMyox+r/Ft+9lIgJqOI= +github.com/siderolabs/siderolink v0.3.15/go.mod h1:iWdlsHji90zotgDg4+a2zJL2ZMNJckQ8/VwqR39ThBM= github.com/siderolabs/tcpproxy v0.1.0 h1:IbkS9vRhjMOscc1US3M5P1RnsGKFgB6U5IzUk+4WkKA= github.com/siderolabs/tcpproxy v0.1.0/go.mod h1:onn6CPPj/w1UNqQ0U97oRPF0CqbrgEApYCw4P9IiCW8= github.com/siderolabs/wgctrl-go v0.0.0-20240401105613-579af3342774 h1:wLhs5zMQVjA6LN9WpF2owOdtcoRp40zL8AaQSle+9EE= @@ -813,8 +814,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= @@ -834,8 +835,8 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -871,8 +872,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -881,8 +882,8 @@ golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -898,8 +899,8 @@ golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -956,8 +957,9 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -968,8 +970,8 @@ golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -983,8 +985,8 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1007,8 +1009,8 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= -golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1064,8 +1066,8 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.71.1 h1:ffsFWr7ygTUscGPI0KKK6TLrGz0476KUvvsbqWK0rPI= -google.golang.org/grpc v1.71.1/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +google.golang.org/grpc v1.71.3 h1:iEhneYTxOruJyZAxdAv8Y0iRZvsc5M6KoW7UA0/7jn0= +google.golang.org/grpc v1.71.3/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/hack/release.toml new/talosctl-1.10.4/hack/release.toml --- old/talosctl-1.10.3/hack/release.toml 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/hack/release.toml 2025-06-11 14:22:34.000000000 +0200 @@ -7,7 +7,7 @@ ignore_deps = ["github.com/coredns/coredns"] # previous release -previous = "v1.10.2" +previous = "v1.10.3" pre_release = false @@ -19,10 +19,9 @@ [notes.updates] title = "Component Updates" description = """ -Linux: 6.12.28 -Kubernetes: 1.33.1 +Linux: 6.12.31 -Talos is built with Go 1.24.3. +Talos is built with Go 1.24.4. """ [make_deps] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/controllers/block/internal/volumes/close.go new/talosctl-1.10.4/internal/app/machined/pkg/controllers/block/internal/volumes/close.go --- old/talosctl-1.10.3/internal/app/machined/pkg/controllers/block/internal/volumes/close.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/controllers/block/internal/volumes/close.go 2025-06-11 14:22:34.000000000 +0200 @@ -52,7 +52,7 @@ ctx, cancel := context.WithTimeout(ctx, encryptionTimeout) defer cancel() - encryptedName := filepath.Base(volumeContext.Status.MountLocation) + encryptedName := filepath.Base(volumeContext.Status.Location) + "-encrypted" if err := handler.Close(ctx, encryptedName); err != nil { return xerrors.NewTaggedf[Retryable]("error closing encrypted volume %q: %w", encryptedName, err) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/controllers/files/cri_config_parts.go new/talosctl-1.10.4/internal/app/machined/pkg/controllers/files/cri_config_parts.go --- old/talosctl-1.10.3/internal/app/machined/pkg/controllers/files/cri_config_parts.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/controllers/files/cri_config_parts.go 2025-06-11 14:22:34.000000000 +0200 @@ -6,6 +6,7 @@ import ( "context" + "encoding/hex" "fmt" "path/filepath" "slices" @@ -72,13 +73,21 @@ slices.Sort(parts) - out, err := toml.Merge(parts) + out, checksums, err := toml.Merge(parts) if err != nil { return err } if err := safe.WriterModify(ctx, r, files.NewEtcFileSpec(files.NamespaceName, constants.CRIConfig), func(r *files.EtcFileSpec) error { + for _, key := range r.Metadata().Annotations().Raw() { + r.Metadata().Annotations().Delete(key) + } + + for path, checksum := range checksums { + r.Metadata().Annotations().Set(files.SourceFileAnnotation+":"+path, hex.EncodeToString(checksum)) + } + spec := r.TypedSpec() spec.Contents = out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/metadata.go new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/metadata.go --- old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/metadata.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/metadata.go 2025-06-11 14:22:34.000000000 +0200 @@ -6,7 +6,10 @@ package nocloud import ( + "bufio" + "bytes" "context" + stderrors "errors" "fmt" "log" "net" @@ -933,3 +936,52 @@ return v } + +// FetchInclude fetches nocloud #include configuration from the URL specified in the body. +func (n *Nocloud) FetchInclude(ctx context.Context, body []byte, st state.State) ([]byte, error) { + u, err := ExtractIncludeURL(body) + if err != nil { + return nil, err + } + + log.Printf("fetching the nocloud #include configuration from: %q", u.String()) + + if err = netutils.Wait(ctx, st); err != nil { + return nil, err + } + + return download.Download(ctx, u.String(), download.WithErrorOnNotFound(errors.ErrNoConfigSource), + download.WithErrorOnEmptyResponse(errors.ErrNoConfigSource)) +} + +// ExtractIncludeURL extracts the URL from the body of a nocloud #include configuration. +// +// Note: only a single URL is expected in the body. +func ExtractIncludeURL(body []byte) (*url.URL, error) { + var urlLine string + + scanner := bufio.NewScanner(bytes.NewReader(body)) + + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if line == "" { + continue + } + + if urlLine != "" { + return nil, fmt.Errorf("multiple #include URLs found in nocloud configuration: %q and %q", urlLine, line) + } + + urlLine = line + } + + if err := scanner.Err(); err != nil { + return nil, err + } + + if urlLine == "" { + return nil, stderrors.New("no #include URL found in nocloud configuration") + } + + return url.Parse(urlLine) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud.go new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud.go --- old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud.go 2025-06-11 14:22:34.000000000 +0200 @@ -96,8 +96,15 @@ return nil, err } - if bytes.HasPrefix(machineConfigDl, []byte("#cloud-config")) { + firstLine, rest, _ := bytes.Cut(machineConfigDl, []byte("\n")) + firstLine = bytes.TrimSpace(firstLine) + + switch { + case bytes.Equal(firstLine, []byte("#cloud-config")): + // ignore cloud-config, Talos does not support it return nil, errors.ErrNoConfigSource + case bytes.Equal(firstLine, []byte("#include")): + return n.FetchInclude(ctx, rest, r) } return machineConfigDl, nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud_test.go new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud_test.go --- old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud_test.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/platform/nocloud/nocloud_test.go 2025-06-11 14:22:34.000000000 +0200 @@ -189,3 +189,57 @@ InternalDNS: "talos-worker-3", }, md) } + +func TestExtractURL(t *testing.T) { + t.Parallel() + + for _, test := range []struct { + name string + userdata []byte + + expectedURL string + expectedError string + }{ + { + name: "valid include userdata URL", + userdata: []byte(`https://metadataserver/userdata +`), + expectedURL: "https://metadataserver/userdata", + }, + { + name: "multiple URLs is invalid", + userdata: []byte(` +https://metadataserver1/userdata +https://metadataserver2/userdata +https://metadataserver3/userdata +`), + expectedError: "multiple #include URLs found", + }, + { + name: "invalid URL", + userdata: []byte(` +:/invalidurl/userdata`), + expectedError: "missing protocol scheme", + }, + { + name: "no URL found", + userdata: []byte(` +`), + expectedError: "no #include URL found in nocloud configuration", + }, + } { + t.Run(test.name, func(t *testing.T) { + t.Parallel() + + u, err := nocloud.ExtractIncludeURL(test.userdata) + + if test.expectedError != "" { + require.Error(t, err) + require.ErrorContains(t, err, test.expectedError) + } else { + require.NoError(t, err) + assert.Equal(t, test.expectedURL, u.String()) + } + }) + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go --- old/talosctl-1.10.3/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/runtime/v1alpha1/v1alpha1_sequencer_tasks.go 2025-06-11 14:22:34.000000000 +0200 @@ -8,6 +8,8 @@ "bufio" "bytes" "context" + "crypto/sha256" + "encoding/hex" "encoding/json" "errors" "fmt" @@ -662,20 +664,6 @@ ctx, cancel := context.WithTimeout(ctx, time.Minute) defer cancel() - ch := make(chan state.Event) - - // wait for the CRI config to be created - if err := st.Watch(ctx, resourcefiles.NewEtcFileSpec(resourcefiles.NamespaceName, constants.CRIConfig).Metadata(), ch); err != nil { - return err - } - - // first update should be received about the existing resource - select { - case <-ch: - case <-ctx.Done(): - return ctx.Err() - } - etcFileSpec := resourcefiles.NewEtcFileSpec(resourcefiles.NamespaceName, constants.CRICustomizationConfigPart) etcFileSpec.TypedSpec().Mode = 0o600 etcFileSpec.TypedSpec().Contents = content @@ -685,24 +673,33 @@ return err } - // wait for the CRI config parts controller to generate the merged file - var version resource.Version - - select { - case ev := <-ch: - version = ev.Resource.Metadata().Version() - case <-ctx.Done(): - return ctx.Err() + checksumRaw := sha256.Sum256(content) + expectedChecksum := hex.EncodeToString(checksumRaw[:]) + expectedAnnotation := resourcefiles.SourceFileAnnotation + ":" + filepath.Join("/etc", etcFileSpec.Metadata().ID()) + + fileSpec, err := st.WatchFor(ctx, resourcefiles.NewEtcFileSpec(resourcefiles.NamespaceName, constants.CRIConfig).Metadata(), + state.WithCondition(func(r resource.Resource) (bool, error) { + spec, ok := r.(*resourcefiles.EtcFileSpec) + if !ok { + return false, nil + } + + value, ok := spec.Metadata().Annotations().Get(expectedAnnotation) + + return ok && value == expectedChecksum, nil + })) + if err != nil { + return fmt.Errorf("error waiting for file %q to be updated: %w", constants.CRIConfig, err) } // wait for the file to be rendered - _, err := st.WatchFor(ctx, resourcefiles.NewEtcFileStatus(resourcefiles.NamespaceName, constants.CRIConfig).Metadata(), state.WithCondition(func(r resource.Resource) (bool, error) { + _, err = st.WatchFor(ctx, resourcefiles.NewEtcFileStatus(resourcefiles.NamespaceName, constants.CRIConfig).Metadata(), state.WithCondition(func(r resource.Resource) (bool, error) { fileStatus, ok := r.(*resourcefiles.EtcFileStatus) if !ok { return false, nil } - return fileStatus.TypedSpec().SpecVersion == version.String(), nil + return fileStatus.TypedSpec().SpecVersion == fileSpec.Metadata().Version().String(), nil })) return err diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/app/machined/pkg/startup/ima.go new/talosctl-1.10.4/internal/app/machined/pkg/startup/ima.go --- old/talosctl-1.10.3/internal/app/machined/pkg/startup/ima.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/app/machined/pkg/startup/ima.go 2025-06-11 14:22:34.000000000 +0200 @@ -44,7 +44,7 @@ "dont_measure fsmagic=0xef51", // EXT2_OLD_SUPER_MAGIC "dont_measure fsmagic=0xef53", // EXT2_SUPER_MAGIC / EXT3_SUPER_MAGIC / EXT4_SUPER_MAGIC "dont_measure fsmagic=0x00c36400", // CEPH_SUPER_MAGIC - "dont_measure fsmagic=0x65735543", // FUSE_CTL_SUPER_MAGIC + "dont_measure fsmagic=0x65735546", // FUSE_SUPER_MAGIC "measure func=MMAP_CHECK mask=MAY_EXEC", "measure func=BPRM_CHECK mask=MAY_EXEC", "measure func=FILE_CHECK mask=^MAY_READ euid=0", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/integration/api/apply-config.go new/talosctl-1.10.4/internal/integration/api/apply-config.go --- old/talosctl-1.10.3/internal/integration/api/apply-config.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/integration/api/apply-config.go 2025-06-11 14:22:34.000000000 +0200 @@ -18,6 +18,7 @@ "github.com/cosi-project/runtime/pkg/resource/rtestutils" "github.com/cosi-project/runtime/pkg/safe" "github.com/siderolabs/gen/ensure" + "github.com/siderolabs/gen/xslices" "github.com/siderolabs/go-pointer" "github.com/siderolabs/go-retry/retry" "github.com/stretchr/testify/assert" @@ -121,10 +122,7 @@ Mode: machineapi.ApplyConfigurationRequest_REBOOT, }, ) - if err != nil { - // It is expected that the connection will EOF here, so just log the error - suite.Assert().NoErrorf(err, "failed to apply configuration (node %q)", node) - } + suite.Assert().NoErrorf(err, "failed to apply configuration (node %q)", node) return nil }, assertRebootedRebootTimeout, @@ -153,6 +151,84 @@ ) } +// TestApplyNoOpCRIPatch verifies the apply config with no-op CRI patch. +func (suite *ApplyConfigSuite) TestApplyNoOpCRIPatch() { + if testing.Short() { + suite.T().Skip("skipping in short mode") + } + + if !suite.Capabilities().SupportsReboot { + suite.T().Skip("cluster doesn't support reboot") + } + + node := suite.RandomDiscoveredNodeInternalIP(machine.TypeWorker) + + suite.WaitForBootDone(suite.ctx) + + nodeCtx := client.WithNode(suite.ctx, node) + + provider, err := suite.ReadConfigFromNode(nodeCtx) + suite.Assert().NoErrorf(err, "failed to read existing config from node %q", node) + + // this CRI patch is a no-op, as NRI is already disabled by default, this verifies that CRI config generation handles it correctly. + cfgDataOut := suite.PatchV1Alpha1Config(provider, func(cfg *v1alpha1.Config) { + cfg.MachineConfig.MachineFiles = xslices.Filter(cfg.MachineConfig.MachineFiles, func(file *v1alpha1.MachineFile) bool { + return file.FilePath != "/etc/cri/conf.d/20-customization.part" + }) + + cfg.MachineConfig.MachineFiles = append(cfg.MachineConfig.MachineFiles, + &v1alpha1.MachineFile{ + FilePath: "/etc/cri/conf.d/20-customization.part", + FileOp: "create", + FileContent: `[plugins] + [plugins."io.containerd.nri.v1.nri"] + disable = true`, + }, + ) + }) + + suite.AssertRebooted( + suite.ctx, node, func(nodeCtx context.Context) error { + _, err = suite.Client.ApplyConfiguration( + nodeCtx, &machineapi.ApplyConfigurationRequest{ + Data: cfgDataOut, + Mode: machineapi.ApplyConfigurationRequest_REBOOT, + }, + ) + suite.Assert().NoErrorf(err, "failed to apply configuration (node %q)", node) + + return nil + }, assertRebootedRebootTimeout, + suite.CleanupFailedPods, + ) + + // revert the patch + provider, err = suite.ReadConfigFromNode(nodeCtx) + suite.Assert().NoErrorf(err, "failed to read existing config from node %q", node) + + // this CRI patch is a no-op, as NRI is already disabled by default, this verifies that CRI config generation handles it correctly. + cfgDataOut = suite.PatchV1Alpha1Config(provider, func(cfg *v1alpha1.Config) { + cfg.MachineConfig.MachineFiles = xslices.Filter(cfg.MachineConfig.MachineFiles, func(file *v1alpha1.MachineFile) bool { + return file.FilePath != "/etc/cri/conf.d/20-customization.part" + }) + }) + + suite.AssertRebooted( + suite.ctx, node, func(nodeCtx context.Context) error { + _, err = suite.Client.ApplyConfiguration( + nodeCtx, &machineapi.ApplyConfigurationRequest{ + Data: cfgDataOut, + Mode: machineapi.ApplyConfigurationRequest_REBOOT, + }, + ) + suite.Assert().NoErrorf(err, "failed to apply configuration (node %q)", node) + + return nil + }, assertRebootedRebootTimeout, + suite.CleanupFailedPods, + ) +} + // TestApplyWithoutReboot verifies the apply config API without reboot. func (suite *ApplyConfigSuite) TestApplyWithoutReboot() { for _, mode := range []machineapi.ApplyConfigurationRequest_Mode{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/pkg/toml/merge.go new/talosctl-1.10.4/internal/pkg/toml/merge.go --- old/talosctl-1.10.3/internal/pkg/toml/merge.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/pkg/toml/merge.go 2025-06-11 14:22:34.000000000 +0200 @@ -6,7 +6,10 @@ import ( "bytes" + "crypto/sha256" + "encoding/hex" "fmt" + "io" "os" "github.com/pelletier/go-toml/v2" @@ -14,37 +17,47 @@ "github.com/siderolabs/talos/pkg/machinery/config/merge" ) -func tomlDecodeFile(path string, dest any) error { +// tomlDecodeFile decodes a TOML file into the provided destination, and returns a sha256 hash of the file content. +func tomlDecodeFile(path string, dest any) ([]byte, error) { f, err := os.Open(path) if err != nil { - return err + return nil, err } defer f.Close() //nolint:errcheck - return toml.NewDecoder(f).Decode(dest) + hash := sha256.New() + + err = toml.NewDecoder(io.TeeReader(f, hash)).Decode(dest) + + return hash.Sum(nil), err } // Merge several TOML documents in files into one. // // Merge process relies on generic map[string]any merge which might not always be correct. -func Merge(parts []string) ([]byte, error) { +// +// Merge returns a sha256 checksum of each file merged. +func Merge(parts []string) ([]byte, map[string][]byte, error) { merged := map[string]any{} + checksums := make(map[string][]byte, len(parts)) var header []byte for _, part := range parts { partial := map[string]any{} - if err := tomlDecodeFile(part, &partial); err != nil { - return nil, fmt.Errorf("error decoding %q: %w", part, err) + hash, err := tomlDecodeFile(part, &partial) + if err != nil { + return nil, nil, fmt.Errorf("error decoding %q: %w", part, err) } if err := merge.Merge(merged, partial); err != nil { - return nil, fmt.Errorf("error merging %q: %w", part, err) + return nil, nil, fmt.Errorf("error merging %q: %w", part, err) } - header = append(header, []byte(fmt.Sprintf("## %s\n", part))...) + header = fmt.Appendf(header, "## %s (sha256:%s)\n", part, hex.EncodeToString(hash)) + checksums[part] = hash } var out bytes.Buffer @@ -53,8 +66,8 @@ _ = out.WriteByte('\n') if err := toml.NewEncoder(&out).SetIndentTables(true).Encode(merged); err != nil { - return nil, fmt.Errorf("error encoding merged config: %w", err) + return nil, nil, fmt.Errorf("error encoding merged config: %w", err) } - return out.Bytes(), nil + return out.Bytes(), checksums, nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/pkg/toml/merge_test.go new/talosctl-1.10.4/internal/pkg/toml/merge_test.go --- old/talosctl-1.10.3/internal/pkg/toml/merge_test.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/pkg/toml/merge_test.go 2025-06-11 14:22:34.000000000 +0200 @@ -18,12 +18,15 @@ var expected []byte func TestMerge(t *testing.T) { - out, err := toml.Merge([]string{ + out, checksums, err := toml.Merge([]string{ "testdata/1.toml", "testdata/2.toml", "testdata/3.toml", }) require.NoError(t, err) - assert.Equal(t, expected, out) + assert.Equal(t, string(expected), string(out)) + assert.Contains(t, checksums, "testdata/1.toml") + assert.Contains(t, checksums, "testdata/2.toml") + assert.Contains(t, checksums, "testdata/3.toml") } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/internal/pkg/toml/testdata/expected.toml new/talosctl-1.10.4/internal/pkg/toml/testdata/expected.toml --- old/talosctl-1.10.3/internal/pkg/toml/testdata/expected.toml 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/internal/pkg/toml/testdata/expected.toml 2025-06-11 14:22:34.000000000 +0200 @@ -1,6 +1,6 @@ -## testdata/1.toml -## testdata/2.toml -## testdata/3.toml +## testdata/1.toml (sha256:2eac71621235f8666c54ad3f29a77b2e8483bbd7f0717f8613af591fb5609b44) +## testdata/2.toml (sha256:47ae85a638a291b04518413a12b19c51883a17c8f5064193462d3527b4495e36) +## testdata/3.toml (sha256:159608dffd674e5fe351d47166eab59ee93f6523ff336602364edfd7be25c796) version = 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/constants/constants.go new/talosctl-1.10.4/pkg/machinery/constants/constants.go --- old/talosctl-1.10.3/pkg/machinery/constants/constants.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/constants/constants.go 2025-06-11 14:22:34.000000000 +0200 @@ -14,7 +14,7 @@ const ( // DefaultKernelVersion is the default Linux kernel version. - DefaultKernelVersion = "6.12.28-talos" + DefaultKernelVersion = "6.12.31-talos" // KernelParamConfig is the kernel parameter name for specifying the URL. // to the config. @@ -1097,7 +1097,7 @@ DBusClientSocketLabel = "system_u:object_r:dbus_client_socket_t:s0" // GoVersion is the version of Go compiler this release was built with. - GoVersion = "go1.24.3" + GoVersion = "go1.24.4" // KubernetesTalosAPIServiceName is the name of the Kubernetes service to access Talos API. KubernetesTalosAPIServiceName = "talos" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/gendata/data/pkgs new/talosctl-1.10.4/pkg/machinery/gendata/data/pkgs --- old/talosctl-1.10.3/pkg/machinery/gendata/data/pkgs 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/gendata/data/pkgs 2025-06-11 14:22:34.000000000 +0200 @@ -1 +1 @@ -v1.10.0-16-g39b9c9f \ No newline at end of file +v1.10.0-22-g51e388c \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/gendata/data/tag new/talosctl-1.10.4/pkg/machinery/gendata/data/tag --- old/talosctl-1.10.3/pkg/machinery/gendata/data/tag 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/gendata/data/tag 2025-06-11 14:22:34.000000000 +0200 @@ -1 +1 @@ -v1.10.3 \ No newline at end of file +v1.10.4 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/gendata/data/tools new/talosctl-1.10.4/pkg/machinery/gendata/data/tools --- old/talosctl-1.10.3/pkg/machinery/gendata/data/tools 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/gendata/data/tools 2025-06-11 14:22:34.000000000 +0200 @@ -1 +1 @@ -v1.10.0-2-gfa51331 \ No newline at end of file +v1.10.0-4-g9d54ed4 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/go.mod new/talosctl-1.10.4/pkg/machinery/go.mod --- old/talosctl-1.10.3/pkg/machinery/go.mod 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/go.mod 2025-06-11 14:22:34.000000000 +0200 @@ -38,7 +38,7 @@ github.com/stretchr/testify v1.10.0 google.golang.org/genproto/googleapis/api v0.0.0-20250409194420-de1ac958c67a google.golang.org/genproto/googleapis/rpc v0.0.0-20250409194420-de1ac958c67a - google.golang.org/grpc v1.71.1 + google.golang.org/grpc v1.71.3 google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v3 v3.0.1 ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/go.sum new/talosctl-1.10.4/pkg/machinery/go.sum --- old/talosctl-1.10.3/pkg/machinery/go.sum 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/go.sum 2025-06-11 14:22:34.000000000 +0200 @@ -212,8 +212,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20250409194420-de1ac958c67a/go.mod h1:2R6XrVC8Oc08GlNh8ujEpc7HkLiEZ16QeY7FxIs20ac= google.golang.org/genproto/googleapis/rpc v0.0.0-20250409194420-de1ac958c67a h1:GIqLhp/cYUkuGuiT+vJk8vhOP86L4+SP5j8yXgeVpvI= google.golang.org/genproto/googleapis/rpc v0.0.0-20250409194420-de1ac958c67a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.71.1 h1:ffsFWr7ygTUscGPI0KKK6TLrGz0476KUvvsbqWK0rPI= -google.golang.org/grpc v1.71.1/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +google.golang.org/grpc v1.71.3 h1:iEhneYTxOruJyZAxdAv8Y0iRZvsc5M6KoW7UA0/7jn0= +google.golang.org/grpc v1.71.3/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/imager/quirks/quirks.go new/talosctl-1.10.4/pkg/machinery/imager/quirks/quirks.go --- old/talosctl-1.10.3/pkg/machinery/imager/quirks/quirks.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/imager/quirks/quirks.go 2025-06-11 14:22:34.000000000 +0200 @@ -134,6 +134,11 @@ // SupportsHaltIfInstalled returns true if the Talos version supports half if installed. func (q Quirks) SupportsHaltIfInstalled() bool { + // if the version doesn't parse, we assume it's latest Talos + if q.v == nil { + return true + } + return q.v.GTE(minVersionSupportsHalfIfInstalled) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/resources/block/discovered_volume.go new/talosctl-1.10.4/pkg/machinery/resources/block/discovered_volume.go --- old/talosctl-1.10.3/pkg/machinery/resources/block/discovered_volume.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/resources/block/discovered_volume.go 2025-06-11 14:22:34.000000000 +0200 @@ -24,7 +24,7 @@ // //gotagsrewrite:gen type DiscoveredVolumeSpec struct { - DevPath string `yaml:"dev_dath" protobuf:"17"` + DevPath string `yaml:"dev_path" protobuf:"17"` Type string `yaml:"type" protobuf:"14"` DevicePath string `yaml:"device_path" protobuf:"15"` Parent string `yaml:"parent,omitempty" protobuf:"16"` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/resources/files/files.go new/talosctl-1.10.4/pkg/machinery/resources/files/files.go --- old/talosctl-1.10.3/pkg/machinery/resources/files/files.go 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/resources/files/files.go 2025-06-11 14:22:34.000000000 +0200 @@ -9,3 +9,6 @@ // NamespaceName contains file resources. const NamespaceName resource.Namespace = "files" + +// SourceFileAnnotation is used to annotate a file resource with the source file path(s). +const SourceFileAnnotation = "talos.dev/source-file" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/pkg/machinery/version/os-release new/talosctl-1.10.4/pkg/machinery/version/os-release --- old/talosctl-1.10.3/pkg/machinery/version/os-release 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/pkg/machinery/version/os-release 2025-06-11 14:22:34.000000000 +0200 @@ -1,7 +1,7 @@ NAME="Talos" ID=talos -VERSION_ID=v1.10.3 -PRETTY_NAME="Talos (v1.10.3)" +VERSION_ID=v1.10.4 +PRETTY_NAME="Talos (v1.10.4)" HOME_URL="https://www.talos.dev/" BUG_REPORT_URL="https://github.com/siderolabs/talos/issues" VENDOR_NAME="Sidero Labs" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/talosctl-1.10.3/website/content/v1.10/reference/cli.md new/talosctl-1.10.4/website/content/v1.10/reference/cli.md --- old/talosctl-1.10.3/website/content/v1.10/reference/cli.md 2025-05-29 08:34:28.000000000 +0200 +++ new/talosctl-1.10.4/website/content/v1.10/reference/cli.md 2025-06-11 14:22:34.000000000 +0200 @@ -144,7 +144,7 @@ --bad-rtc launch VM with bad RTC state (QEMU only) --cidr string CIDR of the cluster network (IPv4, ULA network for IPv6 is derived in automated way) (default "10.5.0.0/24") --cni-bin-path strings search path for CNI binaries (VM only) (default [/home/user/.talos/cni/bin]) - --cni-bundle-url string URL to download CNI bundle from (VM only) (default "https://github.com/siderolabs/talos/releases/download/v1.10.3/talosctl-cni-bundle-${ARCH}.tar.gz") + --cni-bundle-url string URL to download CNI bundle from (VM only) (default "https://github.com/siderolabs/talos/releases/download/v1.10.4/talosctl-cni-bundle-${ARCH}.tar.gz") --cni-cache-dir string CNI cache directory path (VM only) (default "/home/user/.talos/cni/cache") --cni-conf-dir string CNI config directory path (VM only) (default "/home/user/.talos/cni/conf.d") --config-injection-method string a method to inject machine config: default is HTTP server, 'metal-iso' to mount an ISO (QEMU only) @@ -2982,7 +2982,7 @@ --debug debug operation from kernel logs. --wait is set to true when this flag is set -f, --force force the upgrade (skip checks on etcd health and members, might lead to data loss) -h, --help help for upgrade - -i, --image string the container image to use for performing the install (default "ghcr.io/siderolabs/installer:v1.10.3") + -i, --image string the container image to use for performing the install (default "ghcr.io/siderolabs/installer:v1.10.4") --insecure upgrade using the insecure (encrypted with no auth) maintenance service -m, --reboot-mode string select the reboot mode during upgrade. Mode "powercycle" bypasses kexec. Valid values are: ["default" "powercycle"]. (default "default") -s, --stage stage the upgrade to perform it after a reboot ++++++ talosctl.obsinfo ++++++ --- /var/tmp/diff_new_pack.ihlB0F/_old 2025-06-12 15:55:19.438318576 +0200 +++ /var/tmp/diff_new_pack.ihlB0F/_new 2025-06-12 15:55:19.442318742 +0200 @@ -1,5 +1,5 @@ name: talosctl -version: 1.10.3 -mtime: 1748500468 -commit: dde2cebce8e0eb690e8d272d49f1543065e3d889 +version: 1.10.4 +mtime: 1749644554 +commit: 3c119bf87fdf4a2c8051de53613e7f8796149ef6 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/talosctl/vendor.tar.gz /work/SRC/openSUSE:Factory/.talosctl.new.19631/vendor.tar.gz differ: char 13, line 1