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-05-20 09:36:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/talosctl (Old)
 and      /work/SRC/openSUSE:Factory/.talosctl.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "talosctl"

Tue May 20 09:36:03 2025 rev:28 rq:1278105 version:1.10.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/talosctl/talosctl.changes        2025-05-07 
19:22:12.833598457 +0200
+++ /work/SRC/openSUSE:Factory/.talosctl.new.30101/talosctl.changes     
2025-05-20 09:38:02.721233841 +0200
@@ -1,0 +2,7 @@
+Sat May 17 07:13:16 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- update to 1.10.2:
+  https://github.com/siderolabs/talos/releases/tag/v1.10.2
+  * no CLI-related changes in the Changelog
+
+-------------------------------------------------------------------

Old:
----
  talosctl-1.10.1.obscpio

New:
----
  talosctl-1.10.2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ talosctl.spec ++++++
--- /var/tmp/diff_new_pack.j42PYv/_old  2025-05-20 09:38:04.225299433 +0200
+++ /var/tmp/diff_new_pack.j42PYv/_new  2025-05-20 09:38:04.229299608 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           talosctl
-Version:        1.10.1
+Version:        1.10.2
 Release:        0
 Summary:        CLI to interact with Talos Linux
 License:        MPL-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.j42PYv/_old  2025-05-20 09:38:04.269301352 +0200
+++ /var/tmp/diff_new_pack.j42PYv/_new  2025-05-20 09:38:04.273301527 +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.1</param>
+    <param name="revision">v1.10.2</param>
     <param name="match-tag">v*</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ talosctl-1.10.1.obscpio -> talosctl-1.10.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/.kres.yaml 
new/talosctl-1.10.2/.kres.yaml
--- old/talosctl-1.10.1/.kres.yaml      2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/.kres.yaml      2025-05-16 16:04:24.000000000 +0200
@@ -9,13 +9,14 @@
   config: |-
     creation_rules:
       - age: age1xrpa9ujxxcj2u2gzfrzv8mxak4rts94a6y60ypurv6rs5cpr4e4sg95f0k
-        # order: Andrey, Noel, Artem, Utku, Dmitriy
+        # order: Andrey, Noel, Artem, Utku, Tim, Andy
         pgp: >-
           15D5721F5F5BAF121495363EFE042E3D4085A811,
           CC51116A94490FA6FB3C18EB2401FCAE863A06CA,
           4919F560F0D35F80CF382D76E084A2DF1143C14D,
           11177A43C6E3752E682AC690DBD13117B0A14E93,
-          AA5213AF261C1977AF38B03A94B473337258BFD5
+          5D7964FF2DB426ACB3C3505AA2A702DD5B689F45,
+          E77ED9F8451E10BD242D07415444881046F92733
 ---
 kind: common.Repository
 spec:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/.secrets.yaml 
new/talosctl-1.10.2/.secrets.yaml
--- old/talosctl-1.10.1/.secrets.yaml   2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/.secrets.yaml   2025-05-16 16:04:24.000000000 +0200
@@ -1,6 +1,6 @@
 secrets:
-    AWS_ACCESS_KEY_ID: 
ENC[AES256_GCM,data:AeXmU6IET6Mu1m7RrGbUxKYfeGw=,iv:ivTCvzsvlMDeRi1Xo+Xig+q/MFjinRT25oTQ4dTpD5w=,tag:ZgeWJ9306rFP2QCfn13XEQ==,type:str]
-    AWS_SECRET_ACCESS_KEY: 
ENC[AES256_GCM,data:jOYsF4j5MuwJnUDW+m2TQxCaf1DOH+6QeAwtkBI2UKSCepG0ptHuzw==,iv:bYHZmQZly0S0fpRTQ6VwbafDYxH18jmfn6T/0/KQuqQ=,tag:55xc/fyBbb96QYzlohkZ+A==,type:str]
+    AWS_ACCESS_KEY_ID: 
ENC[AES256_GCM,data:WHaM6pwvIE3K619sS1o1eXGMZys=,iv:xsVmRsi682Y9UJfokxoQZomlztyMGh5z0cJOltYOgXk=,tag:kPd9IICZ5PO+iK/gA5D+Ww==,type:str]
+    AWS_SECRET_ACCESS_KEY: 
ENC[AES256_GCM,data:2Uh2LDkjJoS0/wB2eboeGq6xdb9jIi4D5D7yxGvPE4h+DH1rl/a2DA==,iv:804kZ8I2DtNL1NR4171WClJElaQgRPFKSgIKzAZHCHQ=,tag:Mp9bZVP3cMGA+UeKRIYqiA==,type:str]
     AWS_DEFAULT_REGION: 
ENC[AES256_GCM,data:Q7KZm7eenYFn,iv:VuzTTfAHe9FOTcqrGiJU9qdNixTxszm23rSXuNDB3cA=,tag:eGbIm8M/1Lsl0aoa9NanOQ==,type:str]
     AZURE_SUBSCRIPTION_ID: 
ENC[AES256_GCM,data:vSY8xRgtR/ZGaztRyKUZsPUfFOJF2Nn5Zj8uO4q4Xm/uMKHA,iv:gImkSQLPnK2lDs8BpKP/y5qtYUTQREBXPR+LiUz8RQU=,tag:CVeHJ5YOz6BW8M7JDgQHYQ==,type:str]
     AZURE_CLIENT_ID: 
ENC[AES256_GCM,data:sr2EhYwKjlsHYatqEoDXcm3yp5W8kzLyU4wpUPVvIwquxfM/,iv:ZMqoaG+F9JCfpUUbH6S0vvpwUmrfbCNpv4EJzFkb7Ng=,tag:RN5psxUWFa0SHroi4iqPHQ==,type:str]
@@ -9,79 +9,86 @@
     GOOGLE_PROJECT_ID: 
ENC[AES256_GCM,data:egcG5hIa5aq6tSRjhA==,iv:g/6pkcSJIQNNgoon6X+6DH2JaQgLKfTDpPUNFjlJ6Xg=,tag:ygF0I8bLRRbj2RdogQqxmw==,type:str]
     GOOGLE_CREDENTIALS: 
ENC[AES256_GCM,data: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,iv:nLXpwEqTJaQnZlE0CiQl+hWlBIJGSa8tEUebXpkMWec=,tag:MZ/FJeksYkqCsLaELJDq0A==,type:str]
 sops:
-    kms: []
-    gcp_kms: []
-    azure_kv: []
-    hc_vault: []
     age:
         - recipient: 
age1xrpa9ujxxcj2u2gzfrzv8mxak4rts94a6y60ypurv6rs5cpr4e4sg95f0k
           enc: |
             -----BEGIN AGE ENCRYPTED FILE-----
-            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrcFdwc0JTcGJISmlEYVpH
-            ajJmOXUybkJaeWpBVzdaZjExcmRpUTBwVlNvClZMZzNhc3g1bVVqd1YvWlZOUGIw
-            dm04WnZLVUV2dzBsM0xISm9Kc1FGNlEKLS0tIG4xSUJvUHloTUNLZGJUbjhKYmI2
-            aGRDNzBvb09ZMnFXYjQyQ01VT3JWTkUKlxoDwPBcNAeXTy+qGg7QI7mZAV7bKEWT
-            XGqFTGipHlZ3fLG8dqlSPGXVmy3rSyCkKJgvgbQNut4UMZtZSjXe5A==
+            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCa25HZSt1b05HTkxoWU41
+            anB3cm9MWGdRZkNhNENOd2RpSXdMS3ZKMjNVCkxDVEZqQ3U2YnlDdk85V29zQTdw
+            bUZOWnJPUFFZeS8yWmlaWjcxQzNwUGMKLS0tIGdydkVBbXdrQnNMejJZMjN5VS9r
+            TnhVWjdiWTFjN1RDTjVJVm9NNFl2TU0KAYNYtgdxBjEBJYRtT4dyISPPP8U0yXBn
+            zTKgwZePoa62YO1hM/yweMxsmdWxLg1yI4oVWltGwuIgd+WNOQivHQ==
             -----END AGE ENCRYPTED FILE-----
-    lastmodified: "2024-12-26T15:24:43Z"
-    mac: 
ENC[AES256_GCM,data:0y4Td5B6y5/GfTUSokDMQkWGHvcdw128nYjcBOheIm+5vcDRvK28Rexjk230bk/pgzFGPgnR81wsEdejHAPGLQ1Tcr7wQpJCyG/hikfSnzgjJYZ4Pfne1aZp6vav860oSzrUTJOmAEB/IZy5BojKUXDSnreo4+qbSFMtUfh2xPo=,iv:LA+wn+dkgZYa1+eP5TChaAW2+yQVOc0ZCrbuRW54eU0=,tag:u0XiF5Fi0lUAPS02Vis2Ug==,type:str]
+    lastmodified: "2025-05-13T15:31:16Z"
+    mac: 
ENC[AES256_GCM,data:rdcuqKgDUWYfwiXwfmZ4LQetBqLcxg4HVCQnAe6+66SlTRlk2tmfTWkkN+4d7mPlL2AvXFxLHT327kDoNQMg4lDImchLvmZLDXgyfxB9lqtSM0kHadNqQF0Vq/HhhXdg0dt1HxO0NUY/zplOhy/uBNwIiFzxNjIbj6hE5XOM6uw=,iv:YSfddml3V5PRWQLwcKYDjB8on8sUxEGd3Qqh1oSiuOg=,tag:mEwzKW19cT/9rXcXvJ2t2A==,type:str]
     pgp:
-        - created_at: "2024-12-26T15:24:19Z"
+        - created_at: "2025-05-13T14:07:57Z"
           enc: |-
             -----BEGIN PGP MESSAGE-----
 
-            hF4D/dYBJRlWfQISAQdAhMxf2ufyvBjHsiYgVmxfyhpVjXIkAWOBPF0V2hTBchIw
-            ty3hraRX8sRSyH9LBzO33xzsXYQH1XdynPy/xUSvSJ614GhOerDaDB2xKdLKhEaZ
-            0l4BiT6s981bohkSBzxP6pqQc1EPsiXHt7VWdegq8c4egnluANr5iXcN0xuIb487
-            HueNPaKXK6ZBF9QP+09tSNP6aAenejleCUHit2oM7afYIOy56UAi5Y3wMpIPy/zB
-            =d88N
+            hF4D/dYBJRlWfQISAQdAgHuuKQrCedfoxAHg5zxM6E0s11EzwU0SXbu8ETcFFyIw
+            Q1EDd0T/ZW4VnjIDto8kUC0KMtUvrvR1s3FCG9mx2ZKMvIXwTHqMkLomjaXRHn4v
+            0l4BrQKkyX5Bm4mCzg8KC2e+JsvNdwNnkMJQHhU45q5TgBDV9FTA7Dri5IpNYt1L
+            AyGgUis+oRy4LBIN2vtjr5mV8nN71yWo6fpP0WsAh+ZHMumBiFc2ZklC6u5DIz/F
+            =M1T4
             -----END PGP MESSAGE-----
           fp: 15D5721F5F5BAF121495363EFE042E3D4085A811
-        - created_at: "2024-12-26T15:24:19Z"
+        - created_at: "2025-05-13T14:07:57Z"
           enc: |-
             -----BEGIN PGP MESSAGE-----
 
-            hF4D+EORkHurkvgSAQdATrXte4QAtZXgF8VY/Kfjqp243m4fj9CpJOf2GKbO+x0w
-            xmVbY3h0iQogyvkYp3Us09qcYH5FsISkjxxIIIs4YB74kOwW6MvW4+BMfsnJUTzW
-            0l4BHzdtU4m8JGqXOeP8C2BF0U22xaYGZMPPsextok3GjDNgNec1/4w7liWDehw8
-            ORJ8z+15TxHyqoUnt4PWer5LOtE12f+MKGmDeOVxep/lSzZxrNycZCSLgaG5Cgdv
-            =BgJM
+            hF4D+EORkHurkvgSAQdAQpNEHt3PLkCDNl4vym+srqWPglF8+UG8DL/XPRXgh0Uw
+            SlMoGpu6qinl5bPFSJKbZnuYKj8dWtWoFfK9c1xURgbaqd3mckjbofI/5BrqPJJC
+            0l4BeyS+LrRZsFr0Ivyh/bI/0NTAw4WjSup6cQKO88XH+Q3Rhm6Kdzv57ZzIMpDd
+            0gAgFTL7uGz4at5VhZoZLjuVff0jkW0tw38i27jyTgGUXTfJhiNXjJXET3LnUgIQ
+            =OgdO
             -----END PGP MESSAGE-----
           fp: CC51116A94490FA6FB3C18EB2401FCAE863A06CA
-        - created_at: "2024-12-26T15:24:19Z"
+        - created_at: "2025-05-13T14:07:57Z"
           enc: |-
             -----BEGIN PGP MESSAGE-----
 
-            hF4DCsA/BhMt3V4SAQdAENZRSE5wcxMS36LyYIlyIRj2IZR3gwn6vmpDPwcF3Ckw
-            4Q7IAwgsSVTYloEq2L1ti6YiSYOIHJ6sQ37zb8MqjpnCwqeF+Ilw2zN6a4uapTDw
-            0l4BEf2niBLKRnv4gYGAvQlsmDvKxD+XZgCA0Mf4Zo0gTBTNS5TRHaQuH2T+kZwc
-            fMAy22upXAJErldINHQLctOwG0r45lpqJAHu5BbmDOoyrrvU9oBk253XMgopYWmG
-            =WlAR
+            hF4DCsA/BhMt3V4SAQdAXEdFClqD2cSkNVYPqMSenULknpKAhaIgFvDD2j2WI18w
+            bq+Wxcz300c4bZNXROc8+hXNBzXW92MJ8uoNbD7hdefciF0UjcBf61mSQvYl/ueb
+            0l4B3k56RagBSmwUl8LytAUgF5OzY/6ICpe48d/+rguxBHvcI+KO3jBc6Da4FiAb
+            AGOVk2VdzVIeOBgc/eytAWjRlKYHk3mkXIfMlOYx2LFbFmrex5BWnrgVqoxo3hZU
+            =d+Ec
             -----END PGP MESSAGE-----
           fp: 4919F560F0D35F80CF382D76E084A2DF1143C14D
-        - created_at: "2024-12-26T15:24:19Z"
+        - created_at: "2025-05-13T14:07:57Z"
           enc: |-
             -----BEGIN PGP MESSAGE-----
 
-            hF4DRbry8yWl6IgSAQdAaWSu41JqARDdez39dRCn2zP7TbiN/S+5yFsQvjohonsw
-            RGgwTfrUVWy4E67EMx7RN3sVEXtLDBpBobdKOvUTqe6fZ+TSrqyalfDrlMDxaGjj
-            1GgBCQIQYCBiEZ2BvxY654zbUVkEet2nm41Lg/qQsEqBnXXZT24hX85WUbOyAYct
-            bR3sQZul9RlBFrkEXSLwBN+tFzidoIiHkHtRRsLZyCGKFfxyguM9He9CevDpggPA
-            wkKtYzMUzrNfKw==
-            =8JBm
+            hF4DRbry8yWl6IgSAQdAtRcYFWErls6e/h+TrDBuEQ+lECv2bfNEaZpg8yMIvRAw
+            G7Cm4X+lWBgeLD1mgrlF+kPsIxaolnXqM4V4dZAcAttrzffT1ssCtLe7dCRHZvfv
+            1GgBCQIQ+RzUnceJJToXtV98yJlxWCnu38pM8hL9PCBfFI0XEftKvdlScxRzBK/R
+            4nAIB29rAf9NHFeYDhIBjBdHQ9ju3T9kY0YH+585jsBCrWjMU+Hvj1JY7bVufrnV
+            ycoN0UtZ9f5Yag==
+            =H+8C
             -----END PGP MESSAGE-----
           fp: 11177A43C6E3752E682AC690DBD13117B0A14E93
-        - created_at: "2024-12-26T15:24:19Z"
+        - created_at: "2025-05-13T14:07:57Z"
           enc: |-
             -----BEGIN PGP MESSAGE-----
 
-            hF4DzfZC0UNQ1VgSAQdAT6ORCIjbdFHRpTcZLEJIniYNWnkgB6kbOTUR7Z4TNyww
-            YjqSVzt0pRHA0tnLKxC0EE1E9VGTrFjDpg0+yeoOzgS5M2zdl47LM9RMJTnA3cGM
-            1GgBCQIQNQoVBm+zPbJstZMPWUO7vrgTRxKFREm9RW3y1UP4DO4MmMr1F6yJyN/Z
-            0xZraVpL4YAj5FFnf9YkrPlTbiJsClO20k30rK79IEuXGkxTvLk4R0p8bbG1ps4D
-            HaTBqg+N24qQ8w==
-            =x4Lm
+            hF4DvbozpGPUDxgSAQdA/bTj9TEnbetB0jMR6ZNyQwzOJ7tvvPKUPbE7s4qrkmUw
+            GZBOamgGXU0UnnQ1Rk1hJ9rXXe4A6DqUAkOelaS/qUqCzRSNZboEijizAApaXGZe
+            0l4BbaCTNlLeJyI2jKbnO5hyv2DpHAFkKQ4CJna5KZj9TOrSrxnSkAJHLv0t0q9Z
+            M9weECX8RW3qvR75/H2T/ePfUYbGhB+7NpwN2BlU1wnTj7I9RkPetT8skCPxWY8G
+            =s/Bm
             -----END PGP MESSAGE-----
-          fp: AA5213AF261C1977AF38B03A94B473337258BFD5
+          fp: 5D7964FF2DB426ACB3C3505AA2A702DD5B689F45
+        - created_at: "2025-05-13T14:07:57Z"
+          enc: |-
+            -----BEGIN PGP MESSAGE-----
+
+            hF4D44lO7/xrMMASAQdAFbcv3Hu/AdGGSWC6kbPJcqbSlD1cTPX8sg8kb0oCpCcw
+            2/JLu9kJAEsO35DoyiYdRzBc2UVD26WSKtiNbD0XJOUo1yp/JTZ+xTH3fppE3Enf
+            1GgBCQIQtHg1HF6qEOfhnGrrW1ZZXEheX6+BPfOnQmN6BUcoevD4RrkbKS/x3mh3
+            A+y3MrdcaVtIQEWOMS1iuEKgJYeqYq6eOP0Y8B1Bbn3nKGK6G/zS7lqFDLUqWpMf
+            VT6LE5drfEXy5w==
+            =duo7
+            -----END PGP MESSAGE-----
+          fp: E77ED9F8451E10BD242D07415444881046F92733
     unencrypted_suffix: _unencrypted
-    version: 3.9.2
+    version: 3.10.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/.sops.yaml 
new/talosctl-1.10.2/.sops.yaml
--- old/talosctl-1.10.1/.sops.yaml      2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/.sops.yaml      2025-05-16 16:04:24.000000000 +0200
@@ -1,13 +1,14 @@
 # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
 #
-# Generated on 2024-12-26T15:20:08Z by kres fcff05e.
+# Generated on 2025-05-13T14:08:31Z by kres 5ad3e5f.
 
 creation_rules:
   - age: age1xrpa9ujxxcj2u2gzfrzv8mxak4rts94a6y60ypurv6rs5cpr4e4sg95f0k
-    # order: Andrey, Noel, Artem, Utku, Dmitriy
+    # order: Andrey, Noel, Artem, Utku, Tim, Andy
     pgp: >-
       15D5721F5F5BAF121495363EFE042E3D4085A811,
       CC51116A94490FA6FB3C18EB2401FCAE863A06CA,
       4919F560F0D35F80CF382D76E084A2DF1143C14D,
       11177A43C6E3752E682AC690DBD13117B0A14E93,
-      AA5213AF261C1977AF38B03A94B473337258BFD5
\ No newline at end of file
+      5D7964FF2DB426ACB3C3505AA2A702DD5B689F45,
+      E77ED9F8451E10BD242D07415444881046F92733
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/CHANGELOG.md 
new/talosctl-1.10.2/CHANGELOG.md
--- old/talosctl-1.10.1/CHANGELOG.md    2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/CHANGELOG.md    2025-05-16 16:04:24.000000000 +0200
@@ -1,3 +1,79 @@
+## [Talos 1.10.2](https://github.com/siderolabs/talos/releases/tag/v1.10.2) 
(2025-05-16)
+
+Welcome to the v1.10.2 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.27
+
+Talos is built with Go 1.24.3.
+
+
+### Contributors
+
+* Andrey Smirnov
+* Noel Georgi
+* Andrew Longwill
+
+### Changes
+<details><summary>11 commits</summary>
+<p>
+
+* 
[`44083c6e6`](https://github.com/siderolabs/talos/commit/44083c6e62bbef3481982b96746cd476ae512454)
 feat: update Linux to 6.12.27
+* 
[`78df89b87`](https://github.com/siderolabs/talos/commit/78df89b87c8521f688fb072470b8f90a1f32a927)
 fix: disable automatic MAC assignment to bridge interfaces
+* 
[`a5de48b87`](https://github.com/siderolabs/talos/commit/a5de48b873b9c1b2f0b5f2989eef813d5f90a6e4)
 fix: selinux detection
+* 
[`92dcddd19`](https://github.com/siderolabs/talos/commit/92dcddd1931cc1d696527f0eaf10de135aaa373f)
 fix: consistently apply dynamic grpc proxy dialer
+* 
[`b8f1bde3c`](https://github.com/siderolabs/talos/commit/b8f1bde3c862a20e88ec931a24dc85525b449592)
 chore: rotate aws iam credentials
+* 
[`e6b33e233`](https://github.com/siderolabs/talos/commit/e6b33e233b42251e91b55ac1652715d3446d04d6)
 chore: update sops keys
+* 
[`b7e5741e6`](https://github.com/siderolabs/talos/commit/b7e5741e6fe5065ae8f00cb759513fa75b123804)
 test: fix the process runner log collection
+* 
[`9e71cc8f5`](https://github.com/siderolabs/talos/commit/9e71cc8f50a7071b55c755bccc311bd89898f62c)
 fix: upgrade go-kubernetes for DRA flag bug
+* 
[`55885600b`](https://github.com/siderolabs/talos/commit/55885600ba0165b4a0e29869bc97345a26dcd3b9)
 test: fix some flaky tests
+* 
[`b183f95c7`](https://github.com/siderolabs/talos/commit/b183f95c7c072c47293ab0f4dea287e493ccf490)
 fix: k8s 1.32->1.33 upgrade check
+* 
[`4b27faf44`](https://github.com/siderolabs/talos/commit/4b27faf44e030623caa51edd1aecaf5f4a427773)
 fix: improve volume mounter automaton
+</p>
+</details>
+
+### Changes from siderolabs/go-kubernetes
+<details><summary>2 commits</summary>
+<p>
+
+* 
[`9070be4`](https://github.com/siderolabs/go-kubernetes/commit/9070be4308e23d969ec4fc49b25dab4a27d512e7)
 fix: remove DynamicResourceAllocation feature gate
+* 
[`8cb588b`](https://github.com/siderolabs/go-kubernetes/commit/8cb588bc4c93d812de901a6a33e599ba2169cd96)
 fix: k8s 1.32->1.33 upgrade check
+</p>
+</details>
+
+### Changes from siderolabs/pkgs
+<details><summary>4 commits</summary>
+<p>
+
+* 
[`b425b44`](https://github.com/siderolabs/pkgs/commit/b425b44f7975a89c25e786647f74d40c6c3de775)
 feat: update NVIDIA drivers
+* 
[`88034a5`](https://github.com/siderolabs/pkgs/commit/88034a5daa2fbc6c4626af69efb8db897f52b15a)
 feat: update ZFS to 2.3.2
+* 
[`87ce8f7`](https://github.com/siderolabs/pkgs/commit/87ce8f71d420b1600fcd121c373324e87987abec)
 feat: update Linux to 6.12.27
+* 
[`c0af3b8`](https://github.com/siderolabs/pkgs/commit/c0af3b8715ebf6adb5bc68e983a8aa03facb361f)
 feat: update Go to 1.24.3
+</p>
+</details>
+
+### Changes from siderolabs/tools
+<details><summary>1 commit</summary>
+<p>
+
+* 
[`fa51331`](https://github.com/siderolabs/tools/commit/fa513311ad42bb2a60e9b464c7c8fe3fbc2f0855)
 feat: update Go to 1.24.3
+</p>
+</details>
+
+### Dependency Changes
+
+* **github.com/siderolabs/go-kubernetes**  v0.2.21 -> v0.2.23
+* **github.com/siderolabs/pkgs**           v1.10.0-8-g13e9f09 -> 
v1.10.0-12-gb425b44
+* **github.com/siderolabs/tools**          v1.10.0-1-g67d3f5a -> 
v1.10.0-2-gfa51331
+
+Previous release can be found at 
[v1.10.1](https://github.com/siderolabs/talos/releases/tag/v1.10.1)
+
 ## [Talos 1.10.1](https://github.com/siderolabs/talos/releases/tag/v1.10.1) 
(2025-05-07)
 
 Welcome to the v1.10.1 release of Talos!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/Makefile new/talosctl-1.10.2/Makefile
--- old/talosctl-1.10.1/Makefile        2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/Makefile        2025-05-16 16:04:24.000000000 +0200
@@ -25,9 +25,9 @@
 EMBED_TARGET ?= embed
 
 TOOLS_PREFIX ?= ghcr.io/siderolabs/tools
-TOOLS ?= v1.10.0-1-g67d3f5a
+TOOLS ?= v1.10.0-2-gfa51331
 PKGS_PREFIX ?= ghcr.io/siderolabs
-PKGS ?= v1.10.0-8-g13e9f09
+PKGS ?= v1.10.0-12-gb425b44
 
 KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest
 CONFORMANCE_IMAGE ?= ghcr.io/siderolabs/conform:latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/go.mod new/talosctl-1.10.2/go.mod
--- old/talosctl-1.10.1/go.mod  2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/go.mod  2025-05-16 16:04:24.000000000 +0200
@@ -151,7 +151,7 @@
        github.com/siderolabs/go-debug v0.5.0
        github.com/siderolabs/go-kmsg v0.1.4
        github.com/siderolabs/go-kubeconfig v0.1.1
-       github.com/siderolabs/go-kubernetes v0.2.21
+       github.com/siderolabs/go-kubernetes v0.2.23
        github.com/siderolabs/go-loadbalancer v0.4.0
        github.com/siderolabs/go-pcidb v0.3.1
        github.com/siderolabs/go-pointer v1.0.1
@@ -165,7 +165,7 @@
        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.1
+       github.com/siderolabs/talos/pkg/machinery v1.10.2
        github.com/sirupsen/logrus v1.9.3
        github.com/spf13/cobra v1.9.1
        github.com/spf13/pflag v1.0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/go.sum new/talosctl-1.10.2/go.sum
--- old/talosctl-1.10.1/go.sum  2025-05-07 12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/go.sum  2025-05-16 16:04:24.000000000 +0200
@@ -647,8 +647,8 @@
 github.com/siderolabs/go-kmsg v0.1.4/go.mod 
h1:BLkt2N2DHT0wsFMz32lMw6vNEZL90c8ZnBjpIUoBb/M=
 github.com/siderolabs/go-kubeconfig v0.1.1 
h1:tZlgpelj/OqrcHVUwISPN0NRgObcflpH9WtE41mtQZ0=
 github.com/siderolabs/go-kubeconfig v0.1.1/go.mod 
h1:QaGp4i9L95oDbcU7jDn30aw4gnREkb3O5otgxw8imOk=
-github.com/siderolabs/go-kubernetes v0.2.21 
h1:+gHiyTyVz5oZy6cIVtqKbIWtAH/ejnQ7Yg9hZLG32WI=
-github.com/siderolabs/go-kubernetes v0.2.21/go.mod 
h1:3qZzReVZV7e+r0DZC2cE6bBQse+CoC7SGL+EavA52G8=
+github.com/siderolabs/go-kubernetes v0.2.23 
h1:QGcxDd1D2IU2pIbSZayUNnEEZTARrpIiRVRQvHU+2Z8=
+github.com/siderolabs/go-kubernetes v0.2.23/go.mod 
h1:3qZzReVZV7e+r0DZC2cE6bBQse+CoC7SGL+EavA52G8=
 github.com/siderolabs/go-loadbalancer v0.4.0 
h1:nqZC4x1yZAFAtkb7eu5T1IoPaMDKu5jgQQGkk6rZa9s=
 github.com/siderolabs/go-loadbalancer v0.4.0/go.mod 
h1:tRVouZ9i2R/TRbNUF9MqyBlV2wsjX0cxkYTjPXcI9P0=
 github.com/siderolabs/go-pcidb v0.3.1 
h1:Gef+LOwxB+bCUzoFajzvHg4icMqYGAoS/msdiMmPXo0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/hack/release.toml 
new/talosctl-1.10.2/hack/release.toml
--- old/talosctl-1.10.1/hack/release.toml       2025-05-07 12:10:36.000000000 
+0200
+++ new/talosctl-1.10.2/hack/release.toml       2025-05-16 16:04:24.000000000 
+0200
@@ -7,7 +7,7 @@
 ignore_deps = ["github.com/coredns/coredns"]
 
 # previous release
-previous = "v1.10.0"
+previous = "v1.10.1"
 
 pre_release = false
 
@@ -16,6 +16,14 @@
 
 [notes]
 
+    [notes.updates]
+        title = "Component Updates"
+        description = """
+Linux: 6.12.27
+
+Talos is built with Go 1.24.3.
+"""
+
 [make_deps]
 
     [make_deps.tools]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/hack/udevd/99-default.link 
new/talosctl-1.10.2/hack/udevd/99-default.link
--- old/talosctl-1.10.1/hack/udevd/99-default.link      2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/hack/udevd/99-default.link      2025-05-16 
16:04:24.000000000 +0200
@@ -12,4 +12,4 @@
 [Link]
 NamePolicy=keep kernel database onboard slot path mac
 AlternativeNamesPolicy=database onboard slot path mac
-MACAddressPolicy=persistent
+MACAddressPolicy=none
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/automaton/blockautomaton/volume_mount.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/automaton/blockautomaton/volume_mount.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/automaton/blockautomaton/volume_mount.go
      2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/automaton/blockautomaton/volume_mount.go
      2025-05-16 16:04:24.000000000 +0200
@@ -154,5 +154,20 @@
                return nil, fmt.Errorf("error destroying mount request: %w", 
err)
        }
 
-       return nil, nil
+       return waitForVolumeMountStatusRemoved, nil
+}
+
+// waitForVolumeMountStatusRemoved is the state of the volume mounter 
controller state machine that waits for the volume mount status to be removed.
+func waitForVolumeMountStatusRemoved(ctx context.Context, r 
controller.ReaderWriter, logger *zap.Logger, mountContext volumeMountContext) 
(automaton.ControllerStateFunc[volumeMountContext], error) {
+       mountStatus, err := safe.ReaderGetByID[*block.VolumeMountStatus](ctx, 
r, mountContext.mountID)
+       if err != nil && !state.IsNotFoundError(err) {
+               return nil, fmt.Errorf("error reading volume mount status: %w", 
err)
+       }
+
+       if mountStatus == nil {
+               // removed
+               return nil, nil
+       }
+
+       return nil, xerrors.NewTaggedf[automaton.Continue]("waiting for mount 
status to be removed")
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/automaton/blockautomaton/volume_mount_test.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/automaton/blockautomaton/volume_mount_test.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/automaton/blockautomaton/volume_mount_test.go
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/automaton/blockautomaton/volume_mount_test.go
 2025-05-16 16:04:24.000000000 +0200
@@ -0,0 +1,184 @@
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+package blockautomaton_test
+
+import (
+       "context"
+       "errors"
+       "fmt"
+       "testing"
+       "time"
+
+       "github.com/cosi-project/runtime/pkg/controller"
+       "github.com/cosi-project/runtime/pkg/resource"
+       "github.com/cosi-project/runtime/pkg/resource/rtestutils"
+       "github.com/cosi-project/runtime/pkg/state"
+       "github.com/cosi-project/runtime/pkg/state/impl/inmem"
+       "github.com/cosi-project/runtime/pkg/state/impl/namespaced"
+       "github.com/stretchr/testify/assert"
+       "github.com/stretchr/testify/require"
+       "go.uber.org/zap"
+       "go.uber.org/zap/zaptest"
+
+       "github.com/siderolabs/talos/internal/app/machined/pkg/automaton"
+       
"github.com/siderolabs/talos/internal/app/machined/pkg/automaton/blockautomaton"
+       "github.com/siderolabs/talos/pkg/machinery/resources/block"
+)
+
+type stateReaderWriterAdapter struct {
+       state.State
+
+       owner string
+}
+
+func (s stateReaderWriterAdapter) Create(ctx context.Context, r 
resource.Resource) error {
+       return s.State.Create(ctx, r)
+}
+
+func (s stateReaderWriterAdapter) Destroy(ctx context.Context, r 
resource.Pointer, _ ...controller.DeleteOption) error {
+       return s.State.Destroy(ctx, r, state.WithDestroyOwner(s.owner))
+}
+
+func (s stateReaderWriterAdapter) ModifyWithResult(
+       ctx context.Context, emptyResource resource.Resource, updateFunc 
func(resource.Resource) error, options ...controller.ModifyOption,
+) (resource.Resource, error) {
+       _, err := s.State.Get(ctx, emptyResource.Metadata())
+       if err != nil {
+               if state.IsNotFoundError(err) {
+                       err = updateFunc(emptyResource)
+                       if err != nil {
+                               return nil, err
+                       }
+
+                       if err = s.State.Create(ctx, emptyResource, 
state.WithCreateOwner(s.owner)); err != nil {
+                               return nil, err
+                       }
+
+                       return emptyResource, nil
+               }
+
+               return nil, fmt.Errorf("error querying current object state: 
%w", err)
+       }
+
+       updateOptions := []state.UpdateOption{state.WithUpdateOwner(s.owner)}
+
+       modifyOptions := controller.ToModifyOptions(options...)
+       if modifyOptions.ExpectedPhase != nil {
+               updateOptions = append(updateOptions, 
state.WithExpectedPhase(*modifyOptions.ExpectedPhase))
+       } else {
+               updateOptions = append(updateOptions, 
state.WithExpectedPhaseAny())
+       }
+
+       return s.State.UpdateWithConflicts(ctx, emptyResource.Metadata(), 
updateFunc, updateOptions...)
+}
+
+func (s stateReaderWriterAdapter) Modify(ctx context.Context, emptyResource 
resource.Resource, updateFunc func(resource.Resource) error, options 
...controller.ModifyOption) error {
+       _, err := s.ModifyWithResult(ctx, emptyResource, updateFunc, options...)
+
+       return err
+}
+
+func (s stateReaderWriterAdapter) Teardown(ctx context.Context, r 
resource.Pointer, _ ...controller.DeleteOption) (bool, error) {
+       return s.State.Teardown(ctx, r, state.WithTeardownOwner(s.owner))
+}
+
+func (s stateReaderWriterAdapter) Update(ctx context.Context, r 
resource.Resource) error {
+       return s.State.Update(ctx, r)
+}
+
+func TestVolumeMounter(t *testing.T) {
+       t.Parallel()
+
+       logger := zaptest.NewLogger(t)
+       st := state.WrapCore(namespaced.NewState(inmem.Build))
+       ctx, cancel := context.WithTimeout(t.Context(), 10*time.Second)
+       t.Cleanup(cancel)
+
+       mountedCh := make(chan struct{})
+
+       volumeMounter := blockautomaton.NewVolumeMounter("requester", 
"volumeID", func(ctx context.Context, rw controller.ReaderWriter, l 
*zap.Logger, vms *block.VolumeMountStatus) error {
+               select {
+               case <-mountedCh:
+                       // already closed
+                       return nil
+               default:
+                       close(mountedCh)
+
+                       return errors.New("mount status callback")
+               }
+       })
+
+       const mountID = "requester-volumeID"
+
+       adapter := stateReaderWriterAdapter{st, "automaton"}
+
+       // 1st run, should create the volume mount request
+       require.NoError(t, volumeMounter.Run(ctx, adapter, logger))
+
+       rtestutils.AssertResource(ctx, t, st, mountID, func(vmr 
*block.VolumeMountRequest, asrt *assert.Assertions) {
+               asrt.Equal("requester", vmr.TypedSpec().Requester)
+               asrt.Equal("volumeID", vmr.TypedSpec().VolumeID)
+       })
+
+       require.NoError(t, st.AddFinalizer(ctx, 
block.NewVolumeMountRequest(block.NamespaceName, mountID).Metadata(), "test"))
+
+       // no-op run, as the volume mount status doesn't exist
+       require.NoError(t, volumeMounter.Run(ctx, adapter, logger))
+
+       vms := block.NewVolumeMountStatus(block.NamespaceName, mountID)
+       require.NoError(t, st.Create(ctx, vms))
+
+       // 2nd run, should put a finalizer on the volume mount status and call 
the callback 1st time
+       err := volumeMounter.Run(ctx, adapter, logger)
+
+       select {
+       case <-mountedCh:
+       case <-ctx.Done():
+               t.Fatal("timed out waiting for mount status callback")
+       }
+
+       require.ErrorContains(t, err, "mount status callback")
+
+       // should put a finalizer on the volume mount status
+       rtestutils.AssertResource(ctx, t, st, mountID, func(vms 
*block.VolumeMountStatus, asrt *assert.Assertions) {
+               asrt.True(vms.Metadata().Finalizers().Has("requester"))
+       })
+
+       // 3rd run, now the mount callback should be called again, return nil,
+       // and volume mount status finalizer should be removed
+       require.NoError(t, volumeMounter.Run(ctx, adapter, logger))
+
+       // should remove a finalizer on the volume mount status
+       rtestutils.AssertResource(ctx, t, st, mountID, func(vms 
*block.VolumeMountStatus, asrt *assert.Assertions) {
+               asrt.False(vms.Metadata().Finalizers().Has("requester"))
+       })
+
+       // the mount request now should be torn down by the automaton
+       rtestutils.AssertResource(ctx, t, st, mountID, func(vmr 
*block.VolumeMountRequest, asrt *assert.Assertions) {
+               asrt.Equal(resource.PhaseTearingDown, vmr.Metadata().Phase())
+       })
+
+       // remove our finalizer from the mount request
+       require.NoError(t, st.RemoveFinalizer(ctx, 
block.NewVolumeMountRequest(block.NamespaceName, mountID).Metadata(), "test"))
+
+       // 4th run, now the mount request should be destroyed
+       require.NoError(t, volumeMounter.Run(ctx, adapter, logger))
+
+       rtestutils.AssertNoResource[*block.VolumeMountRequest](ctx, t, st, 
mountID)
+
+       // destroy the volume mount status
+       require.NoError(t, st.Destroy(ctx, vms.Metadata()))
+
+       var finished bool
+
+       // 5th run, now the automaton should have finished
+       require.NoError(t, volumeMounter.Run(ctx, adapter, logger, 
automaton.WithAfterFunc(func() error {
+               finished = true
+
+               return nil
+       })))
+
+       assert.True(t, finished)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/config/acquire_test.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/config/acquire_test.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/config/acquire_test.go
    2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/config/acquire_test.go
    2025-05-16 16:04:24.000000000 +0200
@@ -292,6 +292,7 @@
 
        if wait {
                ctest.AssertNoResource[*block.VolumeMountRequest](suite, 
mountID)
+               suite.Destroy(volumeMountStatus)
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/network/cmdline_test.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/network/cmdline_test.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/network/cmdline_test.go
   2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/network/cmdline_test.go
   2025-05-16 16:04:24.000000000 +0200
@@ -23,8 +23,7 @@
 )
 
 func TestCmdlineParse(t *testing.T) {
-       t.Parallel()
-
+       // [NOTE]: this test is not safe to run in parallel, as 
defaultIfaceName might flip if some interface is created concurrently
        ifaces, _ := net.Interfaces() //nolint:errcheck // ignoring error here 
as ifaces will be empty
 
        slices.SortFunc(ifaces, func(a, b net.Interface) int { return 
cmp.Compare(a.Name, b.Name) })
@@ -599,8 +598,6 @@
                },
        } {
                t.Run(test.name, func(t *testing.T) {
-                       t.Parallel()
-
                        cmdline := procfs.NewCmdline(test.cmdline)
 
                        link1 := 
netconfig.NewLinkStatus(netconfig.NamespaceName, "eth31")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/network/platform_config_test.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/network/platform_config_test.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/network/platform_config_test.go
   2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/network/platform_config_test.go
   2025-05-16 16:04:24.000000000 +0200
@@ -320,6 +320,11 @@
                ),
        )
 
+       // wait for the controller to acquire the config
+       ctest.AssertResources(suite, []string{
+               "external/10.3.4.5/32",
+       }, func(r *network.AddressStatus, asrt *assert.Assertions) {})
+
        statePath := suite.T().TempDir()
        mountID := (&netctrl.PlatformConfigController{}).Name() + "-" + 
constants.StatePartitionLabel
 
@@ -380,6 +385,10 @@
        volumeMountStatus.TypedSpec().Target = statePath
        suite.Create(volumeMountStatus)
 
+       ctest.AssertNoResource[*block.VolumeMountRequest](suite, mountID)
+
+       suite.Destroy(volumeMountStatus)
+
        // controller should pick up cached network configuration
        ctest.AssertResources(suite, []string{
                "external/10.3.4.5/32",
@@ -406,14 +415,6 @@
                asrt.Equal("", spec.Domainname)
                asrt.Equal(network.ConfigPlatform, spec.ConfigLayer)
        }, rtestutils.WithNamespace(network.ConfigNamespaceName))
-
-       ctest.AssertResources(suite, 
[]resource.ID{volumeMountStatus.Metadata().ID()}, func(vms 
*block.VolumeMountStatus, asrt *assert.Assertions) {
-               asrt.True(vms.Metadata().Finalizers().Empty())
-       })
-
-       suite.Destroy(volumeMountStatus)
-
-       ctest.AssertNoResource[*block.VolumeMountRequest](suite, mountID)
 }
 
 func TestPlatformConfigSuite(t *testing.T) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/runtime/events_sink.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/runtime/events_sink.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/runtime/events_sink.go
    2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/runtime/events_sink.go
    2025-05-16 16:04:24.000000000 +0200
@@ -22,6 +22,7 @@
 
        networkutils 
"github.com/siderolabs/talos/internal/app/machined/pkg/controllers/network/utils"
        machinedruntime 
"github.com/siderolabs/talos/internal/app/machined/pkg/runtime"
+       "github.com/siderolabs/talos/pkg/grpc/dialer"
        "github.com/siderolabs/talos/pkg/machinery/resources/network"
        "github.com/siderolabs/talos/pkg/machinery/resources/runtime"
 )
@@ -165,6 +166,7 @@
                                cfg.TypedSpec().Endpoint,
                                
grpc.WithTransportCredentials(insecure.NewCredentials()),
                                grpc.WithSharedWriteBuffer(true),
+                               
grpc.WithContextDialer(dialer.DynamicProxyDialer),
                        )
                        if err != nil {
                                return fmt.Errorf("error establishing 
connection to event sink: %w", err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/siderolink/manager.go 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/siderolink/manager.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/controllers/siderolink/manager.go 
    2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/controllers/siderolink/manager.go 
    2025-05-16 16:04:24.000000000 +0200
@@ -30,6 +30,7 @@
        "google.golang.org/grpc/credentials/insecure"
 
        networkutils 
"github.com/siderolabs/talos/internal/app/machined/pkg/controllers/network/utils"
+       "github.com/siderolabs/talos/pkg/grpc/dialer"
        "github.com/siderolabs/talos/pkg/httpdefaults"
        "github.com/siderolabs/talos/pkg/machinery/constants"
        "github.com/siderolabs/talos/pkg/machinery/nethelpers"
@@ -345,6 +346,7 @@
                        cfg.TypedSpec().Host,
                        withTransportCredentials(cfg.TypedSpec().Insecure),
                        grpc.WithSharedWriteBuffer(true),
+                       grpc.WithContextDialer(dialer.DynamicProxyDialer),
                )
                if connErr != nil {
                        return nil, fmt.Errorf("error dialing SideroLink 
endpoint %q: %w", cfg.TypedSpec().Host, connErr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/system/runner/process/process.go 
new/talosctl-1.10.2/internal/app/machined/pkg/system/runner/process/process.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/system/runner/process/process.go  
    2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/system/runner/process/process.go  
    2025-05-16 16:04:24.000000000 +0200
@@ -5,7 +5,6 @@
 package process
 
 import (
-       "cmp"
        "fmt"
        "io"
        "io/fs"
@@ -92,15 +91,14 @@
 }
 
 type commandWrapper struct {
-       launcher         *cap.Launcher
-       ctty             optional.Optional[int]
-       selinuxLabel     string
-       cgroupFile       *os.File
-       stdin            *os.File
-       stdout           *os.File
-       stderr           *os.File
-       afterStart       func()
-       afterTermination func() error
+       launcher     *cap.Launcher
+       ctty         optional.Optional[int]
+       selinuxLabel string
+       cgroupFile   *os.File
+       stdin        *os.File
+       stdout       *os.File
+       stderr       *os.File
+       afterStart   func()
 }
 
 func dropCaps(droppedCapabilities []string, launcher *cap.Launcher) error {
@@ -195,16 +193,16 @@
        launcher.Callback(beforeExecCallback)
 
        // Setup logging.
-       w, err := p.opts.LoggingManager.ServiceLog(p.args.ID).Writer()
+       logSink, err := p.opts.LoggingManager.ServiceLog(p.args.ID).Writer()
        if err != nil {
                return commandWrapper{}, fmt.Errorf("service log handler: %w", 
err)
        }
 
-       var writer io.Writer
+       var logWriter io.Writer
        if p.debug {
-               writer = io.MultiWriter(w, log.Writer())
+               logWriter = io.MultiWriter(logSink, log.Writer())
        } else {
-               writer = w
+               logWriter = logSink
        }
 
        // As MultiWriter is not a file, we need to create a pipe
@@ -214,27 +212,30 @@
                return commandWrapper{}, err
        }
 
-       go io.Copy(writer, pr) //nolint:errcheck
+       go func() {
+               defer pr.Close()      //nolint:errcheck
+               defer logSink.Close() //nolint:errcheck
+
+               io.Copy(logWriter, pr) //nolint:errcheck
+       }()
 
        // close the writer if we exit early due to an error
        closeWriter := true
 
-       closeLogging := func() (e error) {
-               for _, closer := range []io.Closer{w, pr, pw} {
-                       e = cmp.Or(closer.Close(), e)
-               }
+       afterStartClosers := []io.Closer{pw}
 
-               return e
+       closeLogging := func() {
+               for _, closer := range afterStartClosers {
+                       closer.Close() //nolint:errcheck
+               }
        }
 
        defer func() {
                if closeWriter {
-                       closeLogging() //nolint:errcheck
+                       closeLogging()
                }
        }()
 
-       var afterStartClosers []io.Closer
-
        if p.opts.StdinFile != "" {
                stdin, err := os.Open(p.opts.StdinFile)
                if err != nil {
@@ -277,8 +278,7 @@
        closeWriter = false
 
        wrapper.launcher = launcher
-       wrapper.afterStart = func() { xslices.Map(afterStartClosers, 
io.Closer.Close) }
-       wrapper.afterTermination = closeLogging
+       wrapper.afterStart = closeLogging
        wrapper.ctty = p.opts.Ctty
        wrapper.selinuxLabel = p.opts.SelinuxLabel
 
@@ -419,7 +419,7 @@
                return fmt.Errorf("error building command: %w", err)
        }
 
-       defer cmdWrapper.afterTermination() //nolint:errcheck
+       defer cmdWrapper.afterStart()
 
        notifyCh := make(chan reaper.ProcessInfo, 8)
 
@@ -479,7 +479,7 @@
        // wait for process to terminate
        <-waitCh
 
-       return cmdWrapper.afterTermination()
+       return nil
 }
 
 func (p *processRunner) String() string {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/internal/app/machined/pkg/system/runner/process/process_test.go
 
new/talosctl-1.10.2/internal/app/machined/pkg/system/runner/process/process_test.go
--- 
old/talosctl-1.10.1/internal/app/machined/pkg/system/runner/process/process_test.go
 2025-05-07 12:10:36.000000000 +0200
+++ 
new/talosctl-1.10.2/internal/app/machined/pkg/system/runner/process/process_test.go
 2025-05-16 16:04:24.000000000 +0200
@@ -7,7 +7,6 @@
 import (
        "fmt"
        "io"
-       "log"
        "os"
        "path/filepath"
        "strconv"
@@ -18,7 +17,9 @@
        "time"
 
        "github.com/siderolabs/go-cmd/pkg/cmd/proc/reaper"
+       "github.com/stretchr/testify/assert"
        "github.com/stretchr/testify/suite"
+       "go.uber.org/goleak"
 
        "github.com/siderolabs/talos/internal/app/machined/pkg/runtime"
        "github.com/siderolabs/talos/internal/app/machined/pkg/runtime/logging"
@@ -28,8 +29,10 @@
        
"github.com/siderolabs/talos/internal/app/machined/pkg/system/runner/restart"
 )
 
-func MockEventSink(state events.ServiceState, message string, args ...any) {
-       log.Printf("state %s: %s", state, fmt.Sprintf(message, args...))
+func MockEventSink(t *testing.T) func(state events.ServiceState, message 
string, args ...any) {
+       return func(state events.ServiceState, message string, args ...any) {
+               t.Logf("state %s: %s", state, fmt.Sprintf(message, args...))
+       }
 }
 
 type ProcessSuite struct {
@@ -67,7 +70,7 @@
 
        defer func() { suite.Assert().NoError(r.Close()) }()
 
-       suite.Assert().NoError(r.Run(MockEventSink))
+       suite.Assert().NoError(r.Run(MockEventSink(suite.T())))
        // calling stop when Run has finished is no-op
        suite.Assert().NoError(r.Stop())
 }
@@ -82,18 +85,17 @@
 
        defer func() { suite.Assert().NoError(r.Close()) }()
 
-       suite.Assert().NoError(r.Run(MockEventSink))
+       suite.Assert().NoError(r.Run(MockEventSink(suite.T())))
 
-       logFile, err := os.Open(filepath.Join(suite.tmpDir, "logtest.log"))
-       suite.Assert().NoError(err)
+       // the log file is written asynchronously, so we need to wait a bit
+       suite.EventuallyWithT(func(collect *assert.CollectT) {
+               asrt := assert.New(collect)
 
-       //nolint:errcheck
-       defer logFile.Close()
+               logContents, err := os.ReadFile(filepath.Join(suite.tmpDir, 
"logtest.log"))
+               asrt.NoError(err)
 
-       logContents, err := io.ReadAll(logFile)
-       suite.Assert().NoError(err)
-
-       suite.Assert().Equal([]byte("Test 1\nTest 2\n"), logContents)
+               asrt.Equal([]byte("Test 1\nTest 2\n"), logContents)
+       }, time.Second, 10*time.Millisecond)
 }
 
 func (suite *ProcessSuite) TestRunRestartFailed() {
@@ -116,7 +118,7 @@
 
        go func() {
                defer wg.Done()
-               suite.Assert().NoError(r.Run(MockEventSink))
+               suite.Assert().NoError(r.Run(MockEventSink(suite.T())))
        }()
 
        fetchLog := func() []byte {
@@ -166,7 +168,7 @@
        done := make(chan error, 1)
 
        go func() {
-               done <- r.Run(MockEventSink)
+               done <- r.Run(MockEventSink(suite.T()))
        }()
 
        time.Sleep(40 * time.Millisecond)
@@ -213,7 +215,7 @@
        done := make(chan error, 1)
 
        go func() {
-               done <- r.Run(MockEventSink)
+               done <- r.Run(MockEventSink(suite.T()))
        }()
 
        time.Sleep(100 * time.Millisecond)
@@ -253,7 +255,7 @@
        done := make(chan error, 1)
 
        go func() {
-               done <- r.Run(MockEventSink)
+               done <- r.Run(MockEventSink(suite.T()))
        }()
 
        time.Sleep(10 * time.Millisecond)
@@ -307,7 +309,7 @@
        done := make(chan error, 1)
 
        go func() {
-               done <- r.Run(MockEventSink)
+               done <- r.Run(MockEventSink(suite.T()))
        }()
 
        time.Sleep(10 * time.Millisecond)
@@ -360,7 +362,7 @@
        done := make(chan error, 1)
 
        go func() {
-               done <- r.Run(MockEventSink)
+               done <- r.Run(MockEventSink(suite.T()))
        }()
 
        time.Sleep(10 * time.Millisecond)
@@ -383,8 +385,14 @@
 
 func TestProcessSuite(t *testing.T) {
        for _, runReaper := range []bool{true, false} {
-               func(runReaper bool) {
-                       t.Run(fmt.Sprintf("runReaper=%v", runReaper), func(t 
*testing.T) { suite.Run(t, &ProcessSuite{runReaper: runReaper}) })
-               }(runReaper)
+               t.Run(fmt.Sprintf("runReaper=%v", runReaper),
+                       func(t *testing.T) {
+                               suite.Run(t, &ProcessSuite{runReaper: 
runReaper})
+                       },
+               )
        }
 }
+
+func TestMain(m *testing.M) {
+       goleak.VerifyTestMain(m)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/internal/integration/api/ethernet.go 
new/talosctl-1.10.2/internal/integration/api/ethernet.go
--- old/talosctl-1.10.1/internal/integration/api/ethernet.go    2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/internal/integration/api/ethernet.go    2025-05-16 
16:04:24.000000000 +0200
@@ -8,6 +8,8 @@
 
 import (
        "context"
+       "fmt"
+       "math/rand/v2"
        "os"
        "testing"
        "time"
@@ -23,6 +25,7 @@
        "github.com/siderolabs/talos/internal/integration/base"
        "github.com/siderolabs/talos/pkg/machinery/client"
        networkconfig 
"github.com/siderolabs/talos/pkg/machinery/config/types/network"
+       "github.com/siderolabs/talos/pkg/machinery/config/types/v1alpha1"
        "github.com/siderolabs/talos/pkg/machinery/resources/network"
 )
 
@@ -198,6 +201,99 @@
        })
 }
 
+// TestBridgeMAC verifies bridge MAC address.
+func (suite *EthernetSuite) TestBridgeMAC() {
+       // pick up a random node to test the Ethernet on, and use it throughout 
the test
+       node := suite.RandomDiscoveredNodeInternalIP()
+
+       suite.T().Logf("testing bridge MAC on node %s", node)
+
+       // build a Talos API context which is tied to the node
+       nodeCtx := client.WithNode(suite.ctx, node)
+
+       randomSuffix := fmt.Sprintf("%04x", rand.Int32())
+
+       patch1 := v1alpha1.Config{
+               MachineConfig: &v1alpha1.MachineConfig{
+                       MachineNetwork: &v1alpha1.NetworkConfig{
+                               NetworkInterfaces: v1alpha1.NetworkDeviceList{
+                                       {
+                                               DeviceInterface: "dummy" + 
randomSuffix,
+                                               DeviceDummy:     
pointer.To(true),
+                                       },
+                                       {
+                                               DeviceInterface: "bridge" + 
randomSuffix,
+                                               DeviceBridge:    
&v1alpha1.Bridge{},
+                                       },
+                               },
+                       },
+               },
+       }
+
+       suite.PatchMachineConfig(nodeCtx, patch1)
+
+       var dummyMAC string
+
+       // the links should be created
+       rtestutils.AssertResources(nodeCtx, suite.T(), suite.Client.COSI,
+               []string{"dummy" + randomSuffix, "bridge" + randomSuffix},
+               func(link *network.LinkStatus, _ *assert.Assertions) {
+                       if link.TypedSpec().Kind == "dummy" {
+                               dummyMAC = 
link.TypedSpec().HardwareAddr.String()
+                       }
+               })
+
+       suite.Assert().NotEmpty(dummyMAC, "dummy MAC address is empty")
+
+       // now, let's put dummy interface into the bridge
+       patch2 := v1alpha1.Config{
+               MachineConfig: &v1alpha1.MachineConfig{
+                       MachineNetwork: &v1alpha1.NetworkConfig{
+                               NetworkInterfaces: v1alpha1.NetworkDeviceList{
+                                       {
+                                               DeviceInterface: "bridge" + 
randomSuffix,
+                                               DeviceBridge: &v1alpha1.Bridge{
+                                                       BridgedInterfaces: 
[]string{"dummy" + randomSuffix},
+                                               },
+                                       },
+                               },
+                       },
+               },
+       }
+
+       suite.PatchMachineConfig(nodeCtx, patch2)
+
+       // now bridge should have the same MAC address as dummy
+       rtestutils.AssertResources(nodeCtx, suite.T(), suite.Client.COSI,
+               []string{"dummy" + randomSuffix, "bridge" + randomSuffix},
+               func(link *network.LinkStatus, asrt *assert.Assertions) {
+                       asrt.Equal(dummyMAC, 
link.TypedSpec().HardwareAddr.String(), "dummy MAC address is not equal to 
bridge MAC address")
+               })
+
+       // revert the changes removing the dummy interface from the bridge
+       patch3 := map[string]any{
+               "machine": map[string]any{
+                       "network": map[string]any{
+                               "interfaces": []map[string]any{
+                                       {
+                                               "interface": "bridge" + 
randomSuffix,
+                                               "$patch":    "delete",
+                                       },
+                                       {
+                                               "interface": "dummy" + 
randomSuffix,
+                                               "$patch":    "delete",
+                                       },
+                               },
+                       },
+               },
+       }
+
+       suite.PatchMachineConfig(nodeCtx, patch3)
+
+       rtestutils.AssertNoResource[*network.LinkStatus](nodeCtx, suite.T(), 
suite.Client.COSI, "dummy"+randomSuffix)
+       rtestutils.AssertNoResource[*network.LinkStatus](nodeCtx, suite.T(), 
suite.Client.COSI, "bridge"+randomSuffix)
+}
+
 func init() {
        allSuites = append(allSuites, new(EthernetSuite))
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/internal/pkg/dns/dns_test.go 
new/talosctl-1.10.2/internal/pkg/dns/dns_test.go
--- old/talosctl-1.10.1/internal/pkg/dns/dns_test.go    2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/internal/pkg/dns/dns_test.go    2025-05-16 
16:04:24.000000000 +0200
@@ -29,7 +29,7 @@
 )
 
 func TestDNS(t *testing.T) {
-       goleak.VerifyNone(t)
+       t.Cleanup(func() { goleak.VerifyNone(t) })
 
        tests := []struct {
                name         string
@@ -47,7 +47,7 @@
                },
                {
                        name:        "failure",
-                       hostname:    "google.com",
+                       hostname:    "google-fail.com",
                        nameservers: []string{"242.242.242.242"},
                        errCheck:    check.ErrorContains("i/o timeout"),
                },
@@ -104,7 +104,7 @@
 }
 
 func TestDNSEmptyDestinations(t *testing.T) {
-       goleak.VerifyNone(t)
+       t.Cleanup(func() { goleak.VerifyNone(t) })
 
        stop := newManager(t)
        defer stop()
@@ -123,7 +123,7 @@
 }
 
 func Test_ServeBackground(t *testing.T) {
-       goleak.VerifyNone(t)
+       t.Cleanup(func() { goleak.VerifyNone(t) })
 
        m := dns.NewManager(&testReader{}, func(e suture.Event) { 
t.Log("dns-runners event:", e) }, zaptest.NewLogger(t))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/internal/pkg/encryption/keys/kms.go 
new/talosctl-1.10.2/internal/pkg/encryption/keys/kms.go
--- old/talosctl-1.10.1/internal/pkg/encryption/keys/kms.go     2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/internal/pkg/encryption/keys/kms.go     2025-05-16 
16:04:24.000000000 +0200
@@ -23,6 +23,7 @@
 
        "github.com/siderolabs/talos/internal/pkg/encryption/helpers"
        "github.com/siderolabs/talos/internal/pkg/endpoint"
+       "github.com/siderolabs/talos/pkg/grpc/dialer"
        "github.com/siderolabs/talos/pkg/httpdefaults"
 )
 
@@ -144,5 +145,6 @@
                endpoint.Host,
                grpc.WithTransportCredentials(transportCredentials),
                grpc.WithSharedWriteBuffer(true),
+               grpc.WithContextDialer(dialer.DynamicProxyDialer),
        )
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/internal/pkg/selinux/selinux.go 
new/talosctl-1.10.2/internal/pkg/selinux/selinux.go
--- old/talosctl-1.10.1/internal/pkg/selinux/selinux.go 2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/internal/pkg/selinux/selinux.go 2025-05-16 
16:04:24.000000000 +0200
@@ -34,7 +34,13 @@
 
        val := procfs.ProcCmdline().Get(constants.KernelParamSELinux).First()
 
-       return val != nil && *val == "1"
+       var selinuxFSPresent bool
+
+       if _, err := os.Stat("/sys/fs/selinux"); err == nil {
+               selinuxFSPresent = true
+       }
+
+       return val != nil && *val == "1" && selinuxFSPresent
 })
 
 // IsEnforcing checks if SELinux is enabled and the mode should be enforcing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talosctl-1.10.1/pkg/grpc/middleware/auth/basic/basic.go 
new/talosctl-1.10.2/pkg/grpc/middleware/auth/basic/basic.go
--- old/talosctl-1.10.1/pkg/grpc/middleware/auth/basic/basic.go 2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/grpc/middleware/auth/basic/basic.go 2025-05-16 
16:04:24.000000000 +0200
@@ -13,6 +13,8 @@
        "github.com/siderolabs/gen/xslices"
        "google.golang.org/grpc"
        "google.golang.org/grpc/credentials"
+
+       "github.com/siderolabs/talos/pkg/grpc/dialer"
 )
 
 // Credentials describes an authorization method.
@@ -42,6 +44,7 @@
                grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)),
                grpc.WithPerRPCCredentials(creds),
                grpc.WithSharedWriteBuffer(true),
+               grpc.WithContextDialer(dialer.DynamicProxyDialer),
        }
 
        conn, err = grpc.NewClient(address, grpcOpts...)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/pkg/grpc/proxy/backend/local.go 
new/talosctl-1.10.2/pkg/grpc/proxy/backend/local.go
--- old/talosctl-1.10.1/pkg/grpc/proxy/backend/local.go 2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/grpc/proxy/backend/local.go 2025-05-16 
16:04:24.000000000 +0200
@@ -65,6 +65,7 @@
                        grpc.ForceCodecV2(proxy.Codec()),
                ),
                grpc.WithSharedWriteBuffer(true),
+               grpc.WithNoProxy(),
        )
 
        return outCtx, l.conn, err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/pkg/machinery/constants/constants.go 
new/talosctl-1.10.2/pkg/machinery/constants/constants.go
--- old/talosctl-1.10.1/pkg/machinery/constants/constants.go    2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/machinery/constants/constants.go    2025-05-16 
16:04:24.000000000 +0200
@@ -14,7 +14,7 @@
 
 const (
        // DefaultKernelVersion is the default Linux kernel version.
-       DefaultKernelVersion = "6.12.25-talos"
+       DefaultKernelVersion = "6.12.27-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.2"
+       GoVersion = "go1.24.3"
 
        // 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.1/pkg/machinery/gendata/data/pkgs 
new/talosctl-1.10.2/pkg/machinery/gendata/data/pkgs
--- old/talosctl-1.10.1/pkg/machinery/gendata/data/pkgs 2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/machinery/gendata/data/pkgs 2025-05-16 
16:04:24.000000000 +0200
@@ -1 +1 @@
-v1.10.0-8-g13e9f09
\ No newline at end of file
+v1.10.0-12-gb425b44
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/pkg/machinery/gendata/data/tag 
new/talosctl-1.10.2/pkg/machinery/gendata/data/tag
--- old/talosctl-1.10.1/pkg/machinery/gendata/data/tag  2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/machinery/gendata/data/tag  2025-05-16 
16:04:24.000000000 +0200
@@ -1 +1 @@
-v1.10.1
\ No newline at end of file
+v1.10.2
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/pkg/machinery/gendata/data/tools 
new/talosctl-1.10.2/pkg/machinery/gendata/data/tools
--- old/talosctl-1.10.1/pkg/machinery/gendata/data/tools        2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/machinery/gendata/data/tools        2025-05-16 
16:04:24.000000000 +0200
@@ -1 +1 @@
-v1.10.0-1-g67d3f5a
\ No newline at end of file
+v1.10.0-2-gfa51331
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talosctl-1.10.1/pkg/machinery/version/os-release 
new/talosctl-1.10.2/pkg/machinery/version/os-release
--- old/talosctl-1.10.1/pkg/machinery/version/os-release        2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/pkg/machinery/version/os-release        2025-05-16 
16:04:24.000000000 +0200
@@ -1,7 +1,7 @@
 NAME="Talos"
 ID=talos
-VERSION_ID=v1.10.1
-PRETTY_NAME="Talos (v1.10.1)"
+VERSION_ID=v1.10.2
+PRETTY_NAME="Talos (v1.10.2)"
 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.1/website/content/v1.10/reference/cli.md 
new/talosctl-1.10.2/website/content/v1.10/reference/cli.md
--- old/talosctl-1.10.1/website/content/v1.10/reference/cli.md  2025-05-07 
12:10:36.000000000 +0200
+++ new/talosctl-1.10.2/website/content/v1.10/reference/cli.md  2025-05-16 
16:04:24.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.1/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.2/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.1")
+  -i, --image string         the container image to use for performing the 
install (default "ghcr.io/siderolabs/installer:v1.10.2")
       --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.j42PYv/_old  2025-05-20 09:38:06.341391717 +0200
+++ /var/tmp/diff_new_pack.j42PYv/_new  2025-05-20 09:38:06.345391891 +0200
@@ -1,5 +1,5 @@
 name: talosctl
-version: 1.10.1
-mtime: 1746612636
-commit: 52269e8122cba4e9a2f1d4dcff0e1e32498c5b23
+version: 1.10.2
+mtime: 1747404264
+commit: 1cf5914b6e9c7ff9ffd1576602e6beafcffc147b
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/talosctl/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.talosctl.new.30101/vendor.tar.gz differ: char 13, 
line 1

Reply via email to