Skip to content

Commit ee37fc7

Browse files
authored
Merge pull request #5662 from nojnhuh/asoapi-version-match
Match AzureASOManaged references on group and kind, not version
2 parents 3a6e211 + f8cc719 commit ee37fc7

8 files changed

+17
-11
lines changed

controllers/agentpooladopt_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func (r *AgentPoolAdoptReconciler) Reconcile(ctx context.Context, req ctrl.Reque
8484
}
8585

8686
for _, owner := range agentPool.GetOwnerReferences() {
87-
if owner.APIVersion == infrav1alpha.GroupVersion.Identifier() &&
87+
if matchesASOManagedAPIGroup(owner.APIVersion) &&
8888
owner.Kind == infrav1alpha.AzureASOManagedMachinePoolKind {
8989
return ctrl.Result{}, nil
9090
}
@@ -126,7 +126,7 @@ func (r *AgentPoolAdoptReconciler) Reconcile(ctx context.Context, req ctrl.Reque
126126
}
127127
var managedControlPlaneOwner *metav1.OwnerReference
128128
for _, owner := range managedCluster.GetOwnerReferences() {
129-
if owner.APIVersion == infrav1alpha.GroupVersion.Identifier() &&
129+
if matchesASOManagedAPIGroup(owner.APIVersion) &&
130130
owner.Kind == infrav1alpha.AzureASOManagedControlPlaneKind &&
131131
owner.Name == agentPool.Owner().Name {
132132
managedControlPlaneOwner = ptr.To(owner)

controllers/azureasomanagedcluster_controller.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2525
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
26+
"k8s.io/apimachinery/pkg/runtime/schema"
2627
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2728
"sigs.k8s.io/cluster-api/controllers/external"
2829
"sigs.k8s.io/cluster-api/util"
@@ -145,7 +146,7 @@ func asoManagedControlPlaneToManagedClusterMap(c client.Client) handler.MapFunc
145146

146147
if cluster == nil ||
147148
cluster.Spec.InfrastructureRef == nil ||
148-
cluster.Spec.InfrastructureRef.APIVersion != infrav1alpha.GroupVersion.Identifier() ||
149+
!matchesASOManagedAPIGroup(cluster.Spec.InfrastructureRef.APIVersion) ||
149150
cluster.Spec.InfrastructureRef.Kind != infrav1alpha.AzureASOManagedClusterKind {
150151
return nil
151152
}
@@ -161,6 +162,11 @@ func asoManagedControlPlaneToManagedClusterMap(c client.Client) handler.MapFunc
161162
}
162163
}
163164

165+
func matchesASOManagedAPIGroup(apiVersion string) bool {
166+
gv, _ := schema.ParseGroupVersion(apiVersion)
167+
return gv.Group == infrav1alpha.GroupVersion.Group
168+
}
169+
164170
//+kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io,resources=azureasomanagedclusters,verbs=get;list;watch;create;update;patch;delete
165171
//+kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io,resources=azureasomanagedclusters/status,verbs=get;update;patch
166172
//+kubebuilder:rbac:groups=infrastructure.cluster.x-k8s.io,resources=azureasomanagedclusters/finalizers,verbs=update
@@ -224,7 +230,7 @@ func (r *AzureASOManagedClusterReconciler) reconcileNormal(ctx context.Context,
224230
return ctrl.Result{}, nil
225231
}
226232
if cluster.Spec.ControlPlaneRef == nil ||
227-
cluster.Spec.ControlPlaneRef.APIVersion != infrav1alpha.GroupVersion.Identifier() ||
233+
!matchesASOManagedAPIGroup(cluster.Spec.ControlPlaneRef.APIVersion) ||
228234
cluster.Spec.ControlPlaneRef.Kind != infrav1alpha.AzureASOManagedControlPlaneKind {
229235
return ctrl.Result{}, reconcile.TerminalError(errInvalidControlPlaneKind)
230236
}

controllers/azureasomanagedcluster_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ func TestAzureASOManagedClusterReconcile(t *testing.T) {
130130
},
131131
Spec: clusterv1.ClusterSpec{
132132
ControlPlaneRef: &corev1.ObjectReference{
133-
APIVersion: infrav1alpha.GroupVersion.Identifier(),
133+
APIVersion: "infrastructure.cluster.x-k8s.io/v1somethingelse",
134134
Kind: infrav1alpha.AzureASOManagedControlPlaneKind,
135135
},
136136
},

controllers/azureasomanagedcontrolplane_controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func (r *AzureASOManagedControlPlaneReconciler) SetupWithManager(ctx context.Con
114114
func clusterToAzureASOManagedControlPlane(_ context.Context, o client.Object) []ctrl.Request {
115115
controlPlaneRef := o.(*clusterv1.Cluster).Spec.ControlPlaneRef
116116
if controlPlaneRef != nil &&
117-
controlPlaneRef.APIVersion == infrav1alpha.GroupVersion.Identifier() &&
117+
matchesASOManagedAPIGroup(controlPlaneRef.APIVersion) &&
118118
controlPlaneRef.Kind == infrav1alpha.AzureASOManagedControlPlaneKind {
119119
return []ctrl.Request{{NamespacedName: client.ObjectKey{Namespace: controlPlaneRef.Namespace, Name: controlPlaneRef.Name}}}
120120
}
@@ -198,7 +198,7 @@ func (r *AzureASOManagedControlPlaneReconciler) reconcileNormal(ctx context.Cont
198198
return ctrl.Result{}, nil
199199
}
200200
if cluster.Spec.InfrastructureRef == nil ||
201-
cluster.Spec.InfrastructureRef.APIVersion != infrav1alpha.GroupVersion.Identifier() ||
201+
!matchesASOManagedAPIGroup(cluster.Spec.InfrastructureRef.APIVersion) ||
202202
cluster.Spec.InfrastructureRef.Kind != infrav1alpha.AzureASOManagedClusterKind {
203203
return ctrl.Result{}, reconcile.TerminalError(errInvalidClusterKind)
204204
}

controllers/azureasomanagedcontrolplane_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ func TestAzureASOManagedControlPlaneReconcile(t *testing.T) {
112112
},
113113
Spec: clusterv1.ClusterSpec{
114114
InfrastructureRef: &corev1.ObjectReference{
115-
APIVersion: infrav1alpha.GroupVersion.Identifier(),
115+
APIVersion: "infrastructure.cluster.x-k8s.io/v1somethingelse",
116116
Kind: infrav1alpha.AzureASOManagedClusterKind,
117117
},
118118
},

controllers/azureasomanagedmachinepool_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func (r *AzureASOManagedMachinePoolReconciler) Reconcile(ctx context.Context, re
185185
return ctrl.Result{}, nil
186186
}
187187
if cluster.Spec.ControlPlaneRef == nil ||
188-
cluster.Spec.ControlPlaneRef.APIVersion != infrav1alpha.GroupVersion.Identifier() ||
188+
!matchesASOManagedAPIGroup(cluster.Spec.ControlPlaneRef.APIVersion) ||
189189
cluster.Spec.ControlPlaneRef.Kind != infrav1alpha.AzureASOManagedControlPlaneKind {
190190
return ctrl.Result{}, reconcile.TerminalError(fmt.Errorf("AzureASOManagedMachinePool cannot be used without AzureASOManagedControlPlane"))
191191
}

controllers/azureasomanagedmachinepool_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func TestAzureASOManagedMachinePoolReconcile(t *testing.T) {
157157
},
158158
Spec: clusterv1.ClusterSpec{
159159
ControlPlaneRef: &corev1.ObjectReference{
160-
APIVersion: infrav1alpha.GroupVersion.Identifier(),
160+
APIVersion: "infrastructure.cluster.x-k8s.io/v1somethingelse",
161161
Kind: infrav1alpha.AzureASOManagedControlPlaneKind,
162162
},
163163
},

controllers/managedclusteradopt_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func (r *ManagedClusterAdoptReconciler) Reconcile(ctx context.Context, req ctrl.
8888
}
8989

9090
for _, owner := range managedCluster.GetOwnerReferences() {
91-
if owner.APIVersion == infrav1alpha.GroupVersion.Identifier() &&
91+
if matchesASOManagedAPIGroup(owner.APIVersion) &&
9292
owner.Kind == infrav1alpha.AzureASOManagedControlPlaneKind {
9393
return ctrl.Result{}, nil
9494
}

0 commit comments

Comments
 (0)