Skip to content

Commit 9978539

Browse files
authored
Merge pull request #3058 from jackfrancis/aks-e2e-get-update-as-transaction
Always run AKS E2E get+update as transaction
2 parents 735b35a + da974c3 commit 9978539

File tree

6 files changed

+134
-100
lines changed

6 files changed

+134
-100
lines changed

test/e2e/aks_autoscaler.go

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -73,24 +73,26 @@ func AKSAutoscaleSpec(ctx context.Context, inputGetter func() AKSAutoscaleSpecIn
7373
}
7474

7575
toggleAutoscaling := func() {
76-
err = mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)
77-
Expect(err).NotTo(HaveOccurred())
78-
79-
enabled := ammp.Spec.Scaling != nil
80-
var enabling string
81-
if enabled {
82-
enabling = "Disabling"
83-
ammp.Spec.Scaling = nil
84-
} else {
85-
enabling = "Enabling"
86-
ammp.Spec.Scaling = &infrav1.ManagedMachinePoolScaling{
87-
MinSize: to.Int32Ptr(1),
88-
MaxSize: to.Int32Ptr(2),
76+
Eventually(func(g Gomega) {
77+
err = mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)
78+
g.Expect(err).NotTo(HaveOccurred())
79+
80+
enabled := ammp.Spec.Scaling != nil
81+
var enabling string
82+
if enabled {
83+
enabling = "Disabling"
84+
ammp.Spec.Scaling = nil
85+
} else {
86+
enabling = "Enabling"
87+
ammp.Spec.Scaling = &infrav1.ManagedMachinePoolScaling{
88+
MinSize: to.Int32Ptr(1),
89+
MaxSize: to.Int32Ptr(2),
90+
}
8991
}
90-
}
91-
By(enabling + " autoscaling")
92-
err = mgmtClient.Update(ctx, ammp)
93-
Expect(err).NotTo(HaveOccurred())
92+
By(enabling + " autoscaling")
93+
err = mgmtClient.Update(ctx, ammp)
94+
g.Expect(err).NotTo(HaveOccurred())
95+
}, inputGetter().WaitIntervals...).Should(Succeed())
9496
}
9597

9698
validateUntoggled := validateAKSAutoscaleDisabled

test/e2e/aks_azure_cluster_autoscaler.go

Lines changed: 53 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -50,46 +50,60 @@ func AKSAzureClusterAutoscalerSettingsSpec(ctx context.Context, inputGetter func
5050
containerserviceClient := containerservice.NewManagedClustersClient(subscriptionID)
5151
containerserviceClient.Authorizer = auth
5252

53-
amcp := &infrav1.AzureManagedControlPlane{}
54-
err = mgmtClient.Get(ctx, types.NamespacedName{
55-
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
56-
Name: input.Cluster.Spec.ControlPlaneRef.Name,
57-
}, amcp)
58-
Expect(err).NotTo(HaveOccurred())
59-
amcpInitialAutoScalerProfile := amcp.Spec.AutoScalerProfile
60-
61-
aks, err := containerserviceClient.Get(ctx, amcp.Spec.ResourceGroupName, amcp.Name)
62-
Expect(err).NotTo(HaveOccurred())
63-
aksInitialAutoScalerProfile := aks.AutoScalerProfile
64-
6553
var expectedAksExpander containerservice.Expander
6654
var newExpanderValue infrav1.Expander
67-
// Conditional is based off of the actual AKS settings not the AzureManagedControlPlane
68-
if aksInitialAutoScalerProfile == nil {
69-
expectedAksExpander = containerservice.ExpanderLeastWaste
70-
newExpanderValue = infrav1.ExpanderLeastWaste
71-
} else if aksInitialAutoScalerProfile.Expander == containerservice.ExpanderLeastWaste {
72-
expectedAksExpander = containerservice.ExpanderMostPods
73-
newExpanderValue = infrav1.ExpanderMostPods
74-
}
75-
76-
amcp.Spec.AutoScalerProfile = nil
77-
Expect(mgmtClient.Update(ctx, amcp)).To(Succeed())
55+
var amcpInitialAutoScalerProfile = &infrav1.AutoScalerProfile{}
56+
amcp := &infrav1.AzureManagedControlPlane{}
7857
Eventually(func(g Gomega) {
79-
amcp := &infrav1.AzureManagedControlPlane{}
8058
err = mgmtClient.Get(ctx, types.NamespacedName{
8159
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
8260
Name: input.Cluster.Spec.ControlPlaneRef.Name,
8361
}, amcp)
84-
Expect(err).NotTo(HaveOccurred())
62+
g.Expect(err).NotTo(HaveOccurred())
63+
amcpInitialAutoScalerProfile = amcp.Spec.AutoScalerProfile
64+
65+
aks, err := containerserviceClient.Get(ctx, amcp.Spec.ResourceGroupName, amcp.Name)
66+
g.Expect(err).NotTo(HaveOccurred())
67+
aksInitialAutoScalerProfile := aks.AutoScalerProfile
68+
69+
// Conditional is based off of the actual AKS settings not the AzureManagedControlPlane
70+
if aksInitialAutoScalerProfile == nil {
71+
expectedAksExpander = containerservice.ExpanderLeastWaste
72+
newExpanderValue = infrav1.ExpanderLeastWaste
73+
} else if aksInitialAutoScalerProfile.Expander == containerservice.ExpanderLeastWaste {
74+
expectedAksExpander = containerservice.ExpanderMostPods
75+
newExpanderValue = infrav1.ExpanderMostPods
76+
}
77+
78+
amcp.Spec.AutoScalerProfile = nil
79+
err = mgmtClient.Get(ctx, types.NamespacedName{
80+
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
81+
Name: input.Cluster.Spec.ControlPlaneRef.Name,
82+
}, amcp)
83+
g.Expect(err).NotTo(HaveOccurred())
84+
g.Expect(mgmtClient.Update(ctx, amcp)).To(Succeed())
85+
}, input.WaitIntervals...).Should(Succeed())
86+
Eventually(func(g Gomega) {
87+
err = mgmtClient.Get(ctx, types.NamespacedName{
88+
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
89+
Name: input.Cluster.Spec.ControlPlaneRef.Name,
90+
}, amcp)
91+
g.Expect(err).NotTo(HaveOccurred())
8592
g.Expect(amcp.Spec.AutoScalerProfile).To(BeNil())
8693
}, input.WaitIntervals...).Should(Succeed())
8794

8895
// Now set to the new value
89-
amcp.Spec.AutoScalerProfile = &infrav1.AutoScalerProfile{
90-
Expander: (*infrav1.Expander)(to.StringPtr(string(newExpanderValue))),
91-
}
92-
Expect(mgmtClient.Update(ctx, amcp)).To(Succeed())
96+
Eventually(func(g Gomega) {
97+
err = mgmtClient.Get(ctx, types.NamespacedName{
98+
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
99+
Name: input.Cluster.Spec.ControlPlaneRef.Name,
100+
}, amcp)
101+
g.Expect(err).NotTo(HaveOccurred())
102+
amcp.Spec.AutoScalerProfile = &infrav1.AutoScalerProfile{
103+
Expander: (*infrav1.Expander)(to.StringPtr(string(newExpanderValue))),
104+
}
105+
g.Expect(mgmtClient.Update(ctx, amcp)).To(Succeed())
106+
}, input.WaitIntervals...).Should(Succeed())
93107
By("Verifying the cluster-autoscaler settings have changed")
94108
Eventually(func(g Gomega) {
95109
// Check that the autoscaler settings have been sync'd to AKS
@@ -99,22 +113,21 @@ func AKSAzureClusterAutoscalerSettingsSpec(ctx context.Context, inputGetter func
99113
g.Expect(aks.AutoScalerProfile.Expander).To(Equal(expectedAksExpander))
100114
}, input.WaitIntervals...).Should(Succeed())
101115

102-
amcp = &infrav1.AzureManagedControlPlane{}
103-
err = mgmtClient.Get(ctx, types.NamespacedName{
104-
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
105-
Name: input.Cluster.Spec.ControlPlaneRef.Name,
106-
}, amcp)
107-
Expect(err).NotTo(HaveOccurred())
108-
amcp.Spec.AutoScalerProfile = amcpInitialAutoScalerProfile
109-
110-
Expect(mgmtClient.Update(ctx, amcp)).To(Succeed())
111116
Eventually(func(g Gomega) {
112-
amcp := &infrav1.AzureManagedControlPlane{}
113117
err = mgmtClient.Get(ctx, types.NamespacedName{
114118
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
115119
Name: input.Cluster.Spec.ControlPlaneRef.Name,
116120
}, amcp)
117-
Expect(err).NotTo(HaveOccurred())
121+
g.Expect(err).NotTo(HaveOccurred())
122+
amcp.Spec.AutoScalerProfile = amcpInitialAutoScalerProfile
123+
g.Expect(mgmtClient.Update(ctx, amcp)).To(Succeed())
124+
}, input.WaitIntervals...).Should(Succeed())
125+
Eventually(func(g Gomega) {
126+
err = mgmtClient.Get(ctx, types.NamespacedName{
127+
Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace,
128+
Name: input.Cluster.Spec.ControlPlaneRef.Name,
129+
}, amcp)
130+
g.Expect(err).NotTo(HaveOccurred())
118131
g.Expect(amcp.Spec.AutoScalerProfile).To(Equal(amcpInitialAutoScalerProfile))
119132
}, input.WaitIntervals...).Should(Succeed())
120133
}

test/e2e/aks_public_ip_prefix.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,13 @@ func AKSPublicIPPrefixSpec(ctx context.Context, inputGetter func() AKSPublicIPPr
154154
}, input.WaitIntervals...).Should(Succeed())
155155

156156
By("Scaling the MachinePool to 2 nodes")
157-
err = mgmtClient.Get(ctx, client.ObjectKeyFromObject(machinePool), machinePool)
158-
Expect(err).NotTo(HaveOccurred())
159-
machinePool.Spec.Replicas = to.Int32Ptr(2)
160-
err = mgmtClient.Update(ctx, machinePool)
161-
Expect(err).NotTo(HaveOccurred())
157+
Eventually(func(g Gomega) {
158+
err = mgmtClient.Get(ctx, client.ObjectKeyFromObject(machinePool), machinePool)
159+
g.Expect(err).NotTo(HaveOccurred())
160+
machinePool.Spec.Replicas = to.Int32Ptr(2)
161+
err = mgmtClient.Update(ctx, machinePool)
162+
g.Expect(err).NotTo(HaveOccurred())
163+
}, input.WaitIntervals...).Should(Succeed())
162164

163165
By("Verifying the AzureManagedMachinePool becomes ready")
164166
Eventually(func(g Gomega) {

test/e2e/aks_tags.go

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -87,36 +87,45 @@ func AKSAdditionalTagsSpec(ctx context.Context, inputGetter func() AKSAdditional
8787

8888
By("Deleting all tags for control plane")
8989
expectedTags = nil
90-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
91-
initialTags := infraControlPlane.Spec.AdditionalTags
92-
infraControlPlane.Spec.AdditionalTags = expectedTags
93-
Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
90+
var initialTags infrav1.Tags
91+
Eventually(func(g Gomega) {
92+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
93+
initialTags = infraControlPlane.Spec.AdditionalTags
94+
infraControlPlane.Spec.AdditionalTags = expectedTags
95+
g.Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
96+
}, inputGetter().WaitForUpdate...).Should(Succeed())
9497
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
9598

9699
By("Creating tags for control plane")
97100
expectedTags = infrav1.Tags{
98101
"test": "tag",
99102
"another": "value",
100103
}
101-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
102-
infraControlPlane.Spec.AdditionalTags = expectedTags
103-
Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
104+
Eventually(func(g Gomega) {
105+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
106+
infraControlPlane.Spec.AdditionalTags = expectedTags
107+
g.Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
108+
}, inputGetter().WaitForUpdate...).Should(Succeed())
104109
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
105110

106111
By("Updating tags for control plane")
107112
expectedTags["test"] = "updated"
108113
delete(expectedTags, "another")
109114
expectedTags["new"] = "value"
110-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
111-
infraControlPlane.Spec.AdditionalTags = expectedTags
112-
Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
115+
Eventually(func(g Gomega) {
116+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
117+
infraControlPlane.Spec.AdditionalTags = expectedTags
118+
g.Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
119+
}, inputGetter().WaitForUpdate...).Should(Succeed())
113120
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
114121

115122
By("Restoring initial tags for control plane")
116123
expectedTags = initialTags
117-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
118-
infraControlPlane.Spec.AdditionalTags = expectedTags
119-
Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
124+
Eventually(func(g Gomega) {
125+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(infraControlPlane), infraControlPlane)).To(Succeed())
126+
infraControlPlane.Spec.AdditionalTags = expectedTags
127+
g.Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
128+
}, inputGetter().WaitForUpdate...).Should(Succeed())
120129
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
121130
}()
122131

@@ -146,36 +155,45 @@ func AKSAdditionalTagsSpec(ctx context.Context, inputGetter func() AKSAdditional
146155

147156
Byf("Deleting all tags for machine pool %s", mp.Name)
148157
expectedTags = nil
149-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
150-
initialTags := ammp.Spec.AdditionalTags
151-
ammp.Spec.AdditionalTags = expectedTags
152-
Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
158+
var initialTags infrav1.Tags
159+
Eventually(func(g Gomega) {
160+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
161+
initialTags = ammp.Spec.AdditionalTags
162+
ammp.Spec.AdditionalTags = expectedTags
163+
g.Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
164+
}, inputGetter().WaitForUpdate...).Should(Succeed())
153165
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
154166

155167
Byf("Creating tags for machine pool %s", mp.Name)
156168
expectedTags = infrav1.Tags{
157169
"test": "tag",
158170
"another": "value",
159171
}
160-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
161-
ammp.Spec.AdditionalTags = expectedTags
162-
Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
172+
Eventually(func(g Gomega) {
173+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
174+
ammp.Spec.AdditionalTags = expectedTags
175+
g.Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
176+
}, inputGetter().WaitForUpdate...).Should(Succeed())
163177
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
164178

165179
Byf("Updating tags for machine pool %s", mp.Name)
166180
expectedTags["test"] = "updated"
167181
delete(expectedTags, "another")
168182
expectedTags["new"] = "value"
169-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
170-
ammp.Spec.AdditionalTags = expectedTags
171-
Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
183+
Eventually(func(g Gomega) {
184+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
185+
ammp.Spec.AdditionalTags = expectedTags
186+
g.Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
187+
}, inputGetter().WaitForUpdate...).Should(Succeed())
172188
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
173189

174190
Byf("Restoring initial tags for machine pool %s", mp.Name)
175191
expectedTags = initialTags
176-
Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
177-
ammp.Spec.AdditionalTags = expectedTags
178-
Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
192+
Eventually(func(g Gomega) {
193+
g.Expect(mgmtClient.Get(ctx, client.ObjectKeyFromObject(ammp), ammp)).To(Succeed())
194+
ammp.Spec.AdditionalTags = expectedTags
195+
g.Expect(mgmtClient.Update(ctx, ammp)).To(Succeed())
196+
}, inputGetter().WaitForUpdate...).Should(Succeed())
179197
Eventually(checkTags, input.WaitForUpdate...).Should(Succeed())
180198
}(mp)
181199
}

test/e2e/aks_upgrade.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,14 @@ func AKSUpgradeSpec(ctx context.Context, inputGetter func() AKSUpgradeSpecInput)
5858
mgmtClient := bootstrapClusterProxy.GetClient()
5959
Expect(mgmtClient).NotTo(BeNil())
6060

61-
infraControlPlane := &infrav1.AzureManagedControlPlane{}
62-
err = mgmtClient.Get(ctx, client.ObjectKey{Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace, Name: input.Cluster.Spec.ControlPlaneRef.Name}, infraControlPlane)
63-
Expect(err).NotTo(HaveOccurred())
64-
6561
By("Upgrading the control plane")
66-
infraControlPlane.Spec.Version = input.KubernetesVersionUpgradeTo
67-
Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
62+
var infraControlPlane = &infrav1.AzureManagedControlPlane{}
63+
Eventually(func(g Gomega) {
64+
err = mgmtClient.Get(ctx, client.ObjectKey{Namespace: input.Cluster.Spec.ControlPlaneRef.Namespace, Name: input.Cluster.Spec.ControlPlaneRef.Name}, infraControlPlane)
65+
g.Expect(err).NotTo(HaveOccurred())
66+
infraControlPlane.Spec.Version = input.KubernetesVersionUpgradeTo
67+
g.Expect(mgmtClient.Update(ctx, infraControlPlane)).To(Succeed())
68+
}, inputGetter().WaitForControlPlane...).Should(Succeed())
6869

6970
Eventually(func() (string, error) {
7071
aksCluster, err := managedClustersClient.Get(ctx, infraControlPlane.Spec.ResourceGroupName, infraControlPlane.Name)

test/e2e/azure_machinepool_drain.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,11 @@ func labelNodesWithMachinePoolName(ctx context.Context, workloadClient client.Cl
176176
}, n)
177177
if err != nil {
178178
LogWarning(err.Error())
179+
return err
179180
}
180-
return err
181-
}, waitforResourceOperationTimeout, 3*time.Second).Should(Succeed())
182-
n.Labels[clusterv1.OwnerKindAnnotation] = "MachinePool"
183-
n.Labels[clusterv1.OwnerNameAnnotation] = mpName
184-
Eventually(func() error {
185-
err := workloadClient.Update(ctx, n)
181+
n.Labels[clusterv1.OwnerKindAnnotation] = "MachinePool"
182+
n.Labels[clusterv1.OwnerNameAnnotation] = mpName
183+
err = workloadClient.Update(ctx, n)
186184
if err != nil {
187185
LogWarning(err.Error())
188186
}

0 commit comments

Comments
 (0)