Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package clusterctl for openSUSE:Factory 
checked in at 2025-12-19 16:44:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clusterctl (Old)
 and      /work/SRC/openSUSE:Factory/.clusterctl.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "clusterctl"

Fri Dec 19 16:44:43 2025 rev:26 rq:1323626 version:1.12.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/clusterctl/clusterctl.changes    2025-12-11 
18:48:48.220283487 +0100
+++ /work/SRC/openSUSE:Factory/.clusterctl.new.1928/clusterctl.changes  
2025-12-19 16:48:01.123323681 +0100
@@ -1,0 +2,6 @@
+Fri Dec 19 08:27:36 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.12.1:
+  No clusterctl related changes or dependency updates
+
+-------------------------------------------------------------------

Old:
----
  clusterctl-1.12.0.obscpio

New:
----
  clusterctl-1.12.1.obscpio

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

Other differences:
------------------
++++++ clusterctl.spec ++++++
--- /var/tmp/diff_new_pack.Qmjnf9/_old  2025-12-19 16:48:07.059571926 +0100
+++ /var/tmp/diff_new_pack.Qmjnf9/_new  2025-12-19 16:48:07.067572261 +0100
@@ -20,7 +20,7 @@
 %define version_git_minor %(echo %{version} | awk 'BEGIN { FS=\".\"}; {print 
$2}')
 
 Name:           clusterctl
-Version:        1.12.0
+Version:        1.12.1
 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.Qmjnf9/_old  2025-12-19 16:48:07.119574436 +0100
+++ /var/tmp/diff_new_pack.Qmjnf9/_new  2025-12-19 16:48:07.123574603 +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.0</param>
+    <param name="revision">v1.12.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Qmjnf9/_old  2025-12-19 16:48:07.155575941 +0100
+++ /var/tmp/diff_new_pack.Qmjnf9/_new  2025-12-19 16:48:07.159576108 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/kubernetes-sigs/cluster-api</param>
-              <param 
name="changesrevision">b52de697d29fff53556697504c1ca68205841383</param></service></servicedata>
+              <param 
name="changesrevision">b9b906573c236b661c2b9565be6fefcdecfc99d2</param></service></servicedata>
 (No newline at EOF)
 

++++++ clusterctl-1.12.0.obscpio -> clusterctl-1.12.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/Tiltfile 
new/clusterctl-1.12.1/Tiltfile
--- old/clusterctl-1.12.0/Tiltfile      2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/Tiltfile      2025-12-18 09:35:18.000000000 +0100
@@ -2,7 +2,7 @@
 
 clusterctl_cmd = "./bin/clusterctl"
 kubectl_cmd = "kubectl"
-kubernetes_version = "v1.34.0"
+kubernetes_version = "v1.35.0"
 
 load("ext://uibutton", "cmd_button", "location", "text_input")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/controlplane/kubeadm/internal/desiredstate/desired_state.go
 
new/clusterctl-1.12.1/controlplane/kubeadm/internal/desiredstate/desired_state.go
--- 
old/clusterctl-1.12.0/controlplane/kubeadm/internal/desiredstate/desired_state.go
   2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/controlplane/kubeadm/internal/desiredstate/desired_state.go
   2025-12-18 09:35:18.000000000 +0100
@@ -241,6 +241,7 @@
                Spec: *spec,
        }
        if existingKubeadmConfig != nil {
+               kubeadmConfig.SetName(existingKubeadmConfig.GetName())
                kubeadmConfig.SetUID(existingKubeadmConfig.GetUID())
        }
        return kubeadmConfig, nil
@@ -289,6 +290,7 @@
                return nil, errors.Wrap(err, "failed to compute desired 
InfraMachine")
        }
        if existingInfraMachine != nil {
+               infraMachine.SetName(existingInfraMachine.GetName())
                infraMachine.SetUID(existingInfraMachine.GetUID())
        }
        return infraMachine, nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/developer/core/tilt.md 
new/clusterctl-1.12.1/docs/book/src/developer/core/tilt.md
--- old/clusterctl-1.12.0/docs/book/src/developer/core/tilt.md  2025-12-09 
11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/docs/book/src/developer/core/tilt.md  2025-12-18 
09:35:18.000000000 +0100
@@ -8,7 +8,7 @@
 ## Prerequisites
 
 1. [Docker](https://docs.docker.com/install/): v19.03 or newer (on MacOS e.g. 
via [Lima](https://github.com/lima-vm/lima))
-2. [kind](https://kind.sigs.k8s.io): v0.30.0 or newer
+2. [kind](https://kind.sigs.k8s.io): v0.31.0 or newer
 3. [Tilt](https://docs.tilt.dev/install.html): v0.30.8 or newer
 4. [kustomize](https://github.com/kubernetes-sigs/kustomize): provided via 
`make kustomize`
 5. [envsubst](https://github.com/drone/envsubst): provided via `make envsubst`
@@ -427,7 +427,7 @@
 ```yaml
 kustomize_substitutions:
   NAMESPACE: "default"
-  KUBERNETES_VERSION: "v1.34.0"
+  KUBERNETES_VERSION: "v1.35.0"
   CONTROL_PLANE_MACHINE_COUNT: "1"
   WORKER_MACHINE_COUNT: "3"
 # Note: kustomize substitutions expects the values to be strings. This can be 
achieved by wrapping the values in quotation marks.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/reference/glossary.md 
new/clusterctl-1.12.1/docs/book/src/reference/glossary.md
--- old/clusterctl-1.12.0/docs/book/src/reference/glossary.md   2025-12-09 
11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/docs/book/src/reference/glossary.md   2025-12-18 
09:35:18.000000000 +0100
@@ -283,9 +283,9 @@
 
 ### In-place update
 
-Any change to a Machine spec, that is performed without deleting the machines 
and creating a new one.
+Any change to a Machine spec that is performed without deleting the Machine 
and creating a new one.
 
-Note: changing [in-place mutable fields](#in-place-mutable-fields) is not 
considered an in-place upgrade.
+Note: changing [in-place mutable fields](#in-place-mutable-fields) is not 
considered an in-place update.
 
 ### Instance
 
@@ -295,7 +295,7 @@
 
 A resource that does not mutate.  In Kubernetes we often state the instance of 
a running pod is immutable or does not change once it is run.  In order to make 
a change, a new pod is run.  In the context of [Cluster API](#cluster-api) we 
often refer to a running instance of a [Machine](#machine) as being immutable, 
from a [Cluster API](#cluster-api) perspective.
 
-Note: Cluster API also have extensibility points that make it possible to 
perform [in-place updates](#in-place-update) of machines.
+Note: Cluster API also has extensibility points that make it possible to 
perform [in-place updates](#in-place-update) of machines.
 
 ### IPAM provider
 
@@ -490,9 +490,9 @@
 
 ### Update Extension
 
-A [runtime extension provider](#runtime-extension-provider) that implements 
[Update Lifecycle Hooks](#update-lifecycle-hooks).
+A [runtime extension provider](#runtime-extension-provider) that implements 
[Update Lifecycle Hooks](#update-hooks).
 
-### Update Lifecycle Hooks
+### Update Hooks
 Is a set of Cluster API [Runtime Hooks](#runtime-hook) called when performing 
the "can update in-place" decision or
 when performing an [in-place update](#in-place-update).
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/experimental-features.md
 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/experimental-features.md
--- 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/experimental-features.md
    2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/experimental-features.md
    2025-12-18 09:35:18.000000000 +0100
@@ -6,7 +6,7 @@
 Currently Cluster API has the following experimental features:
 * `ClusterTopology` (env var: `CLUSTER_TOPOLOGY`): 
[ClusterClass](./cluster-class/index.md)
 * `InPlaceUpdates` (env var: `EXP_IN_PLACE_UPDATES`):
-  * Allows users to execute changes on existing machines without deleting the 
machines and creating a new one.
+  * Allows users to execute changes on existing machines without deleting the 
Machine and creating a new one.
   * See the 
[proposal](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/20240807-in-place-updates.md)
 for more details.
 * `KubeadmBootstrapFormatIgnition` (env var: 
`EXP_KUBEADM_BOOTSTRAP_FORMAT_IGNITION`): [Ignition](./ignition.md)
 * `MachinePool` (env var: `EXP_MACHINE_POOL`): 
[MachinePools](./machine-pools.md)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-in-place-update-hooks.md
 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-in-place-update-hooks.md
--- 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-in-place-update-hooks.md
      2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-in-place-update-hooks.md
      2025-12-18 09:35:18.000000000 +0100
@@ -11,9 +11,9 @@
 ## Introduction
 
 The proposal for [in-place updates in Cluster 
API](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/20240807-in-place-updates.md)
-introduced extensions allowing users to execute changes on existing machines 
without deleting the machines and creating a new one.
+introduced extensions allowing users to execute changes on existing machines 
without deleting the Machine and creating a new one.
 
-Notably, the Cluster API user experience remain the same as of today no matter 
of the in-place update feature is enabled 
+Notably, the Cluster API user experience remains the same as of today no 
matter of the in-place update feature is enabled 
 or not e.g. in order to trigger a MachineDeployment rollout, you have to 
rotate a template, etc.
 
 Users should care ONLY about the desired state (as of today).
@@ -28,13 +28,13 @@
 options like MaxSurge/MaxUnavailable. With this regard:
 
 - Machines updating in-place are considered not available, because in-place 
updates are always considered as potentially disruptive.
-  - For control plane machines, if maxSurge is one, a new machine must be 
created first, then as soon as there is 
+  - For control plane machines, if maxSurge is 1, a new machine must be 
created first, then as soon as there is 
     “buffer” for in-place, in-place update can proceed.
     - KCP will not use in-place in case it will detect that it can impact 
health of the control plane.
-  - For workers machines, if maxUnavailable is zero, a new machine must be 
created first, then as soon as there
+  - For workers machines, if maxUnavailable is 0, a new machine must be 
created first, then as soon as there
     is “buffer” for in-place, in-place update can proceed.
     - When in-place is possible, the system should try to in-place update as 
many machines as possible.
-      In practice, this means that maxSurge might be not fully used (it is 
used only for scale up by one if maxUnavailable=0).
+      In practice, this means that maxSurge might not be fully used (it is 
used only for scale up by one if maxUnavailable=0).
   - No in-place updates are performed for workers machines when using rollout 
strategy `OnDelete`.
 
 <aside class="note warning">
@@ -60,11 +60,11 @@
 ## Guidelines
 
 All guidelines defined in [Implementing Runtime 
Extensions](implement-extensions.md#guidelines) apply to the
-implementation of Runtime Extensions for upgrade plan hooks as well.
+implementation of Runtime Extensions for in-place update hooks as well.
 
 In summary, Runtime Extensions are components that should be designed, written 
and deployed with great caution given
 that they can affect the proper functioning of the Cluster API runtime. A 
poorly implemented Runtime Extension could
-potentially block upgrade transitions from happening.
+potentially block updates.
 
 Following recommendations are especially relevant:
 
@@ -77,7 +77,7 @@
 
 ## Definitions
 
-For additional details about the OpenAPI spec of the upgrade plan hooks, 
please download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.11.x"}})
+For additional details about the OpenAPI spec of the upgrade plan hooks, 
please download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.12.x"}})
 file and then open it from the [Swagger UI](https://editor.swagger.io/).
 
 ### CanUpdateMachine
@@ -218,7 +218,7 @@
 
 Note:
 - Extensions should return per-object patches to be applied on current objects 
to indicate which changes they can handle in-place.
-- Only fields in Machine/InfraMachine/BootstrapConfig spec have to be covered 
by patches
+- Only fields in MachineSet/InfraMachineTemplate/BootstrapConfigTemplate 
spec.template.spec have to be covered by patches
 - Patches must be in JSONPatch or JSONMergePatch format
 
 ### UpdateMachine
@@ -240,17 +240,17 @@
       namespace: test-ns
     spec:
       ...
-  infrastructureMachineTemplate:
+  infrastructureMachine:
     apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
-    kind: VSphereMachineTemplate
+    kind: VSphereMachine
     metadata:
       name: test-cluster
       namespace: test-ns
     spec:
       ...
-  boostrapConfigTemplate:
+  boostrapConfig:
     apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
-    kind: KubeadmConfigTemplate
+    kind: KubeadmConfig
     metadata:
       name: test-cluster
       namespace: test-ns
@@ -266,7 +266,7 @@
 
 ```yaml
 apiVersion: hooks.runtime.cluster.x-k8s.io/v1alpha1
-kind: UpdateMachineSetResponse
+kind: UpdateMachineResponse
 status: Success # or Failure
 message: "error message if status == Failure"
 retryAfterSeconds: 10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-lifecycle-hooks.md
 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-lifecycle-hooks.md
--- 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-lifecycle-hooks.md
    2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-lifecycle-hooks.md
    2025-12-18 09:35:18.000000000 +0100
@@ -51,7 +51,7 @@
 
 ## Definitions
 
-For additional details about the OpenAPI spec of the lifecycle hooks, please 
download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.11.x"}})
+For additional details about the OpenAPI spec of the lifecycle hooks, please 
download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.12.x"}})
 file and then open it from the [Swagger UI](https://editor.swagger.io/).
 
 ### BeforeClusterCreate
@@ -170,7 +170,7 @@
   - version: v1.33.0
 ```
 
-Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contains the 
intermediate steps to reach the target version,
+Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contain the 
intermediate steps to reach the target version,
 which is also included in the list.
 
 Example Response:
@@ -222,7 +222,7 @@
   - version: v1.33.0
 ```
 
-Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contains the 
intermediate steps to reach the target version,
+Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contain the 
intermediate steps to reach the target version,
 which is also included in the list.
 
 Example Response:
@@ -240,7 +240,7 @@
 This hook is called after the control plane has been upgraded to the version 
specified in `spec.topology.version`
 or to an intermediate version in the upgrade plan and:
 - if workers upgrade can be skipped for this version and this is an 
intermediate version of an upgrade plan, 
-  immediately before calling the `BeforeControlPlaneUpgrade` hook for the next 
version in the upgrade plane.
+  immediately before calling the `BeforeControlPlaneUpgrade` hook for the next 
version in the upgrade plan.
 - if workers upgrade must be performed for this version,
   immediately before calling the `BeforeWorkersUpgrade` hook for the same 
version.
 - if the cluster does not have workers and this is the last version of an 
upgrade plan,
@@ -281,7 +281,7 @@
   - version: v1.33.0
 ```
 
-Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contains the 
intermediate steps to reach the target version,
+Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contain the 
intermediate steps to reach the target version,
 which is also included in the list.
 
 Example Response:
@@ -330,7 +330,7 @@
   - version: v1.33.0
 ```
 
-Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contains the 
intermediate steps to reach the target version,
+Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contain the 
intermediate steps to reach the target version,
 which is also included in the list.
 
 Example Response:
@@ -349,7 +349,7 @@
 or to an intermediate version in the upgrade plan, and:
 - if the upgrade plan is completed and the entire cluster is at 
`spec.topology.version`, immediately before calling the `AfterClusterUpgrade` 
hook.
 - if the upgrade plan is not complete and the entire cluster is now at one of 
the intermediate versions, immediately before 
-  calling `BeforeControlPlaneUpgrade` hook for the next intermediate step; in 
this case, the hook will ensure the control 
+  calling `BeforeControlPlaneUpgrade` hook for the next intermediate step; in 
this case, the hook will ensure the control plane
   can't to move to the next version in the upgrade plan until 
`AfterWorkersUpgrade` is completed.
 
 Example Request:
@@ -378,7 +378,7 @@
   - version: v1.33.0
 ```
 
-Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contains the 
intermediate steps to reach the target version,
+Note: The `controlPlaneUpgrades` and the `workersUpgrades` fields contain the 
intermediate steps to reach the target version,
 which is also included in the list.
 
 Example Response:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-topology-mutation-hook.md
 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-topology-mutation-hook.md
--- 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-topology-mutation-hook.md
     2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-topology-mutation-hook.md
     2025-12-18 09:35:18.000000000 +0100
@@ -66,7 +66,7 @@
 
 ## Definitions
 
-For additional details about the OpenAPI spec of the topology mutation hooks, 
please download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.11.x"}})
+For additional details about the OpenAPI spec of the topology mutation hooks, 
please download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.12.x"}})
 file and then open it from the [Swagger UI](https://editor.swagger.io/).
 
 ## Inline vs. external patches
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-upgrade-plan-hooks.md
 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-upgrade-plan-hooks.md
--- 
old/clusterctl-1.12.0/docs/book/src/tasks/experimental-features/runtime-sdk/implement-upgrade-plan-hooks.md
 2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/docs/book/src/tasks/experimental-features/runtime-sdk/implement-upgrade-plan-hooks.md
 2025-12-18 09:35:18.000000000 +0100
@@ -13,11 +13,11 @@
 The proposal for [Chained and efficient 
upgrades](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/20250513-chained-and-efficient-upgrades-for-clusters-with-managed-topologies.md)
 introduced support for upgrading by more than one minor when working with 
Clusters using managed topologies.
 
-According to the proposal, there are two ways to provide to Cluster API the 
information required to compute the upgrade plan:
+According to the proposal, there are two ways to provide Cluster API the 
information required to compute the upgrade plan:
 - By setting the list of versions in the `spec.kubernetesVersions` field in 
the `ClusterClass` object.
-- By calling the runtime hook defined in the `spec.upgrade` in the 
`ClusterClass` object.
+- By calling the runtime hook defined in the `spec.upgrade` field in the 
`ClusterClass` object.
 
-This document defines the hook for the second option and provides 
recommendation on how to implement it.
+This document defines the hook for the second option and provides 
recommendations on how to implement it.
 
 <!-- TOC -->
 * [Implementing Upgrade Plan Runtime 
Extensions](#implementing-upgrade-plan-runtime-extensions)
@@ -34,7 +34,7 @@
 
 In summary, Runtime Extensions are components that should be designed, written 
and deployed with great caution given
 that they can affect the proper functioning of the Cluster API runtime. A 
poorly implemented Runtime Extension could
-potentially block upgrade transitions from happening.
+potentially block upgrades.
 
 Following recommendations are especially relevant:
 
@@ -46,15 +46,15 @@
 
 ## Definitions
 
-For additional details about the OpenAPI spec of the upgrade plan hooks, 
please download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.11.x"}})
+For additional details about the OpenAPI spec of the upgrade plan hooks, 
please download the [`runtime-sdk-openapi.yaml`]({{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"runtime-sdk-openapi.yaml" 
version:"1.12.x"}})
 file and then open it from the [Swagger UI](https://editor.swagger.io/).
 
 ### GenerateUpgradePlan
 
 The GenerateUpgradePlan hook is called every time Cluster API is required to 
compute the upgrade plan.
 
-Notably, during an upgrade, the upgrade plan is recomputed several times, 
ideally one each time the upgrade plan completes
-a step, but the number of calls might be higher depending on e.g. by the 
duration of the upgrade.
+Notably, during an upgrade, the upgrade plan is recomputed several times, 
ideally once each time the upgrade plan completes
+a step, but the number of calls might be higher depending on e.g. the duration 
of the upgrade.
 
 Example Request:
 
@@ -140,7 +140,7 @@
   - version: v1.32.3
   ```
 
-Note: in this case the system will take into consideration the provided 
`workersUpgrades`, and validated it is
+Note: in this case the system will take into consideration the provided 
`workersUpgrades`, and validate it is
 consistent with `controlPlaneUpgrades` and also compliant with the [Kubernetes 
version skew policy](https://kubernetes.io/releases/version-skew-policy/).
 
 In all the cases above, the `GenerateUpgradePlanResponse` content must comply 
the following validation rules:
@@ -167,5 +167,5 @@
     - in case of versions with the same major/minor/patch version but 
different build number, also the order
       of those versions must be the same for control plane and worker upgrade 
plan.
     - the last version in the plan must be equal to `toKubernetesVersion`
-    - the upgrade plane must have all the intermediate version which workers 
must go through to avoid breaking rules
+    - the upgrade plan must have all the intermediate version which workers 
must go through to avoid breaking rules
       defining the max version skew between control plane and workers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/docs/book/src/user/concepts.md 
new/clusterctl-1.12.1/docs/book/src/user/concepts.md
--- old/clusterctl-1.12.0/docs/book/src/user/concepts.md        2025-12-09 
11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/docs/book/src/user/concepts.md        2025-12-18 
09:35:18.000000000 +0100
@@ -56,7 +56,7 @@
 For this reason, MachineDeployments are preferable. MachineDeployments handle 
changes to machines by replacing them, in the same way core Deployments handle 
changes to Pod specifications.
 
 Over time several improvement have been applied to Cluster API in oder to 
perform machine rollout only when necessary and
-for minimizing risks and impacts of this operation on users workloads.
+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 
 using Cluster API extensions points to add the capability to perform in-place 
updates under well-defined circumstances.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/docs/book/src/user/quick-start.md 
new/clusterctl-1.12.1/docs/book/src/user/quick-start.md
--- old/clusterctl-1.12.0/docs/book/src/user/quick-start.md     2025-12-09 
11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/docs/book/src/user/quick-start.md     2025-12-18 
09:35:18.000000000 +0100
@@ -56,7 +56,7 @@
 
    [kind] is not designed for production use.
 
-   **Minimum [kind] supported version**: v0.30.0
+   **Minimum [kind] supported version**: v0.31.0
 
    **Help with common issues can be found in the [Troubleshooting 
Guide](./troubleshooting.md).**
 
@@ -171,17 +171,17 @@
 
 Download for AMD64:
 ```bash
-curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-linux-amd64" 
version:"1.11.x"}} -o clusterctl
+curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-linux-amd64" 
version:"1.12.x"}} -o clusterctl
 ```
 
 Download for ARM64:
 ```bash
-curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-linux-arm64" 
version:"1.11.x"}} -o clusterctl
+curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-linux-arm64" 
version:"1.12.x"}} -o clusterctl
 ```
 
 Download for PPC64LE:
 ```bash
-curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-linux-ppc64le" 
version:"1.11.x"}} -o clusterctl
+curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-linux-ppc64le" 
version:"1.12.x"}} -o clusterctl
 ```
 
 Install clusterctl:
@@ -201,12 +201,12 @@
 
 Download for AMD64:
 ```bash
-curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-darwin-amd64" 
version:"1.11.x"}} -o clusterctl
+curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-darwin-amd64" 
version:"1.12.x"}} -o clusterctl
 ```
 
 Download for M1 CPU ("Apple Silicon") / ARM64:
 ```bash
-curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-darwin-arm64" 
version:"1.11.x"}} -o clusterctl
+curl -L {{#releaselink repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-darwin-arm64" 
version:"1.12.x"}} -o clusterctl
 ```
 
 Make the clusterctl binary executable.
@@ -245,7 +245,7 @@
 
 Download the latest release; on Windows, type:
 ```powershell
-curl.exe -L {{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-windows-amd64.exe" 
version:"1.11.x"}} -o clusterctl.exe
+curl.exe -L {{#releaselink 
repo:"https://github.com/kubernetes-sigs/cluster-api"; 
gomodule:"sigs.k8s.io/cluster-api" asset:"clusterctl-windows-amd64.exe" 
version:"1.12.x"}} -o clusterctl.exe
 ```
 Append or prepend the path of that directory to the `PATH` environment 
variable.
 
@@ -1554,7 +1554,7 @@
 
 ```bash
 clusterctl generate cluster capi-quickstart --flavor development \
-  --kubernetes-version v1.34.0 \
+  --kubernetes-version v1.35.0 \
   --control-plane-machine-count=3 \
   --worker-machine-count=3 \
   > capi-quickstart.yaml
@@ -1600,7 +1600,7 @@
 ```bash
 clusterctl generate cluster capi-quickstart \
   --infrastructure azure \
-  --kubernetes-version v1.34.0 \
+  --kubernetes-version v1.35.0 \
   --control-plane-machine-count=3 \
   --worker-machine-count=3 \
   > capi-quickstart.yaml
@@ -1615,7 +1615,7 @@
 
 ```bash
 clusterctl generate cluster capi-quickstart \
-  --kubernetes-version v1.34.0 \
+  --kubernetes-version v1.35.0 \
   --control-plane-machine-count=3 \
   --worker-machine-count=3 \
   > capi-quickstart.yaml
@@ -1669,7 +1669,7 @@
 
 ```bash
 NAME              PHASE         AGE   VERSION
-capi-quickstart   Provisioned   8s    v1.34.0
+capi-quickstart   Provisioned   8s    v1.35.0
 ```
 
 To verify the first control plane is up:
@@ -1682,7 +1682,7 @@
 
 ```bash
 NAME                    CLUSTER           INITIALIZED   API SERVER AVAILABLE   
REPLICAS   READY   UPDATED   UNAVAILABLE   AGE    VERSION
-capi-quickstart-g2trk   capi-quickstart   true                                 
3                  3         3             4m7s   v1.34.0
+capi-quickstart-g2trk   capi-quickstart   true                                 
3                  3         3             4m7s   v1.35.0
 ```
 
 <aside class="note warning">
@@ -1836,12 +1836,12 @@
 ```
 ```bash
 NAME                                          STATUS   ROLES           AGE    
VERSION
-capi-quickstart-vs89t-gmbld                   Ready    control-plane   5m33s  
v1.34.0
-capi-quickstart-vs89t-kf9l5                   Ready    control-plane   6m20s  
v1.34.0
-capi-quickstart-vs89t-t8cfn                   Ready    control-plane   7m10s  
v1.34.0
-capi-quickstart-md-0-55x6t-5649968bd7-8tq9v   Ready    <none>          6m5s   
v1.34.0
-capi-quickstart-md-0-55x6t-5649968bd7-glnjd   Ready    <none>          6m9s   
v1.34.0
-capi-quickstart-md-0-55x6t-5649968bd7-sfzp6   Ready    <none>          6m9s   
v1.34.0
+capi-quickstart-vs89t-gmbld                   Ready    control-plane   5m33s  
v1.35.0
+capi-quickstart-vs89t-kf9l5                   Ready    control-plane   6m20s  
v1.35.0
+capi-quickstart-vs89t-t8cfn                   Ready    control-plane   7m10s  
v1.35.0
+capi-quickstart-md-0-55x6t-5649968bd7-8tq9v   Ready    <none>          6m5s   
v1.35.0
+capi-quickstart-md-0-55x6t-5649968bd7-glnjd   Ready    <none>          6m9s   
v1.35.0
+capi-quickstart-md-0-55x6t-5649968bd7-sfzp6   Ready    <none>          6m9s   
v1.35.0
 ```
 
 {{#/tab }}
@@ -1925,12 +1925,12 @@
 ```
 ```bash
 NAME                                          STATUS   ROLES           AGE    
VERSION
-capi-quickstart-vs89t-gmbld                   Ready    control-plane   5m33s  
v1.34.0
-capi-quickstart-vs89t-kf9l5                   Ready    control-plane   6m20s  
v1.34.0
-capi-quickstart-vs89t-t8cfn                   Ready    control-plane   7m10s  
v1.34.0
-capi-quickstart-md-0-55x6t-5649968bd7-8tq9v   Ready    <none>          6m5s   
v1.34.0
-capi-quickstart-md-0-55x6t-5649968bd7-glnjd   Ready    <none>          6m9s   
v1.34.0
-capi-quickstart-md-0-55x6t-5649968bd7-sfzp6   Ready    <none>          6m9s   
v1.34.0
+capi-quickstart-vs89t-gmbld                   Ready    control-plane   5m33s  
v1.35.0
+capi-quickstart-vs89t-kf9l5                   Ready    control-plane   6m20s  
v1.35.0
+capi-quickstart-vs89t-t8cfn                   Ready    control-plane   7m10s  
v1.35.0
+capi-quickstart-md-0-55x6t-5649968bd7-8tq9v   Ready    <none>          6m5s   
v1.35.0
+capi-quickstart-md-0-55x6t-5649968bd7-glnjd   Ready    <none>          6m9s   
v1.35.0
+capi-quickstart-md-0-55x6t-5649968bd7-sfzp6   Ready    <none>          6m9s   
v1.35.0
 ```
 
 {{#/tab }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/proposals/20240807-in-place-updates-implementation-notes.md
 
new/clusterctl-1.12.1/docs/proposals/20240807-in-place-updates-implementation-notes.md
--- 
old/clusterctl-1.12.0/docs/proposals/20240807-in-place-updates-implementation-notes.md
      2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/docs/proposals/20240807-in-place-updates-implementation-notes.md
      2025-12-18 09:35:18.000000000 +0100
@@ -166,9 +166,10 @@
     Machine Controller->>RX: UpdateMachine(desired state)
     RX-->>Machine Controller: Status: Done
     
+    Machine Controller->>M1: Remove annotation "update-in-progress"
     Machine Controller->>IM1: Remove annotation "update-in-progress"
     Machine Controller->>KC1: Remove annotation "update-in-progress"
-    Machine Controller->>M1: Remove annotation "update-in-progress"<br/>Remove 
"UpdateMachine" from "pending-hooks"
+    Machine Controller->>M1: Remove "UpdateMachine" from "pending-hooks"
 ```
 
 Workflow #3: The KCP controller waits for in-place update to complete before 
proceeding with further operations.
@@ -199,7 +200,7 @@
 
 ### A "two field managers" approach
 
-The refactoring uses **two separate field managers** to enable different 
responsibilities:
+The refactoring uses **two separate field managers** to enable different 
responsibilities for BootstrapConfigs/InfraMachines:
 
 1. **Metadata manager** (`capi-kubeadmcontrolplane-metadata` / 
`capi-machineset-metadata`):
    - Continuously syncs labels and annotations
@@ -249,7 +250,7 @@
 1. Apply BootstrapConfig/InfraMachine with:
    - Updated spec (owned by the spec manager)
    - `update-in-progress` annotation (owned by spec manager)
-   - For InfraMachine: `cloned-from` annotations (owned by the spec manager)
+   - For InfraMachine and MachineSet Machine BootstrapConfig: `cloned-from` 
annotations (owned by the spec manager)
 
 2. Result after the in-place update trigger:
    - labels and annotations are owned by the metadata manager
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/docs/proposals/20240807-in-place-updates.md 
new/clusterctl-1.12.1/docs/proposals/20240807-in-place-updates.md
--- old/clusterctl-1.12.0/docs/proposals/20240807-in-place-updates.md   
2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/docs/proposals/20240807-in-place-updates.md   
2025-12-18 09:35:18.000000000 +0100
@@ -167,7 +167,7 @@
 
 Initially, this feature will be implemented without making API changes in the 
current core Cluster API objects. It will follow Kubernetes' feature gate 
mechanism. All functionality related to in-place Updates will be available only 
if the `InPlaceUpdates` feature flag is set to true. It is disabled unless 
explicitly configured.
 
-This proposal introduces three new Lifecycle Hooks named `CanUpdateMachine`, 
`CanUpdateMachineSet` and `UpdateMachine` for communication between CAPI and 
external update implementers. 
+This proposal introduces three new Update Hooks named `CanUpdateMachine`, 
`CanUpdateMachineSet` and `UpdateMachine` for communication between CAPI and 
external update implementers. 
 
 Multiple external updaters can be registered, each of them only covering a 
subset of machine changes (*). The CAPI controllers will ask the external 
updaters what kind of changes they can handle and, based on the response, 
compose and orchestrate them to achieve the desired state.
 
@@ -281,7 +281,7 @@
 
 The MachineDeployment update should take care of:
 - The internal implementation details of MachineDeployments, or more 
specifically of the intermediate layer MachineSet that controls Machines.
-- The MaxUnavailability and MaxSurge constraint that exist to protect user 
workloads.
+- The maxUnavailable and maxSurge constraint that exist to protect user 
workloads.
 
 In order to do so:
 - The "can update in-place" decision is performed at MachineSet level by 
calling the `CanUpdateMachineSet` hook.
@@ -289,7 +289,7 @@
   the MachineSet with the new spec; during this step also the 
Machine/InfraMachine/BootstrapConfig are updated 
   to the new spec.
 - Machines updating in-place are considered not available, because in-place 
updates are always considered as potentially disruptive.
-  - If maxUnavailable is zero, a new machine must be created first, then as 
soon as there is “buffer” for in-place, in-place update can proceed
+  - If maxUnavailable is 0, a new machine must be created first, then as soon 
as there is “buffer” for in-place, in-place update can proceed
 
 ```mermaid
 sequenceDiagram
@@ -308,9 +308,8 @@
 apiserver->>Operator: OK
 capi->>capi: Decide Update Strategy
 capi->>apiserver: Create new MachineSet
-capi->>apiserver: Move existing Machine to the new MachineSet
 loop For all machines
-    capi->>apiserver: Move to new Machine Set, update spec
+    capi->>apiserver: Move to the new MachineSet, update spec
     mach->>apiserver: Mark Machine as Updating in-place
     loop For all updaters in plan
         mach->>hook: Wait for the updater to apply changes
@@ -321,23 +320,24 @@
 
 Please note that:
 - When in-place is possible, the system should try to in-place update as many 
machines as possible.
-  In practice, this means that maxSurge might be not fully used (it is used 
only for scale up by one if maxUnavailable=0)
-- No in-place updates are performed when using rollout strategy on delete.
+  In practice, this means that maxSurge might not be fully used (it is used 
only for scale up by one if maxUnavailable=0)
+- No in-place updates are performed when using rollout strategy OnDelete.
 
-Please refer to [implementation 
note](./20240807-in-place-updates-implementation-notes.md) for more details 
about how the move operation is performed.
+Please refer to [implementation 
notes](./20240807-in-place-updates-implementation-notes.md) for more details 
about how the move operation is performed.
 
 ### KCP updates
+
 The KCP external updates will work in a very similar way to MachineDeployments 
but removing the MachineSet level of indirection. 
 
 In order to do so:
-- The "can update in-place" decision is performed at MachineSet level by 
calling the `CanUpdateMachine` hook.
+- The "can update in-place" decision is performed at Machine level by calling 
the `CanUpdateMachine` hook.
 - Before starting an in-place update, the Machine/InfraMachine/BootstrapConfig 
are updated
   to the new spec.
-- If maxSurge is one, a new machine must be created first, then as soon as 
there is “buffer” for in-place, in-place update can proceed.
-- If maxSurge is zero, in-place update can proceed immediately.
+- If maxSurge is 1, a new Machine must be created first, then as soon as there 
is “buffer” for in-place, in-place update can proceed.
+- If maxSurge is 0, in-place update can proceed immediately.
 - Note: to better understand above points, you might want to consider that 
maxSurge in KCP is a way to express if the 
   control plane rollout should be performed "scaling-out" or "scaling-in"
-- Note: KCP has its own definition of availability, that is preserved during a 
rollout no matter of it is performed using
+- Note: KCP has its own definition of availability, that is preserved during a 
rollout no matter of if it is performed using
   in-place updates or regular rollouts.
 
 Notably, while KCP will always try to perform in-place whenever possible, KCP 
might decide to not perform in-place
@@ -378,7 +378,7 @@
 
 CAPI expects the `UpdateMachine` endpoint of an updater to be idempotent: for 
the same Machine with the same spec, the endpoint can be called any number of 
times (before and after it completes), and the end result should be the same. 
CAPI guarantees that once an `UpdateMachine` endpoint has been called once, it 
won't change the Machine spec until the update either completes or fails.
 
-Once all of the updaters are complete, the Machine controller will mark 
machine as `UpToDate`. If the update fails, this will be reflected in the 
Machine status.
+Once all updaters complete, the Machine controller will mark machine as 
`UpToDate`. If the update fails, this will be reflected in the Machine status.
 
 ```mermaid
 sequenceDiagram
@@ -523,7 +523,7 @@
 }
 ```
 
-Now that the KCP knows how to cover all desired changes, it proceeds to mark 
the `Updating` condition on the first selected KCP machine to true.
+Now that KCP knows how to cover all desired changes, it proceeds to mark the 
Machine for update.
 
 Please refer to [implementation 
note](./20240807-in-place-updates-implementation-notes.md) for more details 
about how the Machine is transitioned to Updating
 while avoiding race conditions between the controllers involved in this 
process.
@@ -552,7 +552,7 @@
 {
     "status": "Success",
     "message": "I'm still applying changes",
-    "retryAfterSeconds": "5m0s"
+    "retryAfterSeconds": 300
 }
 ```
 
@@ -572,8 +572,8 @@
 }
 ```
 
-All in-place `ExternalUpdate` hooks are completed execution, so the Machine 
controller sets the
-machine's `Upgrading` condition to false, and thus `UpToDate` flips back to 
true.
+All in-place `ExternalUpdate` hooks completed, so the Machine controller sets 
the
+machine's `Updating` condition to false, and thus `UpToDate` flips back to 
true.
 
 This process is repeated for the second and third KCP machine, finally marking 
the KCP object as up to date.
 
@@ -621,7 +621,7 @@
   },
   "desired": {
     "machineSet": { ... },
-    "infrastructureMachine"Template: { ... },
+    "infrastructureMachineTemplate": { ... },
     "bootstrapConfigTemplate": { ... },
   }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/hack/ensure-kind.sh 
new/clusterctl-1.12.1/hack/ensure-kind.sh
--- old/clusterctl-1.12.0/hack/ensure-kind.sh   2025-12-09 11:35:30.000000000 
+0100
+++ new/clusterctl-1.12.1/hack/ensure-kind.sh   2025-12-18 09:35:18.000000000 
+0100
@@ -30,7 +30,7 @@
 goos="$(go env GOOS)"
 
 # Note: When updating the MINIMUM_KIND_VERSION new shas MUST be added in 
`preBuiltMappings` at `test/infrastructure/kind/mapper.go`
-MINIMUM_KIND_VERSION=v0.30.0
+MINIMUM_KIND_VERSION=v0.31.0
 
 
 # Ensure the kind tool exists and is a viable version, or installs it
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/internal/controllers/machineset/machineset_controller.go 
new/clusterctl-1.12.1/internal/controllers/machineset/machineset_controller.go
--- 
old/clusterctl-1.12.0/internal/controllers/machineset/machineset_controller.go  
    2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/internal/controllers/machineset/machineset_controller.go  
    2025-12-18 09:35:18.000000000 +0100
@@ -1823,6 +1823,7 @@
        }
 
        if existingBootstrapConfig != nil {
+               bootstrapConfig.SetName(existingBootstrapConfig.GetName())
                bootstrapConfig.SetUID(existingBootstrapConfig.GetUID())
        }
        return bootstrapConfig, nil
@@ -1900,6 +1901,7 @@
        }
 
        if existingInfraMachine != nil {
+               infraMachine.SetName(existingInfraMachine.GetName())
                infraMachine.SetUID(existingInfraMachine.GetUID())
        }
        return infraMachine, nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/test/e2e/config/docker.yaml 
new/clusterctl-1.12.1/test/e2e/config/docker.yaml
--- old/clusterctl-1.12.0/test/e2e/config/docker.yaml   2025-12-09 
11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/e2e/config/docker.yaml   2025-12-18 
09:35:18.000000000 +0100
@@ -371,13 +371,13 @@
   # allowing the same e2e config file to be re-used in different Prow jobs 
e.g. each one with a K8s version permutation.
   # The following Kubernetes versions should be the latest versions with 
already published kindest/node images.
   # This avoids building node images in the default case which improves the 
test duration significantly.
-  KUBERNETES_VERSION_MANAGEMENT: "v1.35.0-rc.0"
-  KUBERNETES_VERSION: "v1.35.0-rc.0"
-  KUBERNETES_VERSION_CHAINED_UPGRADE_FROM: "v1.31.0" # Should always be 
KUBERNETES_VERSION_UPGRADE_TO - 4 minor
-  KUBERNETES_VERSION_UPGRADE_FROM: "v1.34.0"
-  KUBERNETES_VERSION_UPGRADE_TO: "v1.35.0-rc.0"
+  KUBERNETES_VERSION_MANAGEMENT: "v1.35.0"
+  KUBERNETES_VERSION: "v1.35.0"
+  KUBERNETES_VERSION_CHAINED_UPGRADE_FROM: "v1.31.14" # Should always be 
KUBERNETES_VERSION_UPGRADE_TO - 4 minor
+  KUBERNETES_VERSION_UPGRADE_FROM: "v1.34.3"
+  KUBERNETES_VERSION_UPGRADE_TO: "v1.35.0"
   KUBERNETES_VERSION_LATEST_CI: "ci/latest-1.35"
-  ETCD_VERSION_UPGRADE_TO: "3.6.5-0"
+  ETCD_VERSION_UPGRADE_TO: "3.6.6-0"
   COREDNS_VERSION_UPGRADE_TO: "v1.13.1"
   DOCKER_SERVICE_DOMAIN: "cluster.local"
   IP_FAMILY: "dual"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/test/framework/bootstrap/kind_provider.go 
new/clusterctl-1.12.1/test/framework/bootstrap/kind_provider.go
--- old/clusterctl-1.12.0/test/framework/bootstrap/kind_provider.go     
2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/framework/bootstrap/kind_provider.go     
2025-12-18 09:35:18.000000000 +0100
@@ -36,7 +36,7 @@
        DefaultNodeImageRepository = "kindest/node"
 
        // DefaultNodeImageVersion is the default Kubernetes version to be used 
for creating a kind cluster.
-       DefaultNodeImageVersion = 
"v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a"
+       DefaultNodeImageVersion = 
"v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f"
 )
 
 // KindClusterOption is a NewKindClusterProvider option.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/test/go.mod 
new/clusterctl-1.12.1/test/go.mod
--- old/clusterctl-1.12.0/test/go.mod   2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/go.mod   2025-12-18 09:35:18.000000000 +0100
@@ -35,7 +35,7 @@
        k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
        sigs.k8s.io/cluster-api v0.0.0-00010101000000-000000000000
        sigs.k8s.io/controller-runtime v0.22.4
-       sigs.k8s.io/kind v0.30.0
+       sigs.k8s.io/kind v0.31.0
        sigs.k8s.io/randfill v1.0.0
        sigs.k8s.io/yaml v1.6.0
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/test/go.sum 
new/clusterctl-1.12.1/test/go.sum
--- old/clusterctl-1.12.0/test/go.sum   2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/go.sum   2025-12-18 09:35:18.000000000 +0100
@@ -501,8 +501,8 @@
 sigs.k8s.io/controller-runtime v0.22.4/go.mod 
h1:+QX1XUpTXN4mLoblf4tqr5CQcyHPAki2HLXqQMY6vh8=
 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 
h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
 sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod 
h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
-sigs.k8s.io/kind v0.30.0 h1:2Xi1KFEfSMm0XDcvKnUt15ZfgRPCT0OnCBbpgh8DztY=
-sigs.k8s.io/kind v0.30.0/go.mod h1:FSqriGaoTPruiXWfRnUXNykF8r2t+fHtK0P0m1AbGF8=
+sigs.k8s.io/kind v0.31.0 h1:UcT4nzm+YM7YEbqiAKECk+b6dsvc/HRZZu9U0FolL1g=
+sigs.k8s.io/kind v0.31.0/go.mod h1:FSqriGaoTPruiXWfRnUXNykF8r2t+fHtK0P0m1AbGF8=
 sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
 sigs.k8s.io/randfill v1.0.0/go.mod 
h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
 sigs.k8s.io/structured-merge-diff/v6 v6.3.0 
h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/machine-pool.yaml 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/machine-pool.yaml
--- old/clusterctl-1.12.0/test/infrastructure/docker/examples/machine-pool.yaml 
2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/infrastructure/docker/examples/machine-pool.yaml 
2025-12-18 09:35:18.000000000 +0100
@@ -33,7 +33,7 @@
   namespace: default
 spec:
   replicas: 1
-  version: v1.35.0-rc.0
+  version: v1.35.0
   machineTemplate:
     spec:
       infrastructureRef:
@@ -80,7 +80,7 @@
   replicas: 2
   template:
     spec:
-      version: v1.35.0-rc.0
+      version: v1.35.0
       clusterName: my-cluster
       bootstrap:
         configRef:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/simple-cluster-ipv6.yaml
 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/simple-cluster-ipv6.yaml
--- 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/simple-cluster-ipv6.yaml
  2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/simple-cluster-ipv6.yaml
  2025-12-18 09:35:18.000000000 +0100
@@ -33,7 +33,7 @@
   namespace: default
 spec:
   replicas: 1
-  version: v1.35.0-rc.0
+  version: v1.35.0
   machineTemplate:
     spec:
       infrastructureRef:
@@ -92,7 +92,7 @@
       cluster.x-k8s.io/cluster-name: my-cluster
   template:
     spec:
-      version: v1.35.0-rc.0
+      version: v1.35.0
       clusterName: my-cluster
       bootstrap:
         configRef:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/simple-cluster-without-kcp.yaml
 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/simple-cluster-without-kcp.yaml
--- 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/simple-cluster-without-kcp.yaml
   2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/simple-cluster-without-kcp.yaml
   2025-12-18 09:35:18.000000000 +0100
@@ -31,7 +31,7 @@
   name: controlplane-0
   namespace: default
 spec:
-  version: v1.35.0-rc.0
+  version: v1.35.0
   clusterName: my-cluster
   bootstrap:
     configRef:
@@ -74,7 +74,7 @@
       cluster.x-k8s.io/cluster-name: my-cluster
   template:
     spec:
-      version: v1.35.0-rc.0
+      version: v1.35.0
       clusterName: my-cluster
       bootstrap:
         configRef:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/simple-cluster.yaml 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/simple-cluster.yaml
--- 
old/clusterctl-1.12.0/test/infrastructure/docker/examples/simple-cluster.yaml   
    2025-12-09 11:35:30.000000000 +0100
+++ 
new/clusterctl-1.12.1/test/infrastructure/docker/examples/simple-cluster.yaml   
    2025-12-18 09:35:18.000000000 +0100
@@ -33,7 +33,7 @@
   namespace: default
 spec:
   replicas: 1
-  version: v1.35.0-rc.0
+  version: v1.35.0
   machineTemplate:
     spec:
       infrastructureRef:
@@ -83,7 +83,7 @@
       cluster.x-k8s.io/cluster-name: my-cluster
   template:
     spec:
-      version: v1.35.0-rc.0
+      version: v1.35.0
       clusterName: my-cluster
       bootstrap:
         configRef:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/clusterctl-1.12.0/test/infrastructure/kind/mapper.go 
new/clusterctl-1.12.1/test/infrastructure/kind/mapper.go
--- old/clusterctl-1.12.0/test/infrastructure/kind/mapper.go    2025-12-09 
11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/infrastructure/kind/mapper.go    2025-12-18 
09:35:18.000000000 +0100
@@ -82,6 +82,32 @@
        // TODO: Add pre-built images for newer Kind versions on top
        // Pre-built images for Kind v0.30.
        {
+               KubernetesVersion: semver.MustParse("1.35.0"),
+               Mode:              Mode0_20,
+               Image:             
"kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f",
+       },
+       {
+               KubernetesVersion: semver.MustParse("1.34.3"),
+               Mode:              Mode0_20,
+               Image:             
"kindest/node:v1.34.3@sha256:08497ee19eace7b4b5348db5c6a1591d7752b164530a36f855cb0f2bdcbadd48",
+       },
+       {
+               KubernetesVersion: semver.MustParse("1.33.7"),
+               Mode:              Mode0_20,
+               Image:             
"kindest/node:v1.33.7@sha256:d26ef333bdb2cbe9862a0f7c3803ecc7b4303d8cea8e814b481b09949d353040",
+       },
+       {
+               KubernetesVersion: semver.MustParse("1.32.11"),
+               Mode:              Mode0_20,
+               Image:             
"kindest/node:v1.32.11@sha256:5fc52d52a7b9574015299724bd68f183702956aa4a2116ae75a63cb574b35af8",
+       },
+       {
+               KubernetesVersion: semver.MustParse("1.31.14"),
+               Mode:              Mode0_20,
+               Image:             
"kindest/node:v1.31.14@sha256:6f86cf509dbb42767b6e79debc3f2c32e4ee01386f0489b3b2be24b0a55aac2b",
+       },
+       // Pre-built images for Kind v0.30.
+       {
                KubernetesVersion: semver.MustParse("1.34.0"),
                Mode:              Mode0_20,
                Image:             
"kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/clusterctl-1.12.0/test/infrastructure/kind/mapper_test.go 
new/clusterctl-1.12.1/test/infrastructure/kind/mapper_test.go
--- old/clusterctl-1.12.0/test/infrastructure/kind/mapper_test.go       
2025-12-09 11:35:30.000000000 +0100
+++ new/clusterctl-1.12.1/test/infrastructure/kind/mapper_test.go       
2025-12-18 09:35:18.000000000 +0100
@@ -144,9 +144,10 @@
                "v1.28.0", "v1.28.6", "v1.28.7", "v1.28.9", "v1.28.12", 
"v1.28.13", "v1.28.15",
                "v1.29.0", "v1.29.1", "v1.29.2", "v1.29.4", "v1.29.7", 
"v1.29.8", "v1.29.10", "v1.29.12", "v1.29.14",
                "v1.30.0", "v1.30.3", "v1.30.4", "v1.30.6", "v1.30.8", 
"v1.30.10", "v1.30.13",
-               "v1.31.0", "v1.31.2", "v1.31.4", "v1.31.6", "v1.31.9", 
"v1.31.12",
-               "v1.32.0", "v1.32.2", "v1.32.5", "v1.32.8",
-               "v1.33.0", "v1.33.1", "v1.33.4",
-               "v1.34.0",
+               "v1.31.0", "v1.31.2", "v1.31.4", "v1.31.6", "v1.31.9", 
"v1.31.12", "v1.31.14",
+               "v1.32.0", "v1.32.2", "v1.32.5", "v1.32.8", "v1.32.11",
+               "v1.33.0", "v1.33.1", "v1.33.4", "v1.33.7",
+               "v1.34.0", "v1.34.3",
+               "v1.35.0",
        }))
 }

++++++ clusterctl.obsinfo ++++++
--- /var/tmp/diff_new_pack.Qmjnf9/_old  2025-12-19 16:48:11.167743723 +0100
+++ /var/tmp/diff_new_pack.Qmjnf9/_new  2025-12-19 16:48:11.171743891 +0100
@@ -1,5 +1,5 @@
 name: clusterctl
-version: 1.12.0
-mtime: 1765276530
-commit: b52de697d29fff53556697504c1ca68205841383
+version: 1.12.1
+mtime: 1766046918
+commit: b9b906573c236b661c2b9565be6fefcdecfc99d2
 

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

Reply via email to