Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package clusterctl for openSUSE:Factory 
checked in at 2026-07-17 01:41:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clusterctl (Old)
 and      /work/SRC/openSUSE:Factory/.clusterctl.new.24530 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clusterctl"

Fri Jul 17 01:41:12 2026 rev:34 rq:1366056 version:1.13.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/clusterctl/clusterctl.changes    2026-06-25 
10:57:49.430654319 +0200
+++ /work/SRC/openSUSE:Factory/.clusterctl.new.24530/clusterctl.changes 
2026-07-17 01:43:00.984323862 +0200
@@ -1,0 +2,22 @@
+Thu Jul 16 05:23:04 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.13.4:
+  * Bug Fixes
+    - clusterctl: Raise management cluster client QPS and Burst
+      (#13901)
+  * Others
+    - clusterctl: Bump cert-manager to v1.20.3 (#13851)
+    - Dependency: Bump Go version to v1.25.12 (#13906)
+    - Dependency: Bump golang.org/x/crypto version to v0.53.0
+      (#13864)
+  * Dependencies changed
+    - golang.org/x/crypto: v0.51.0 → v0.53.0
+    - golang.org/x/mod: v0.35.0 → v0.36.0
+    - golang.org/x/sync: v0.20.0 → v0.21.0
+    - golang.org/x/sys: v0.45.0 → v0.46.0
+    - golang.org/x/telemetry: be6f6cb → 42602be
+    - golang.org/x/term: v0.43.0 → v0.44.0
+    - golang.org/x/text: v0.37.0 → v0.38.0
+    - golang.org/x/tools: v0.44.0 → v0.45.0
+
+-------------------------------------------------------------------

Old:
----
  clusterctl-1.13.3.obscpio

New:
----
  clusterctl-1.13.4.obscpio

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

Other differences:
------------------
++++++ clusterctl.spec ++++++
--- /var/tmp/diff_new_pack.GqTGfm/_old  2026-07-17 01:43:01.820352087 +0200
+++ /var/tmp/diff_new_pack.GqTGfm/_new  2026-07-17 01:43:01.820352087 +0200
@@ -20,7 +20,7 @@
 %define version_git_minor %(echo %{version} | awk 'BEGIN { FS=\".\"}; {print 
$2}')
 
 Name:           clusterctl
-Version:        1.13.3
+Version:        1.13.4
 Release:        0
 Summary:        CLI tool to handle the lifecycle of a Cluster API management 
cluster
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.GqTGfm/_old  2026-07-17 01:43:01.876353978 +0200
+++ /var/tmp/diff_new_pack.GqTGfm/_new  2026-07-17 01:43:01.880354113 +0200
@@ -1,9 +1,9 @@
 <services>
   <service name="obs_scm" mode="manual">
-    <param name="url">https://github.com/kubernetes-sigs/cluster-api</param>
+    <param 
name="url">https://github.com/kubernetes-sigs/cluster-api.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.13.3</param>
+    <param name="revision">refs/tags/v1.13.4</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.GqTGfm/_old  2026-07-17 01:43:01.904354923 +0200
+++ /var/tmp/diff_new_pack.GqTGfm/_new  2026-07-17 01:43:01.908355058 +0200
@@ -1,6 +1,8 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/kubernetes-sigs/cluster-api</param>
-              <param 
name="changesrevision">cf0f6c00fbf7d5c5dbf37bd09554c6389de93861</param></service></servicedata>
+              <param 
name="changesrevision">cf0f6c00fbf7d5c5dbf37bd09554c6389de93861</param></service><service
 name="tar_scm">
+                <param 
name="url">https://github.com/kubernetes-sigs/cluster-api.git</param>
+              <param 
name="changesrevision">27f464418c195d96ae2ef4b96f3b6a047ea89310</param></service></servicedata>
 (No newline at EOF)
 

++++++ clusterctl-1.13.3.obscpio -> clusterctl-1.13.4.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/Makefile 
new/clusterctl-1.13.4/Makefile
--- old/clusterctl-1.13.3/Makefile      2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/Makefile      2026-07-14 13:31:17.000000000 +0200
@@ -23,7 +23,7 @@
 #
 # Go.
 #
-GO_VERSION ?= 1.25.11
+GO_VERSION ?= 1.25.12
 GO_DIRECTIVE_VERSION ?= 1.25.0
 GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/Tiltfile 
new/clusterctl-1.13.4/Tiltfile
--- old/clusterctl-1.13.3/Tiltfile      2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/Tiltfile      2026-07-14 13:31:17.000000000 +0200
@@ -174,7 +174,7 @@
 
 tilt_helper_dockerfile_header = """
 # Tilt image
-FROM golang:1.25.11 as tilt-helper
+FROM golang:1.25.12 as tilt-helper
 # Install delve. Note this should be kept in step with the Go release minor 
version.
 RUN go install github.com/go-delve/delve/cmd/[email protected]
 # Support live reloading with Tilt
@@ -185,7 +185,7 @@
 """
 
 tilt_dockerfile_header = """
-FROM golang:1.25.11 as tilt
+FROM golang:1.25.12 as tilt
 WORKDIR /
 COPY --from=tilt-helper /process.txt .
 COPY --from=tilt-helper /start.sh .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/cmd/clusterctl/client/cluster/proxy.go 
new/clusterctl-1.13.4/cmd/clusterctl/client/cluster/proxy.go
--- old/clusterctl-1.13.3/cmd/clusterctl/client/cluster/proxy.go        
2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/cmd/clusterctl/client/cluster/proxy.go        
2026-07-14 13:31:17.000000000 +0200
@@ -152,9 +152,11 @@
        }
        restConfig.UserAgent = fmt.Sprintf("clusterctl/%s (%s)", 
version.Get().GitVersion, version.Get().Platform)
 
-       // Set QPS and Burst to a threshold that ensures the controller runtime 
client/client go doesn't generate throttling log messages
-       restConfig.QPS = 20
-       restConfig.Burst = 100
+       // Set QPS and Burst high enough that clusterctl doesn't get throttled 
when it enumerates large
+       // resource sets such as many CRDs, while still relying on API Priority 
and Fairness for
+       // server-side protection.
+       restConfig.QPS = 500
+       restConfig.Burst = 1000
 
        restConfig.WarningHandler = k.warningHandler
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/cmd/clusterctl/client/cluster/proxy_test.go 
new/clusterctl-1.13.4/cmd/clusterctl/client/cluster/proxy_test.go
--- old/clusterctl-1.13.3/cmd/clusterctl/client/cluster/proxy_test.go   
2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/cmd/clusterctl/client/cluster/proxy_test.go   
2026-07-14 13:31:17.000000000 +0200
@@ -80,8 +80,8 @@
                                // context
                                g.Expect(conf.Host).To(Equal(tt.expectedHost))
                                
g.Expect(conf.UserAgent).To(Equal(fmt.Sprintf("clusterctl/%s (%s)", 
version.Get().GitVersion, version.Get().Platform)))
-                               g.Expect(conf.QPS).To(BeEquivalentTo(20))
-                               g.Expect(conf.Burst).To(BeEquivalentTo(100))
+                               g.Expect(conf.QPS).To(BeEquivalentTo(500))
+                               g.Expect(conf.Burst).To(BeEquivalentTo(1000))
                                g.Expect(conf.Timeout.String()).To(Equal("30s"))
                        })
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/cmd/clusterctl/client/config/cert_manager_client.go 
new/clusterctl-1.13.4/cmd/clusterctl/client/config/cert_manager_client.go
--- old/clusterctl-1.13.3/cmd/clusterctl/client/config/cert_manager_client.go   
2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/cmd/clusterctl/client/config/cert_manager_client.go   
2026-07-14 13:31:17.000000000 +0200
@@ -29,7 +29,7 @@
        CertManagerConfigKey = "cert-manager"
 
        // CertManagerDefaultVersion defines the default cert-manager version 
to be used by clusterctl.
-       CertManagerDefaultVersion = "v1.20.2"
+       CertManagerDefaultVersion = "v1.20.3"
 
        // CertManagerDefaultURL defines the default cert-manager repository 
url to be used by clusterctl.
        // NOTE: At runtime CertManagerDefaultVersion may be replaced with the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/docs/book/src/clusterctl/commands/init.md 
new/clusterctl-1.13.4/docs/book/src/clusterctl/commands/init.md
--- old/clusterctl-1.13.3/docs/book/src/clusterctl/commands/init.md     
2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/docs/book/src/clusterctl/commands/init.md     
2026-07-14 13:31:17.000000000 +0200
@@ -194,7 +194,7 @@
 Cluster API providers require a cert-manager version supporting the 
`cert-manager.io/v1` API to be installed in the cluster.
 
 While doing init, clusterctl checks if there is a version of cert-manager 
already installed. If not, clusterctl will
-install a default version (currently cert-manager v1.20.2). See [clusterctl 
configuration](../configuration.md) for
+install a default version (currently cert-manager v1.20.3). See [clusterctl 
configuration](../configuration.md) for
 available options to customize this operation.
 
 <aside class="note warning">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/docs/book/src/developer/getting-started.md 
new/clusterctl-1.13.4/docs/book/src/developer/getting-started.md
--- old/clusterctl-1.13.3/docs/book/src/developer/getting-started.md    
2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/docs/book/src/developer/getting-started.md    
2026-07-14 13:31:17.000000000 +0200
@@ -83,7 +83,7 @@
 You'll need to deploy [cert-manager] components on your [management 
cluster][mcluster], using `kubectl`
 
 ```bash
-kubectl apply -f 
https://github.com/cert-manager/cert-manager/releases/download/v1.20.2/cert-manager.yaml
+kubectl apply -f 
https://github.com/cert-manager/cert-manager/releases/download/v1.20.3/cert-manager.yaml
 ```
 
 Ensure the cert-manager webhook service is ready before creating the Cluster 
API components.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/go.mod new/clusterctl-1.13.4/go.mod
--- old/clusterctl-1.13.3/go.mod        2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/go.mod        2026-07-14 13:31:17.000000000 +0200
@@ -37,7 +37,7 @@
        go.uber.org/zap v1.27.1
        golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
        golang.org/x/oauth2 v0.36.0
-       golang.org/x/text v0.37.0
+       golang.org/x/text v0.38.0
        gomodules.xyz/jsonpatch/v2 v2.5.0
        google.golang.org/grpc v1.80.0
        k8s.io/api v0.35.4
@@ -140,14 +140,14 @@
        go.yaml.in/yaml/v2 v2.4.3 // indirect
        go.yaml.in/yaml/v3 v3.0.4 // indirect
        go4.org v0.0.0-20201209231011-d4a079459e60 // indirect
-       golang.org/x/crypto v0.51.0 // indirect
-       golang.org/x/mod v0.35.0 // indirect
+       golang.org/x/crypto v0.53.0 // indirect
+       golang.org/x/mod v0.36.0 // indirect
        golang.org/x/net v0.55.0 // indirect
-       golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.45.0 // indirect
-       golang.org/x/term v0.43.0 // indirect
+       golang.org/x/sync v0.21.0 // indirect
+       golang.org/x/sys v0.46.0 // indirect
+       golang.org/x/term v0.44.0 // indirect
        golang.org/x/time v0.9.0 // indirect
-       golang.org/x/tools v0.44.0 // indirect
+       golang.org/x/tools v0.45.0 // indirect
        google.golang.org/genproto/googleapis/api 
v0.0.0-20260401024825-9d38bb4040a9 // indirect
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260401024825-9d38bb4040a9 // indirect
        google.golang.org/protobuf v1.36.11 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/go.sum new/clusterctl-1.13.4/go.sum
--- old/clusterctl-1.13.3/go.sum        2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/go.sum        2026-07-14 13:31:17.000000000 +0200
@@ -398,8 +398,8 @@
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
-golang.org/x/crypto v0.51.0/go.mod 
h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
+golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
+golang.org/x/crypto v0.53.0/go.mod 
h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -428,8 +428,8 @@
 golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod 
h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
-golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
+golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
+golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
 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=
@@ -463,8 +463,8 @@
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
-golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
+golang.org/x/sync v0.21.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
 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=
@@ -480,18 +480,18 @@
 golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
-golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
-golang.org/x/term v0.43.0/go.mod 
h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
+golang.org/x/term v0.44.0/go.mod 
h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/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=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
-golang.org/x/text v0.37.0/go.mod 
h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
+golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
+golang.org/x/text v0.38.0/go.mod 
h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
@@ -523,8 +523,8 @@
 golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod 
h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
-golang.org/x/tools v0.44.0/go.mod 
h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
+golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
+golang.org/x/tools v0.45.0/go.mod 
h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
 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=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/hack/tools/go.mod 
new/clusterctl-1.13.4/hack/tools/go.mod
--- old/clusterctl-1.13.3/hack/tools/go.mod     2026-06-17 18:14:43.000000000 
+0200
+++ new/clusterctl-1.13.4/hack/tools/go.mod     2026-07-14 13:31:17.000000000 
+0200
@@ -149,15 +149,15 @@
        go.opentelemetry.io/otel v1.43.0 // indirect
        go.opentelemetry.io/otel/metric v1.43.0 // indirect
        go.opentelemetry.io/otel/trace v1.43.0 // indirect
-       golang.org/x/crypto v0.51.0 // indirect
-       golang.org/x/mod v0.35.0 // indirect
+       golang.org/x/crypto v0.53.0 // indirect
+       golang.org/x/mod v0.36.0 // indirect
        golang.org/x/net v0.55.0 // indirect
-       golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.45.0 // indirect
-       golang.org/x/term v0.43.0 // indirect
-       golang.org/x/text v0.37.0 // indirect
+       golang.org/x/sync v0.21.0 // indirect
+       golang.org/x/sys v0.46.0 // indirect
+       golang.org/x/term v0.44.0 // indirect
+       golang.org/x/text v0.38.0 // indirect
        golang.org/x/time v0.15.0 // indirect
-       golang.org/x/tools v0.44.0 // indirect
+       golang.org/x/tools v0.45.0 // indirect
        gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
        google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // 
indirect
        google.golang.org/genproto/googleapis/api 
v0.0.0-20260401024825-9d38bb4040a9 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/hack/tools/go.sum 
new/clusterctl-1.13.4/hack/tools/go.sum
--- old/clusterctl-1.13.3/hack/tools/go.sum     2026-06-17 18:14:43.000000000 
+0200
+++ new/clusterctl-1.13.4/hack/tools/go.sum     2026-07-14 13:31:17.000000000 
+0200
@@ -338,12 +338,12 @@
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod 
h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
 golang.org/x/crypto v0.7.0/go.mod 
h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
-golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
-golang.org/x/crypto v0.51.0/go.mod 
h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
+golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
+golang.org/x/crypto v0.53.0/go.mod 
h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
-golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
+golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
+golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -358,8 +358,8 @@
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
-golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
+golang.org/x/sync v0.21.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -373,15 +373,15 @@
 golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
-golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
 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=
 golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
-golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
-golang.org/x/term v0.43.0/go.mod 
h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
+golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
+golang.org/x/term v0.44.0/go.mod 
h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -389,16 +389,16 @@
 golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
-golang.org/x/text v0.37.0/go.mod 
h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
+golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
+golang.org/x/text v0.38.0/go.mod 
h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
 golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
 golang.org/x/time v0.15.0/go.mod 
h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
-golang.org/x/tools v0.44.0/go.mod 
h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
+golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
+golang.org/x/tools v0.45.0/go.mod 
h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
 golang.org/x/tools/go/expect v0.1.1-deprecated 
h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM=
 golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod 
h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=
 golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated 
h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/internal/controllers/machineset/machineset_controller.go 
new/clusterctl-1.13.4/internal/controllers/machineset/machineset_controller.go
--- 
old/clusterctl-1.13.3/internal/controllers/machineset/machineset_controller.go  
    2026-06-17 18:14:43.000000000 +0200
+++ 
new/clusterctl-1.13.4/internal/controllers/machineset/machineset_controller.go  
    2026-07-14 13:31:17.000000000 +0200
@@ -1006,6 +1006,7 @@
 
        errs := []error{}
        machinesMoved := []*clusterv1.Machine{}
+       machinesDeleted := []*clusterv1.Machine{}
        for _, machine := range machinesToMoveByPriority {
                if machinesToMove <= 0 {
                        break
@@ -1013,6 +1014,29 @@
 
                log := log.WithValues("Machine", klog.KObj(machine))
 
+               // Note: Using the same logic to determine if a Machine should 
be remediated as in reconcileUnhealthyMachines.
+               //       But remediation will happen here by deleting the 
Machine and another Machine will be eventually
+               //       created for the new MachineSet (remediation means 
usually re-creating a Machine on the same MachineSet).
+               if collections.IsUnhealthyAndOwnerRemediated(machine) && 
machine.DeletionTimestamp.IsZero() {
+                       machinesToMove--
+
+                       if err := r.Client.Delete(ctx, machine); err != nil {
+                               errs = append(errs, errors.Wrapf(err, "failed 
to delete Machine %s (tried to delete the Machine instead of moving it to 
MachineSet %s because Machine is marked for remediation)", klog.KObj(machine), 
klog.KObj(targetMS)))
+                               continue
+                       }
+                       machinesDeleted = append(machinesDeleted, machine)
+
+                       log.Info(fmt.Sprintf("Machine %s deleting (deleting the 
Machine instead of moving it to MachineSet %s because Machine is marked for 
remediation)", klog.KObj(machine), targetMS.Name))
+                       r.recorder.Eventf(ms, corev1.EventTypeNormal, 
"SuccessfulDelete", "Deleted Machine %q", machine.Name)
+                       continue
+               }
+
+               // If there are machines already deleting, wait for them to go 
away before further scaling down with move.
+               if !machine.DeletionTimestamp.IsZero() {
+                       machinesToMove--
+                       continue
+               }
+
                // Make sure we are not moving machines still updating in place 
from a previous move (this includes also machines still pending 
AcknowledgeMove).
                if inplace.IsUpdateInProgress(machine) {
                        continue
@@ -1024,17 +1048,10 @@
                }
 
                // Note. Machines with the DeleteMachineAnnotation are going to 
be moved and the new MS
-               //       will take care of fulfilling this intent as soon as it 
scales down.
-               // Note. Also Machines marked as unhealthy by MHC are going to 
be moved, because otherwise
-               //       remediation will not complete as the Machine is owned 
by an old MS.
+               //       will take care of fulfilling this 
intent/prioritization as soon as it scales down.
 
                machinesToMove--
 
-               // If there are machines already deleting, wait for them to go 
away before further scaling down with move.
-               if !machine.DeletionTimestamp.IsZero() {
-                       continue
-               }
-
                log.Info(fmt.Sprintf("Triggering in-place update for Machine %s 
(by moving to MachineSet %s)", machine.Name, targetMS.Name))
 
                // Perform the first part of a move operation, the part under 
the responsibility of the oldMS.
@@ -1084,6 +1101,9 @@
        if err := clientutil.WaitForCacheToBeUpToDate(ctx, r.Client, "moving 
Machines", machinesMoved...); err != nil {
                errs = append(errs, err)
        }
+       if err := clientutil.WaitForObjectsToBeDeletedFromTheCache(ctx, 
r.Client, "Machine deletion (fallback for Machines marked for remediation)", 
machinesDeleted...); err != nil {
+               errs = append(errs, err)
+       }
        if len(errs) > 0 {
                return ctrl.Result{}, kerrors.NewAggregate(errs)
        }
@@ -1556,6 +1576,9 @@
        if isDeploymentChild(ms) {
                if owner.Annotations[clusterv1.RevisionAnnotation] != 
ms.Annotations[clusterv1.RevisionAnnotation] {
                        // MachineSet is part of a MachineDeployment but isn't 
the current revision, no remediations allowed.
+                       // Note: While remediation won't delete these Machines 
deleteMachines or startMoveMachines will delete
+                       // them as part of the rollout. After that deletion the 
MD controller will scale up the new MS and then
+                       // a new Machine will be created accordingly.
                        if err := patchMachineConditions(ctx, r.Client, 
machinesToRemediate, metav1.Condition{
                                Type:    
clusterv1.MachineOwnerRemediatedCondition,
                                Status:  metav1.ConditionFalse,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/internal/controllers/machineset/machineset_controller_test.go
 
new/clusterctl-1.13.4/internal/controllers/machineset/machineset_controller_test.go
--- 
old/clusterctl-1.13.3/internal/controllers/machineset/machineset_controller_test.go
 2026-06-17 18:14:43.000000000 +0200
+++ 
new/clusterctl-1.13.4/internal/controllers/machineset/machineset_controller_test.go
 2026-07-14 13:31:17.000000000 +0200
@@ -2957,18 +2957,21 @@
                sort.Strings(msMachines)
                return msMachines
        }
+       healthCheckNotSucceeded := metav1.Condition{Type: 
clusterv1.MachineHealthCheckSucceededCondition, Status: metav1.ConditionFalse, 
Reason: clusterv1.MachineHealthCheckNodeStartupTimeoutReason, Message: "Health 
check failed:\n      * Node failed to report startup in 1h0m0s"}
+       ownerRemediated := metav1.Condition{Type: 
clusterv1.MachineOwnerRemediatedCondition, Status: metav1.ConditionFalse, 
Reason: clusterv1.MachineSetMachineCannotBeRemediatedReason, Message: "Machine 
won't be remediated because it is pending removal due to rollout"}
 
        tests := []struct {
-               name                 string
-               ms                   *clusterv1.MachineSet
-               targetMS             *clusterv1.MachineSet
-               machines             []*clusterv1.Machine
-               machinesToMove       int
-               interceptorFuncs     interceptor.Funcs
-               wantMachinesNotMoved []string
-               wantMovedMachines    []string
-               wantErr              bool
-               wantErrorMessage     string
+               name                              string
+               ms                                *clusterv1.MachineSet
+               targetMS                          *clusterv1.MachineSet
+               machines                          []*clusterv1.Machine
+               machinesToMove                    int
+               interceptorFuncs                  interceptor.Funcs
+               wantMachinesNotMoved              []string
+               wantMovedMachines                 []string
+               wantMachinesWithDeletionTimestamp []string
+               wantErr                           bool
+               wantErrorMessage                  string
        }{
                {
                        name: "should fail when taget ms cannot be found",
@@ -3054,6 +3057,28 @@
                        wantErr:              false,
                },
                {
+                       name: "should delete unhealthy Machines with 
OwnerRemediated set",
+                       ms: newMachineSet("ms1", "cluster1", 2,
+                               
withDeletionOrder(clusterv1.NewestMachineSetDeletionOrder),
+                               
withMachineSetLabels(map[string]string{clusterv1.MachineDeploymentUniqueLabel: 
"123"}),
+                               
withMachineSetAnnotations(map[string]string{clusterv1.MachineSetMoveMachinesToMachineSetAnnotation:
 "ms2"}),
+                       ),
+                       targetMS: newMachineSet("ms2", "cluster1", 2,
+                               
withMachineSetLabels(map[string]string{clusterv1.MachineDeploymentUniqueLabel: 
"456"}),
+                               
withMachineSetAnnotations(map[string]string{clusterv1.MachineSetReceiveMachinesFromMachineSetsAnnotation:
 "ms1,ms3"}),
+                       ),
+                       machines: []*clusterv1.Machine{
+                               fakeMachine("m1", withOwnerMachineSet("ms1"), 
withMachineLabels(map[string]string{clusterv1.MachineDeploymentUniqueLabel: 
"123"}), withMachineFinalizer(), 
withCreationTimestamp(time.Now().Add(-4*time.Minute)), 
withCondition(healthCheckNotSucceeded), withCondition(ownerRemediated)),
+                               fakeMachine("m2", withOwnerMachineSet("ms1"), 
withMachineLabels(map[string]string{clusterv1.MachineDeploymentUniqueLabel: 
"123"}), withMachineFinalizer(), 
withCreationTimestamp(time.Now().Add(-3*time.Minute))),
+                       },
+                       machinesToMove:                    2,
+                       interceptorFuncs:                  interceptor.Funcs{},
+                       wantMachinesNotMoved:              []string{"m1", "m2"},
+                       wantMovedMachines:                 []string{},
+                       wantMachinesWithDeletionTimestamp: []string{"m1"},
+                       wantErr:                           false,
+               },
+               {
                        name: "should not move machines not yet provisioned",
                        ms: newMachineSet("ms1", "cluster1", 2,
                                
withDeletionOrder(clusterv1.NewestMachineSetDeletionOrder),
@@ -3091,11 +3116,12 @@
                                fakeMachine("m3", withOwnerMachineSet("ms1"), 
withMachineLabels(map[string]string{clusterv1.MachineDeploymentUniqueLabel: 
"123"}), withMachineFinalizer(), 
withCreationTimestamp(time.Now().Add(-2*time.Minute)), withHealthyNode()),
                                fakeMachine("m4", withOwnerMachineSet("ms1"), 
withMachineLabels(map[string]string{clusterv1.MachineDeploymentUniqueLabel: 
"123"}), withMachineFinalizer(), 
withCreationTimestamp(time.Now().Add(-1*time.Minute)), withHealthyNode(), 
withDeletionTimestamp()), // newest
                        },
-                       machinesToMove:       2,
-                       interceptorFuncs:     interceptor.Funcs{},
-                       wantMachinesNotMoved: []string{"m1", "m2", "m4"},
-                       wantMovedMachines:    []string{"m3"}, // newest 
machines moved first with NewestMachineSetDeletionOrder, but m4 is deleting so 
don't touch it
-                       wantErr:              false,
+                       machinesToMove:                    2,
+                       interceptorFuncs:                  interceptor.Funcs{},
+                       wantMachinesNotMoved:              []string{"m1", "m2", 
"m4"},
+                       wantMovedMachines:                 []string{"m3"}, // 
newest machines moved first with NewestMachineSetDeletionOrder, but m4 is 
deleting so don't touch it
+                       wantMachinesWithDeletionTimestamp: []string{"m4"},
+                       wantErr:                           false,
                },
                {
                        name: "should not move more machines that are already 
updating in place, pick another machine instead",
@@ -3196,6 +3222,14 @@
                                        }
                                }
                        }
+
+                       var machinesWithDeletionTimestamp []string
+                       for _, m := range machines.Items {
+                               if !m.DeletionTimestamp.IsZero() {
+                                       machinesWithDeletionTimestamp = 
append(machinesWithDeletionTimestamp, m.Name)
+                               }
+                       }
+                       
g.Expect(machinesWithDeletionTimestamp).To(ConsistOf(tt.wantMachinesWithDeletionTimestamp))
                })
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/netlify.toml 
new/clusterctl-1.13.4/netlify.toml
--- old/clusterctl-1.13.3/netlify.toml  2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/netlify.toml  2026-07-14 13:31:17.000000000 +0200
@@ -4,7 +4,7 @@
     publish = "docs/book/book"
 
 [build.environment]
-    GO_VERSION = "1.25.7"
+    GO_VERSION = "1.25.12"
 
 # Standard Netlify redirects
 [[redirects]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/scripts/ci-e2e-lib.sh 
new/clusterctl-1.13.4/scripts/ci-e2e-lib.sh
--- old/clusterctl-1.13.3/scripts/ci-e2e-lib.sh 2026-06-17 18:14:43.000000000 
+0200
+++ new/clusterctl-1.13.4/scripts/ci-e2e-lib.sh 2026-07-14 13:31:17.000000000 
+0200
@@ -258,9 +258,9 @@
 # the actual test run less sensible to the network speed.
 kind:prepullAdditionalImages () {
   # Pulling cert manager images so we can pre-load in kind nodes
-  kind::prepullImage "quay.io/jetstack/cert-manager-cainjector:v1.20.2"
-  kind::prepullImage "quay.io/jetstack/cert-manager-webhook:v1.20.2"
-  kind::prepullImage "quay.io/jetstack/cert-manager-controller:v1.20.2"
+  kind::prepullImage "quay.io/jetstack/cert-manager-cainjector:v1.20.3"
+  kind::prepullImage "quay.io/jetstack/cert-manager-webhook:v1.20.3"
+  kind::prepullImage "quay.io/jetstack/cert-manager-controller:v1.20.3"
 
   # Pull all images defined in DOCKER_PRELOAD_IMAGES.
   for IMAGE in $(grep DOCKER_PRELOAD_IMAGES: < "$E2E_CONF_FILE" | sed -E 
's/.*\[(.*)\].*/\1/' | tr ',' ' '); do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/test/e2e/clusterctl_upgrade_test.go 
new/clusterctl-1.13.4/test/e2e/clusterctl_upgrade_test.go
--- old/clusterctl-1.13.3/test/e2e/clusterctl_upgrade_test.go   2026-06-17 
18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/test/e2e/clusterctl_upgrade_test.go   2026-07-14 
13:31:17.000000000 +0200
@@ -63,8 +63,11 @@
                        InitWithProvidersContract:       "v1beta1",
                        // Note: Both InitWithKubernetesVersion and 
WorkloadKubernetesVersion should be the highest mgmt cluster version supported 
by the source Cluster API version.
                        // When picking this version, please check also the 
list of versions known by the source Cluster API version (rif. 
test/infrastructure/kind/mapper.go).
-                       InitWithKubernetesVersion:   "v1.33.0",
-                       WorkloadKubernetesVersion:   "v1.33.0",
+                       // Note: Using v1.34.0 instead of v1.33.0 because we 
are getting the following error with containerd with the
+                       //       v1.33.0 image and then afterward kubelet 
cannot communicate with containerd anymore:
+                       //       > Jun 24 23:17:18.106114 
clusterctl-upgrade-workload-2mklrf-lg6pq-tskhm systemd[1]: containerd.service: 
Main process exited, code=dumped, status=11/SEGV
+                       InitWithKubernetesVersion:   "v1.34.0",
+                       WorkloadKubernetesVersion:   "v1.34.0",
                        MgmtFlavor:                  "topology",
                        WorkloadFlavor:              "topology",
                        UseKindForManagementCluster: true,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/test/e2e/config/docker.yaml 
new/clusterctl-1.13.4/test/e2e/config/docker.yaml
--- old/clusterctl-1.13.3/test/e2e/config/docker.yaml   2026-06-17 
18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/test/e2e/config/docker.yaml   2026-07-14 
13:31:17.000000000 +0200
@@ -21,11 +21,11 @@
   loadBehavior: tryLoad
 - name: gcr.io/k8s-staging-cluster-api/test-extension-{ARCH}:dev
   loadBehavior: tryLoad
-- name: quay.io/jetstack/cert-manager-cainjector:v1.20.2
+- name: quay.io/jetstack/cert-manager-cainjector:v1.20.3
   loadBehavior: tryLoad
-- name: quay.io/jetstack/cert-manager-webhook:v1.20.2
+- name: quay.io/jetstack/cert-manager-webhook:v1.20.3
   loadBehavior: tryLoad
-- name: quay.io/jetstack/cert-manager-controller:v1.20.2
+- name: quay.io/jetstack/cert-manager-controller:v1.20.3
   loadBehavior: tryLoad
 
 providers:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.13.3/test/framework/controlplane_helpers.go 
new/clusterctl-1.13.4/test/framework/controlplane_helpers.go
--- old/clusterctl-1.13.3/test/framework/controlplane_helpers.go        
2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/test/framework/controlplane_helpers.go        
2026-07-14 13:31:17.000000000 +0200
@@ -188,7 +188,7 @@
                }
 
                return true, nil
-       }, intervals...).Should(BeTrue(), PrettyPrint(controlplane)+"\n")
+       }, intervals...).Should(BeTrue(), func() string { return 
PrettyPrint(controlplane) + "\n" })
 }
 
 // AssertControlPlaneFailureDomainsInput is the input for 
AssertControlPlaneFailureDomains.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/test/go.mod 
new/clusterctl-1.13.4/test/go.mod
--- old/clusterctl-1.13.3/test/go.mod   2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/test/go.mod   2026-07-14 13:31:17.000000000 +0200
@@ -144,17 +144,17 @@
        go.uber.org/zap v1.27.1 // indirect
        go.yaml.in/yaml/v2 v2.4.3 // indirect
        go.yaml.in/yaml/v3 v3.0.4 // indirect
-       golang.org/x/crypto v0.51.0 // indirect
+       golang.org/x/crypto v0.53.0 // indirect
        golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
-       golang.org/x/mod v0.35.0 // indirect
+       golang.org/x/mod v0.36.0 // indirect
        golang.org/x/net v0.55.0 // indirect
        golang.org/x/oauth2 v0.36.0 // indirect
-       golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.45.0 // indirect
-       golang.org/x/term v0.43.0 // indirect
-       golang.org/x/text v0.37.0 // indirect
+       golang.org/x/sync v0.21.0 // indirect
+       golang.org/x/sys v0.46.0 // indirect
+       golang.org/x/term v0.44.0 // indirect
+       golang.org/x/text v0.38.0 // indirect
        golang.org/x/time v0.11.0 // indirect
-       golang.org/x/tools v0.44.0 // indirect
+       golang.org/x/tools v0.45.0 // indirect
        google.golang.org/genproto/googleapis/api 
v0.0.0-20260401024825-9d38bb4040a9 // indirect
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260401024825-9d38bb4040a9 // indirect
        google.golang.org/protobuf v1.36.11 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.13.3/test/go.sum 
new/clusterctl-1.13.4/test/go.sum
--- old/clusterctl-1.13.3/test/go.sum   2026-06-17 18:14:43.000000000 +0200
+++ new/clusterctl-1.13.4/test/go.sum   2026-07-14 13:31:17.000000000 +0200
@@ -370,14 +370,14 @@
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
-golang.org/x/crypto v0.51.0/go.mod 
h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
+golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
+golang.org/x/crypto v0.53.0/go.mod 
h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 
h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod 
h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
-golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
+golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
+golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -391,21 +391,21 @@
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
-golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
+golang.org/x/sync v0.21.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
-golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
-golang.org/x/term v0.43.0/go.mod 
h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
+golang.org/x/term v0.44.0/go.mod 
h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
-golang.org/x/text v0.37.0/go.mod 
h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
+golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
+golang.org/x/text v0.38.0/go.mod 
h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
 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=
@@ -413,8 +413,8 @@
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
 golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
-golang.org/x/tools v0.44.0/go.mod 
h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
+golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
+golang.org/x/tools v0.45.0/go.mod 
h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
 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=

++++++ clusterctl.obsinfo ++++++
--- /var/tmp/diff_new_pack.GqTGfm/_old  2026-07-17 01:43:04.696449186 +0200
+++ /var/tmp/diff_new_pack.GqTGfm/_new  2026-07-17 01:43:04.716449862 +0200
@@ -1,5 +1,5 @@
 name: clusterctl
-version: 1.13.3
-mtime: 1781712883
-commit: cf0f6c00fbf7d5c5dbf37bd09554c6389de93861
+version: 1.13.4
+mtime: 1784028677
+commit: 27f464418c195d96ae2ef4b96f3b6a047ea89310
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/clusterctl/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.clusterctl.new.24530/vendor.tar.gz differ: char 
129, line 2

Reply via email to