Skip to content

Commit dc0fb87

Browse files
authored
Merge pull request #12721 from k8s-infra-cherrypick-robot/cherry-pick-12719-to-release-1.11
[release-1.11] 🐛 Stop adding conversion-data annotation to Cluster object
2 parents 3ec9f04 + 9dd4379 commit dc0fb87

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

bootstrap/kubeadm/types/utils.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ func marshalForVersion(obj conversion.Hub, version semver.Version, kubeadmObjVer
115115
}
116116

117117
targetKubeadmObj = targetKubeadmObj.DeepCopyObject().(conversion.Convertible)
118-
if err := targetKubeadmObj.ConvertFrom(obj); err != nil {
118+
// DeepCopy obj because ConvertFrom might have side effects.
119+
if err := targetKubeadmObj.ConvertFrom(obj.DeepCopyObject().(conversion.Hub)); err != nil {
119120
return "", errors.Wrapf(err, "failed to convert to KubeadmAPI type for version %s", kubeadmAPIGroupVersion)
120121
}
121122

exp/topology/desiredstate/desired_state.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,8 @@ func (g *generator) computeControlPlaneVersion(ctx context.Context, s *scope.Sco
547547
// hook because we didn't go through an upgrade or we already called the hook after the upgrade.
548548
if hooks.IsPending(runtimehooksv1.AfterControlPlaneUpgrade, s.Current.Cluster) {
549549
v1beta1Cluster := &clusterv1beta1.Cluster{}
550-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster); err != nil {
550+
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
551+
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
551552
return "", errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
552553
}
553554

@@ -621,7 +622,8 @@ func (g *generator) computeControlPlaneVersion(ctx context.Context, s *scope.Sco
621622
// At this point the control plane and the machine deployments are stable and we are almost ready to pick
622623
// up the desiredVersion. Call the BeforeClusterUpgrade hook before picking up the desired version.
623624
v1beta1Cluster := &clusterv1beta1.Cluster{}
624-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster); err != nil {
625+
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
626+
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
625627
return "", errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
626628
}
627629

internal/controllers/topology/cluster/cluster_controller.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,8 @@ func (r *Reconciler) callBeforeClusterCreateHook(ctx context.Context, s *scope.S
432432

433433
if !s.Current.Cluster.Spec.InfrastructureRef.IsDefined() && !s.Current.Cluster.Spec.ControlPlaneRef.IsDefined() {
434434
v1beta1Cluster := &clusterv1beta1.Cluster{}
435-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster); err != nil {
435+
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
436+
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
436437
return ctrl.Result{}, errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
437438
}
438439

@@ -525,7 +526,8 @@ func (r *Reconciler) reconcileDelete(ctx context.Context, cluster *clusterv1.Clu
525526
if feature.Gates.Enabled(feature.RuntimeSDK) {
526527
if !hooks.IsOkToDelete(cluster) {
527528
v1beta1Cluster := &clusterv1beta1.Cluster{}
528-
if err := v1beta1Cluster.ConvertFrom(cluster); err != nil {
529+
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
530+
if err := v1beta1Cluster.ConvertFrom(cluster.DeepCopy()); err != nil {
529531
return ctrl.Result{}, errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
530532
}
531533

internal/controllers/topology/cluster/reconcile_state.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ func (r *Reconciler) callAfterControlPlaneInitialized(ctx context.Context, s *sc
197197
if hooks.IsPending(runtimehooksv1.AfterControlPlaneInitialized, s.Current.Cluster) {
198198
if isControlPlaneInitialized(s.Current.Cluster) {
199199
v1beta1Cluster := &clusterv1beta1.Cluster{}
200-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster); err != nil {
200+
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
201+
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
201202
return errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
202203
}
203204

@@ -250,7 +251,8 @@ func (r *Reconciler) callAfterClusterUpgrade(ctx context.Context, s *scope.Scope
250251
!s.UpgradeTracker.MachinePools.IsAnyPendingUpgrade() && // No MachinePools are pending an upgrade
251252
!s.UpgradeTracker.MachinePools.DeferredUpgrade() { // No MachinePools have deferred an upgrade
252253
v1beta1Cluster := &clusterv1beta1.Cluster{}
253-
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster); err != nil {
254+
// DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation.
255+
if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil {
254256
return errors.Wrap(err, "error converting Cluster to v1beta1 Cluster")
255257
}
256258

0 commit comments

Comments
 (0)