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-02-18 17:13:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clusterctl (Old)
 and      /work/SRC/openSUSE:Factory/.clusterctl.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clusterctl"

Wed Feb 18 17:13:30 2026 rev:28 rq:1333766 version:1.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/clusterctl/clusterctl.changes    2026-01-21 
14:18:33.025862320 +0100
+++ /work/SRC/openSUSE:Factory/.clusterctl.new.1977/clusterctl.changes  
2026-02-18 17:13:49.106678694 +0100
@@ -1,0 +2,9 @@
+Wed Feb 18 08:12:59 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.12.3:
+  * Others
+    - clusterctl: Update cert-manager to v1.19.3 (#13314)
+    - clusterctl: Update to cert-manager v1.19.2 (#13278)
+    - Dependency: Go bump 1.24.13 (#13324)
+
+-------------------------------------------------------------------

Old:
----
  clusterctl-1.12.2.obscpio

New:
----
  clusterctl-1.12.3.obscpio

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

Other differences:
------------------
++++++ clusterctl.spec ++++++
--- /var/tmp/diff_new_pack.zYOw2Q/_old  2026-02-18 17:13:52.102803373 +0100
+++ /var/tmp/diff_new_pack.zYOw2Q/_new  2026-02-18 17:13:52.106803539 +0100
@@ -20,7 +20,7 @@
 %define version_git_minor %(echo %{version} | awk 'BEGIN { FS=\".\"}; {print 
$2}')
 
 Name:           clusterctl
-Version:        1.12.2
+Version:        1.12.3
 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.zYOw2Q/_old  2026-02-18 17:13:52.158805703 +0100
+++ /var/tmp/diff_new_pack.zYOw2Q/_new  2026-02-18 17:13:52.166806037 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/kubernetes-sigs/cluster-api</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.12.2</param>
+    <param name="revision">v1.12.3</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.zYOw2Q/_old  2026-02-18 17:13:52.206807701 +0100
+++ /var/tmp/diff_new_pack.zYOw2Q/_new  2026-02-18 17:13:52.210807868 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/kubernetes-sigs/cluster-api</param>
-              <param 
name="changesrevision">9ee80d1ff529c48ae0b8e022ec01d70ac496e8e5</param></service></servicedata>
+              <param 
name="changesrevision">1a1852c74072febc3fbf9823c9dd32f4cd6cc747</param></service></servicedata>
 (No newline at EOF)
 

++++++ clusterctl-1.12.2.obscpio -> clusterctl-1.12.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/Makefile 
new/clusterctl-1.12.3/Makefile
--- old/clusterctl-1.12.2/Makefile      2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/Makefile      2026-02-17 11:43:04.000000000 +0100
@@ -23,7 +23,7 @@
 #
 # Go.
 #
-GO_VERSION ?= 1.24.12
+GO_VERSION ?= 1.24.13
 GO_DIRECTIVE_VERSION ?= 1.24.0
 GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/Tiltfile 
new/clusterctl-1.12.3/Tiltfile
--- old/clusterctl-1.12.2/Tiltfile      2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/Tiltfile      2026-02-17 11:43:04.000000000 +0100
@@ -172,7 +172,7 @@
 
 tilt_helper_dockerfile_header = """
 # Tilt image
-FROM golang:1.24.12 as tilt-helper
+FROM golang:1.24.13 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
@@ -183,7 +183,7 @@
 """
 
 tilt_dockerfile_header = """
-FROM golang:1.24.12 as tilt
+FROM golang:1.24.13 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.12.2/cmd/clusterctl/client/config/cert_manager_client.go 
new/clusterctl-1.12.3/cmd/clusterctl/client/config/cert_manager_client.go
--- old/clusterctl-1.12.2/cmd/clusterctl/client/config/cert_manager_client.go   
2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/cmd/clusterctl/client/config/cert_manager_client.go   
2026-02-17 11:43:04.000000000 +0100
@@ -29,7 +29,7 @@
        CertManagerConfigKey = "cert-manager"
 
        // CertManagerDefaultVersion defines the default cert-manager version 
to be used by clusterctl.
-       CertManagerDefaultVersion = "v1.19.1"
+       CertManagerDefaultVersion = "v1.19.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.12.2/docs/book/src/clusterctl/commands/init.md 
new/clusterctl-1.12.3/docs/book/src/clusterctl/commands/init.md
--- old/clusterctl-1.12.2/docs/book/src/clusterctl/commands/init.md     
2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/docs/book/src/clusterctl/commands/init.md     
2026-02-17 11:43:04.000000000 +0100
@@ -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.19.1). See [clusterctl 
configuration](../configuration.md) for
+install a default version (currently cert-manager v1.19.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.12.2/docs/book/src/developer/getting-started.md 
new/clusterctl-1.12.3/docs/book/src/developer/getting-started.md
--- old/clusterctl-1.12.2/docs/book/src/developer/getting-started.md    
2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/docs/book/src/developer/getting-started.md    
2026-02-17 11:43:04.000000000 +0100
@@ -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.19.1/cert-manager.yaml
+kubectl apply -f 
https://github.com/cert-manager/cert-manager/releases/download/v1.19.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.12.2/docs/book/src/reference/versions.md 
new/clusterctl-1.12.3/docs/book/src/reference/versions.md
--- old/clusterctl-1.12.2/docs/book/src/reference/versions.md   2026-01-19 
18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/docs/book/src/reference/versions.md   2026-02-17 
11:43:04.000000000 +0100
@@ -403,7 +403,9 @@
 | v1.11       | v1.12.3             |
 | v1.11.2     | v1.12.4             |
 | >= v1.11.3  | v1.13.1             |
+| >= v1.11.6  | v1.14.1             |
 | v1.12       | v1.13.1             |
+| >= v1.12.3  | v1.14.1             |
 
 See [corefile-migration](https://github.com/coredns/corefile-migration)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/docs/book/src/user/concepts.md 
new/clusterctl-1.12.3/docs/book/src/user/concepts.md
--- old/clusterctl-1.12.2/docs/book/src/user/concepts.md        2026-01-19 
18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/docs/book/src/user/concepts.md        2026-02-17 
11:43:04.000000000 +0100
@@ -1,53 +1,79 @@
 # Concepts
 
-![](../images/management-cluster.svg)
-
-## Management cluster
-
-A Kubernetes cluster that manages the lifecycle of Workload Clusters. A 
Management Cluster is also where one or more providers run, and where resources 
such as Machines are stored.
-
-### Workload cluster
-
-A Kubernetes cluster whose lifecycle is managed by a Management Cluster.
-
-## Infrastructure provider
+Similar to how you can use StatefulSets or Deployments in Kubernetes to manage 
a group of Pods, in Cluster API you can use custom resources like 
KubeadmControlPlane (a control plane implementation) to manage a set of control 
plane Machines, or you can use MachineDeployments to manage a group of worker 
Machines, each one of them representing a host server and the corresponding 
Kubernetes Node.
 
-A component responsible for the provisioning of infrastructure/computational 
resources required by the Cluster or by Machines (e.g. VMs, networking, etc.). 
-For example, cloud Infrastructure Providers include AWS, Azure, and Google, 
and bare metal Infrastructure Providers include VMware, MAAS, and metal3.io.
-
-When there is more than one way to obtain resources from the same 
Infrastructure Provider (such as AWS offering both EC2 and EKS), each way is 
referred to as a variant.
+Extensibility is at the core of Cluster API and Cluster API providers like 
Cluster API provider VSphere, AWS, GCP etc. can be used
+to deploy Cluster API managed Clusters to your preferred infrastructure, as 
well as to configure many other parts of the system.
+![](../images/management-cluster.svg)
 
-## Bootstrap provider
+See also [Quick start](quick-start.md).
 
-A component responsible for turning a server into a Kubernetes node as well as 
for:
+## Management cluster
 
-1. Generating the cluster certificates, if not otherwise specified
-2. Initializing the control plane, and gating the creation of other nodes 
until it is complete
-3. Joining control plane and worker nodes to the cluster
+A Kubernetes cluster where Cluster API and one or more Cluster API providers 
run, and that can be used to manage the lifecycle of your Kubernetes Cluster 
via a set of custom resources such as [Cluster](#cluster) or 
[Machines](#machine).
 
-## Control plane
+### Cluster
 
-The [control plane](https://kubernetes.io/docs/concepts/overview/components/) 
is a set of components that serve the Kubernetes API and continuously reconcile 
desired state using [control 
loops](https://kubernetes.io/docs/concepts/architecture/controller/).
+A "Cluster" is a custom resource that represent a Kubernetes cluster whose 
lifecycle is managed by Cluster API, usually also referred to as workload 
cluster.
 
-* __Self-provisioned__: A Kubernetes control plane consisting of pods or 
machines wholly managed by a single Cluster API deployment.
-  e.g kubeadm uses [static 
pods](https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/) for 
running components such as 
[kube-apiserver](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/),
 
[kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 and 
[kube-scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/)
-  on control plane machines.
+Common properties such as network CIDRs are modeled as fields on the Cluster's 
spec. Any information that is provider-specific is part of the custom resources
+referenced via `infrastructureRef` or `controlPlaneRef` and is not portable 
between different providers.
 
-* __Pod-based__ deployments require an external hosting cluster. The control 
plane components are deployed using standard *Deployment* and *StatefulSet* 
objects and the API is exposed using a *Service*.
+```yaml 
+apiVersion: cluster.x-k8s.io/v1beta2
+kind: Cluster
+metadata:
+  name: my-cluster
+spec:
+  clusterNetwork:
+    pods:
+      cidrBlocks:
+      - 192.168.0.0/16
+  infrastructureRef:
+    apiGroup: infrastructure.cluster.x-k8s.io
+    kind: VSphereCluster
+    name: my-cluster-infrastructure
+  controlPlaneRef:
+    apiGroup: controlplane.cluster.x-k8s.io
+    kind: KubeadmControlPlane
+    name: my-control-plane
+```
 
-* __External__  or __Managed__ control planes are offered and controlled by 
some system other than Cluster API, such as GKE, AKS, EKS, or IKS.
+In most recent versions of Cluster API, the Cluster object can be used as a 
single point of control for the entire cluster.
+See [ClusterClass](../tasks/experimental-features/cluster-class)
 
-The default provider uses kubeadm to bootstrap the control plane. As of 
v1alpha3, it exposes the configuration via the `KubeadmControlPlane` object. 
The controller, `capi-kubeadm-control-plane-controller-manager`, can then 
create Machine and BootstrapConfig objects based on the requested replicas in 
the `KubeadmControlPlane` object.
+### Machine
 
-## Custom Resource Definitions (CRDs)
+A "Machine" is a custom resource providing the declarative spec for 
infrastructure hosting a Kubernetes Node (for example, a VM).
 
-A 
[CustomResourceDefinition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
 is a built-in resource that lets you extend the Kubernetes API. Each 
CustomResourceDefinition represents a customization of a Kubernetes 
installation. The Cluster API provides and relies on several 
CustomResourceDefinitions:
+```yaml 
+apiVersion: cluster.x-k8s.io/v1beta2
+kind: Machine
+metadata:
+  name: my-machine
+spec:
+  clusterName: my-cluster
+  version: v1.35.0
+  infrastructureRef:
+    apiGroup: infrastructure.cluster.x-k8s.io
+    kind: VSphereMachineTemplate
+    name: my-machine-infrastructure
+  bootstrap:
+    configRef:
+      apiGroup: bootstrap.cluster.x-k8s.io
+      kind: KubeadmConfigTemplate
+      name: my-bootstrap-config
+status:
+  nodeRef:
+    name: the-node-running-on-my-machine
+```
 
-### Machine
+Common fields such as the Kubernetes version are modeled as fields on the 
Machine's spec. Any information that is provider-specific is part of the custom 
resources
+referenced via `infrastructureRef` or `bootstrap.configRef` and is not 
portable between different providers.
 
-A "Machine" is the declarative spec for an infrastructure component hosting a 
Kubernetes Node (for example, a VM). If a new Machine object is created, a 
provider-specific controller will provision and install a new host to register 
as a new Node matching the Machine spec. If the Machine's spec is updated, the 
controller replaces the host with a new one matching the updated spec. If a 
Machine object is deleted, its underlying infrastructure and corresponding Node 
will be deleted by the controller.
+If a new Machine object is created, a provider-specific controller will 
provision and install a new host to register as a new Node matching the Machine 
spec. If a Machine object is deleted, its underlying infrastructure and 
corresponding Node will be deleted.
 
-Common fields such as Kubernetes version are modeled as fields on the 
Machine's spec. Any information that is provider-specific is part of the 
`InfrastructureRef` and is not portable between different providers.
+Like for Pods in Kubernetes, also for Machines in Cluster API it is more 
convenient to not manage single Machines directly. Instead you should use 
resources like KubeadmControlPlane (a control plane implementation), 
[MachineDeployments](#machinedeployment) or [MachinePools](#machinepool) to 
manage a group of Machines.
 
 #### Machine Immutability (In-place update vs. Replace)
 
@@ -58,7 +84,7 @@
 Over time several improvement have been applied to Cluster API in oder to 
perform machine rollout only when necessary and
 for minimizing risks and impact of this operation on users workloads.
 
-Starting from Cluster API v1.12, users can intentionally trade off some of the 
benefits that they get of Machine immutability by 
+Starting from Cluster API v1.12, users can intentionally trade off some of the 
benefits that they get of Machine immutability by
 using Cluster API extensions points to add the capability to perform in-place 
updates under well-defined circumstances.
 
 Notably, the Cluster API user experience will remain the same no matter of the 
in-place update feature is enabled
@@ -67,6 +93,43 @@
 Cluster API is responsible to choose the best strategy to achieve desired 
state, and with the introduction of
 update extensions, Cluster API is expanding the set of tools that can be used 
to achieve the desired state.
 
+## Infrastructure provider
+
+A component responsible for the provisioning of infrastructure/computational 
resources required by the Cluster or by Machines (e.g. VMs, networking, etc.). 
+For example, cloud Infrastructure Providers include AWS, Azure, and Google, 
and bare metal Infrastructure Providers include VMware, MAAS, and metal3.io.
+
+When there is more than one way to obtain resources from the same 
Infrastructure Provider (such as AWS offering both EC2 and EKS), each way is 
referred to as a variant.
+
+## Control plane provider
+
+A component responsible for the provisioning and for the management of the 
control plane of your Kubernetes Cluster, like e.g. the KubeadmControlPlane 
provider.
+
+Control plane providers can take different approach on how to manage the 
control plane;
+
+* __Self-provisioned__: A Kubernetes control plane consisting of pods or 
machines wholly managed by a single Cluster API deployment.
+  e.g kubeadm uses [static 
pods](https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/) for 
running components such as 
[kube-apiserver](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/),
 
[kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/)
 and 
[kube-scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/)
+  on control plane machines.
+
+* __Pod-based__ deployments require an external hosting cluster. The control 
plane components are deployed using standard *Deployment* and *StatefulSet* 
objects and the API is exposed using a *Service*.
+
+* __External__  or __Managed__ control planes are offered and controlled by 
some system other than Cluster API, such as GKE, AKS, EKS, or IKS.
+
+## Bootstrap provider
+
+A component responsible for turning a server into a Kubernetes node as well as 
for:
+
+1. Generating the cluster certificates, if not otherwise specified
+2. Initializing the control plane, and gating the creation of other nodes 
until it is complete
+3. Joining control plane and worker nodes to the cluster
+
+Boostrap provider achieve this goal by generating BootstrapData, which 
contains the Machine or Node role-specific initialization data (usually 
cloud-init). The bootstrap data is used by the Infrastructure Provider to 
bootstrap a Machine into a Node.
+
+## KubeadmControlPlane
+
+The KubeadmControlPlane is a custom resource that is provided by the Kubeadm 
provider, and that allows to manage a set of Machines hosting control plane 
Nodes created with kubeadm.
+
+Other control plane providers implement similar resources as well.
+
 ### MachineDeployment
 
 A MachineDeployment provides declarative updates for Machines and MachineSets.
@@ -91,6 +154,6 @@
 
 MachineHealthChecks will only remediate Nodes if they are owned by a 
MachineSet. This ensures that the Kubernetes cluster does not lose capacity, 
since the MachineSet will create a new Machine to replace the failed Machine.
 
-### BootstrapData
+## Custom Resource Definitions (CRDs)
 
-BootstrapData contains the Machine or Node role-specific initialization data 
(usually cloud-init) used by the Infrastructure Provider to bootstrap a Machine 
into a Node.
+A 
[CustomResourceDefinition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
 is a built-in resource that lets you extend the Kubernetes API. Each 
CustomResourceDefinition represents a customization of a Kubernetes 
installation. The Cluster API provides and relies on several 
CustomResourceDefinitions:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/go.mod new/clusterctl-1.12.3/go.mod
--- old/clusterctl-1.12.2/go.mod        2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/go.mod        2026-02-17 11:43:04.000000000 +0100
@@ -7,7 +7,7 @@
        github.com/Masterminds/sprig/v3 v3.3.0
        github.com/adrg/xdg v0.5.3
        github.com/blang/semver/v4 v4.0.0
-       github.com/coredns/corefile-migration v1.0.29
+       github.com/coredns/corefile-migration v1.0.30
        github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
        github.com/distribution/reference v0.6.0
        github.com/drone/envsubst/v2 v2.0.0-20210730161058-179042472c46
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/go.sum new/clusterctl-1.12.3/go.sum
--- old/clusterctl-1.12.2/go.sum        2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/go.sum        2026-02-17 11:43:04.000000000 +0100
@@ -65,8 +65,8 @@
 github.com/cloudflare/circl v1.6.1/go.mod 
h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
 github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0=
 github.com/coredns/caddy v1.1.1/go.mod 
h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
-github.com/coredns/corefile-migration v1.0.29 
h1:g4cPYMXXDDs9uLE2gFYrJaPBuUAR07eEMGyh9JBE13w=
-github.com/coredns/corefile-migration v1.0.29/go.mod 
h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY=
+github.com/coredns/corefile-migration v1.0.30 
h1:ljZNPGgna+4yKv81gfkvkgLEWdtz0NjBR1glaiPI140=
+github.com/coredns/corefile-migration v1.0.30/go.mod 
h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY=
 github.com/coreos/go-semver v0.1.0/go.mod 
h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/coreos/go-semver v0.3.0/go.mod 
h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/coreos/go-semver v0.3.1 
h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/hack/tools/go.sum 
new/clusterctl-1.12.3/hack/tools/go.sum
--- old/clusterctl-1.12.2/hack/tools/go.sum     2026-01-19 18:39:47.000000000 
+0100
+++ new/clusterctl-1.12.3/hack/tools/go.sum     2026-02-17 11:43:04.000000000 
+0100
@@ -79,8 +79,8 @@
 github.com/containerd/log v0.1.0/go.mod 
h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
 github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0=
 github.com/coredns/caddy v1.1.1/go.mod 
h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
-github.com/coredns/corefile-migration v1.0.29 
h1:g4cPYMXXDDs9uLE2gFYrJaPBuUAR07eEMGyh9JBE13w=
-github.com/coredns/corefile-migration v1.0.29/go.mod 
h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY=
+github.com/coredns/corefile-migration v1.0.30 
h1:ljZNPGgna+4yKv81gfkvkgLEWdtz0NjBR1glaiPI140=
+github.com/coredns/corefile-migration v1.0.30/go.mod 
h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY=
 github.com/creack/pty v1.1.9/go.mod 
h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/cyphar/filepath-securejoin v0.2.4 
h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
 github.com/cyphar/filepath-securejoin v0.2.4/go.mod 
h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/netlify.toml 
new/clusterctl-1.12.3/netlify.toml
--- old/clusterctl-1.12.2/netlify.toml  2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/netlify.toml  2026-02-17 11:43:04.000000000 +0100
@@ -4,7 +4,7 @@
     publish = "docs/book/book"
 
 [build.environment]
-    GO_VERSION = "1.24.12"
+    GO_VERSION = "1.24.13"
 
 # Standard Netlify redirects
 [[redirects]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/scripts/ci-e2e-lib.sh 
new/clusterctl-1.12.3/scripts/ci-e2e-lib.sh
--- old/clusterctl-1.12.2/scripts/ci-e2e-lib.sh 2026-01-19 18:39:47.000000000 
+0100
+++ new/clusterctl-1.12.3/scripts/ci-e2e-lib.sh 2026-02-17 11:43:04.000000000 
+0100
@@ -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.19.1"
-  kind::prepullImage "quay.io/jetstack/cert-manager-webhook:v1.19.1"
-  kind::prepullImage "quay.io/jetstack/cert-manager-controller:v1.19.1"
+  kind::prepullImage "quay.io/jetstack/cert-manager-cainjector:v1.19.3"
+  kind::prepullImage "quay.io/jetstack/cert-manager-webhook:v1.19.3"
+  kind::prepullImage "quay.io/jetstack/cert-manager-controller:v1.19.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
@@ -282,7 +282,7 @@
   retVal=0
   if [[ "$(docker images -q "$image" 2> /dev/null)" == "" ]]; then
     TMPFILE="$(mktemp)"
-  
+
     echo "+ Pulling $image"
 
     crane pull "$image" "${TMPFILE}" || retVal=$?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.2/test/e2e/cluster_upgrade_runtimesdk_test.go 
new/clusterctl-1.12.3/test/e2e/cluster_upgrade_runtimesdk_test.go
--- old/clusterctl-1.12.2/test/e2e/cluster_upgrade_runtimesdk_test.go   
2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/test/e2e/cluster_upgrade_runtimesdk_test.go   
2026-02-17 11:43:04.000000000 +0100
@@ -39,7 +39,15 @@
                        PostUpgrade: func(proxy framework.ClusterProxy, 
namespace, clusterName string) {
                                // This check ensures that the resourceVersions 
are stable, i.e. it verifies there are no
                                // continuous reconciles when everything should 
be stable.
-                               framework.ValidateResourceVersionStable(ctx, 
proxy, namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName))
+                               spec := "k8s-upgrade-with-runtimesdk"
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             proxy,
+                                       Namespace:                namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName),
+                                       WaitToBecomeStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
                        },
                        // "upgrades" is the same as the "topology" flavor but 
with an additional MachinePool.
                        Flavor: ptr.To("upgrades-runtimesdk"),
@@ -65,7 +73,15 @@
                        PostUpgrade: func(proxy framework.ClusterProxy, 
namespace, clusterName string) {
                                // This check ensures that the resourceVersions 
are stable, i.e. it verifies there are no
                                // continuous reconciles when everything should 
be stable.
-                               framework.ValidateResourceVersionStable(ctx, 
proxy, namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName))
+                               spec := "k8s-upgrade-with-runtimesdk"
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             proxy,
+                                       Namespace:                namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName),
+                                       WaitToBecomeStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
                        },
                        // "upgrades" is the same as the "topology" flavor but 
with an additional MachinePool.
                        Flavor:                                
ptr.To("upgrades-runtimesdk"),
@@ -93,7 +109,15 @@
                        PostUpgrade: func(proxy framework.ClusterProxy, 
namespace, clusterName string) {
                                // This check ensures that the resourceVersions 
are stable, i.e. it verifies there are no
                                // continuous reconciles when everything should 
be stable.
-                               framework.ValidateResourceVersionStable(ctx, 
proxy, namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName))
+                               spec := "k8s-upgrade-with-runtimesdk"
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             proxy,
+                                       Namespace:                namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName),
+                                       WaitToBecomeStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
                        },
                        // "upgrades" is the same as the "topology" flavor but 
with an additional MachinePool.
                        Flavor:                                
ptr.To("upgrades-runtimesdk"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/test/e2e/clusterctl_upgrade.go 
new/clusterctl-1.12.3/test/e2e/clusterctl_upgrade.go
--- old/clusterctl-1.12.2/test/e2e/clusterctl_upgrade.go        2026-01-19 
18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/test/e2e/clusterctl_upgrade.go        2026-02-17 
11:43:04.000000000 +0100
@@ -727,7 +727,14 @@
                        // continuous reconciles when everything should be 
stable.
                        if i == len(input.Upgrades)-1 {
                                Byf("[%d] Checking that resourceVersions are 
stable", i)
-                               framework.ValidateResourceVersionStable(ctx, 
managementClusterProxy, workloadCluster.Namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(workloadCluster.Name))
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             
managementClusterProxy,
+                                       Namespace:                
workloadCluster.Namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(workloadCluster.Name),
+                                       WaitToBecomeStable:       
input.E2EConfig.GetIntervals(specName, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
input.E2EConfig.GetIntervals(specName, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
 
                                // NOTE: Checks on conditions works on v1beta2 
only, so running this checks only in the last step which is
                                // always current version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/test/e2e/config/docker.yaml 
new/clusterctl-1.12.3/test/e2e/config/docker.yaml
--- old/clusterctl-1.12.2/test/e2e/config/docker.yaml   2026-01-19 
18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/test/e2e/config/docker.yaml   2026-02-17 
11:43:04.000000000 +0100
@@ -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.19.1
+- name: quay.io/jetstack/cert-manager-cainjector:v1.19.3
   loadBehavior: tryLoad
-- name: quay.io/jetstack/cert-manager-webhook:v1.19.1
+- name: quay.io/jetstack/cert-manager-webhook:v1.19.3
   loadBehavior: tryLoad
-- name: quay.io/jetstack/cert-manager-controller:v1.19.1
+- name: quay.io/jetstack/cert-manager-controller:v1.19.3
   loadBehavior: tryLoad
 
 providers:
@@ -420,6 +420,8 @@
   default/wait-nodes-ready: ["10m", "10s"]
   default/wait-machine-remediation: ["5m", "10s"]
   default/wait-autoscaler: ["5m", "10s"]
+  default/wait-resource-versions-become-stable: ["2m", "15s"]
+  default/wait-resource-versions-remain-stable: ["2m", "5s"]
   node-drain/wait-deployment-available: ["3m", "10s"]
   node-drain/wait-control-plane: ["15m", "10s"]
   node-drain/wait-machine-deleted: ["2m", "10s"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/test/e2e/quick_start_test.go 
new/clusterctl-1.12.3/test/e2e/quick_start_test.go
--- old/clusterctl-1.12.2/test/e2e/quick_start_test.go  2026-01-19 
18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/test/e2e/quick_start_test.go  2026-02-17 
11:43:04.000000000 +0100
@@ -69,7 +69,15 @@
                                // This check ensures that the resourceVersions 
are stable, i.e. it verifies there are no
                                // continuous reconciles when everything should 
be stable.
                                By("Checking that resourceVersions are stable")
-                               framework.ValidateResourceVersionStable(ctx, 
proxy, namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName))
+                               spec := "quick-start"
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             proxy,
+                                       Namespace:                namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName),
+                                       WaitToBecomeStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
                        },
                }
        })
@@ -116,7 +124,15 @@
                                // This check ensures that the resourceVersions 
are stable, i.e. it verifies there are no
                                // continuous reconciles when everything should 
be stable.
                                By("Checking that resourceVersions are stable")
-                               framework.ValidateResourceVersionStable(ctx, 
proxy, namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName))
+                               spec := "quick-start"
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             proxy,
+                                       Namespace:                namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName),
+                                       WaitToBecomeStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
                        },
                }
        })
@@ -141,7 +157,15 @@
                                // This check ensures that the resourceVersions 
are stable, i.e. it verifies there are no
                                // continuous reconciles when everything should 
be stable.
                                By("Checking that resourceVersions are stable")
-                               framework.ValidateResourceVersionStable(ctx, 
proxy, namespace, 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName))
+                               spec := "quick-start"
+                               resourceVersionInput := 
framework.ValidateResourceVersionStableInput{
+                                       ClusterProxy:             proxy,
+                                       Namespace:                namespace,
+                                       OwnerGraphFilterFunction: 
clusterctlcluster.FilterClusterObjectsWithNameFilter(clusterName),
+                                       WaitToBecomeStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-become-stable"),
+                                       WaitToRemainStable:       
e2eConfig.GetIntervals(spec, "wait-resource-versions-remain-stable"),
+                               }
+                               framework.ValidateResourceVersionStable(ctx, 
resourceVersionInput)
                        },
                }
        })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.2/test/framework/resourceversion_helpers.go 
new/clusterctl-1.12.3/test/framework/resourceversion_helpers.go
--- old/clusterctl-1.12.2/test/framework/resourceversion_helpers.go     
2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/test/framework/resourceversion_helpers.go     
2026-02-17 11:43:04.000000000 +0100
@@ -20,7 +20,6 @@
        "context"
        "fmt"
        "strings"
-       "time"
 
        "github.com/google/go-cmp/cmp"
        . "github.com/onsi/gomega"
@@ -32,14 +31,27 @@
        clusterctlcluster 
"sigs.k8s.io/cluster-api/cmd/clusterctl/client/cluster"
 )
 
+// ValidateResourceVersionStableInput contains parameters for 
[ValidateResourceVersionStable].
+type ValidateResourceVersionStableInput struct {
+       ClusterProxy             ClusterProxy
+       Namespace                string
+       OwnerGraphFilterFunction clusterctlcluster.GetOwnerGraphFilterFunction
+       WaitToBecomeStable       []any
+       WaitToRemainStable       []any
+}
+
 // ValidateResourceVersionStable checks that resourceVersions are stable.
-func ValidateResourceVersionStable(ctx context.Context, proxy ClusterProxy, 
namespace string, ownerGraphFilterFunction 
clusterctlcluster.GetOwnerGraphFilterFunction) {
+func ValidateResourceVersionStable(ctx context.Context, input 
ValidateResourceVersionStableInput) {
        // Wait until resourceVersions are stable for a bit.
        byf("Check resourceVersions are stable")
        var previousResourceVersions map[string]string
        var previousObjects map[string]client.Object
+       waitToBecomeStable := input.WaitToBecomeStable
+       if len(waitToBecomeStable) == 0 {
+               waitToBecomeStable = []any{"2m", "15s"}
+       }
        Eventually(func(g Gomega) {
-               objectsWithResourceVersion, objects, err := 
getObjectsWithResourceVersion(ctx, proxy, namespace, ownerGraphFilterFunction)
+               objectsWithResourceVersion, objects, err := 
getObjectsWithResourceVersion(ctx, input.ClusterProxy, input.Namespace, 
input.OwnerGraphFilterFunction)
                g.Expect(err).ToNot(HaveOccurred())
 
                defer func() {
@@ -49,15 +61,19 @@
                }()
                // This is intentionally failing on the first run.
                
g.Expect(objectsWithResourceVersion).To(BeComparableTo(previousResourceVersions))
-       }, 2*time.Minute, 
15*time.Second).MustPassRepeatedly(4).Should(Succeed(), "resourceVersions never 
became stable")
+       }, waitToBecomeStable...).MustPassRepeatedly(4).Should(Succeed(), 
"resourceVersions never became stable")
 
        // Verify resourceVersions are stable for a while.
        byf("Check resourceVersions remain stable")
+       waitToRemainStable := input.WaitToRemainStable
+       if len(waitToRemainStable) == 0 {
+               waitToRemainStable = []any{"2m", "5s"}
+       }
        Consistently(func(g Gomega) {
-               objectsWithResourceVersion, objects, err := 
getObjectsWithResourceVersion(ctx, proxy, namespace, ownerGraphFilterFunction)
+               objectsWithResourceVersion, objects, err := 
getObjectsWithResourceVersion(ctx, input.ClusterProxy, input.Namespace, 
input.OwnerGraphFilterFunction)
                g.Expect(err).ToNot(HaveOccurred())
                
g.Expect(previousResourceVersions).To(BeComparableTo(objectsWithResourceVersion),
 printObjectDiff(previousObjects, objects))
-       }, 2*time.Minute, 5*time.Second).Should(Succeed(), "resourceVersions 
didn't stay stable")
+       }, waitToRemainStable...).Should(Succeed(), "resourceVersions didn't 
stay stable")
 }
 
 func printObjectDiff(previousObjects, newObjects map[string]client.Object) 
func() string {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/test/go.sum 
new/clusterctl-1.12.3/test/go.sum
--- old/clusterctl-1.12.2/test/go.sum   2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/test/go.sum   2026-02-17 11:43:04.000000000 +0100
@@ -50,8 +50,8 @@
 github.com/containerd/log v0.1.0/go.mod 
h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
 github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0=
 github.com/coredns/caddy v1.1.1/go.mod 
h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
-github.com/coredns/corefile-migration v1.0.29 
h1:g4cPYMXXDDs9uLE2gFYrJaPBuUAR07eEMGyh9JBE13w=
-github.com/coredns/corefile-migration v1.0.29/go.mod 
h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY=
+github.com/coredns/corefile-migration v1.0.30 
h1:ljZNPGgna+4yKv81gfkvkgLEWdtz0NjBR1glaiPI140=
+github.com/coredns/corefile-migration v1.0.30/go.mod 
h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY=
 github.com/coreos/go-semver v0.1.0/go.mod 
h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/coreos/go-semver v0.3.1 
h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
 github.com/coreos/go-semver v0.3.1/go.mod 
h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.2/util/deprecated/v1beta1/patch/utils.go 
new/clusterctl-1.12.3/util/deprecated/v1beta1/patch/utils.go
--- old/clusterctl-1.12.2/util/deprecated/v1beta1/patch/utils.go        
2026-01-19 18:39:47.000000000 +0100
+++ new/clusterctl-1.12.3/util/deprecated/v1beta1/patch/utils.go        
2026-02-17 11:43:04.000000000 +0100
@@ -182,7 +182,7 @@
                        // We assume the type is implemented according to 
transition guidelines
                        clusterv1ConditionsFields = []string{"status", 
"deprecated", "v1beta1", "conditions"}
                } else {
-                       if v1Beta1Field := 
deprecatedElem.FieldByName("V1Beta1"); deprecatedField != (reflect.Value{}) {
+                       if v1Beta1Field := 
deprecatedElem.FieldByName("V1Beta1"); v1Beta1Field != (reflect.Value{}) {
                                if v1Beta1Field.Kind() != reflect.Pointer {
                                        return nil, nil, 
errors.New("obj.status.deprecated.v1beta1 must be a pointer")
                                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.2/util/patch/utils.go 
new/clusterctl-1.12.3/util/patch/utils.go
--- old/clusterctl-1.12.2/util/patch/utils.go   2026-01-19 18:39:47.000000000 
+0100
+++ new/clusterctl-1.12.3/util/patch/utils.go   2026-02-17 11:43:04.000000000 
+0100
@@ -182,7 +182,7 @@
                        // We assume the type is implemented according to 
transition guidelines
                        clusterv1ConditionsFields = []string{"status", 
"deprecated", "v1beta1", "conditions"}
                } else {
-                       if v1Beta1Field := 
deprecatedElem.FieldByName("V1Beta1"); deprecatedField != (reflect.Value{}) {
+                       if v1Beta1Field := 
deprecatedElem.FieldByName("V1Beta1"); v1Beta1Field != (reflect.Value{}) {
                                if v1Beta1Field.Kind() != reflect.Pointer {
                                        return nil, nil, 
errors.New("obj.status.deprecated.v1beta1 must be a pointer")
                                }

++++++ clusterctl.obsinfo ++++++
--- /var/tmp/diff_new_pack.zYOw2Q/_old  2026-02-18 17:13:56.062968168 +0100
+++ /var/tmp/diff_new_pack.zYOw2Q/_new  2026-02-18 17:13:56.070968502 +0100
@@ -1,5 +1,5 @@
 name: clusterctl
-version: 1.12.2
-mtime: 1768844387
-commit: 9ee80d1ff529c48ae0b8e022ec01d70ac496e8e5
+version: 1.12.3
+mtime: 1771324984
+commit: 1a1852c74072febc3fbf9823c9dd32f4cd6cc747
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/clusterctl/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.clusterctl.new.1977/vendor.tar.gz differ: char 134, 
line 1

Reply via email to