Skip to content

Commit 067767a

Browse files
committed
e2e for work suspension resume
Signed-off-by: Amir Alavi <[email protected]>
1 parent 034b5d4 commit 067767a

File tree

1 file changed

+69
-15
lines changed

1 file changed

+69
-15
lines changed

Diff for: test/e2e/propagationpolicy_test.go

+69-15
Original file line numberDiff line numberDiff line change
@@ -1145,28 +1145,26 @@ var _ = ginkgo.Describe("[Suspend] PropagationPolicy testing", func() {
11451145
ClusterNames: []string{targetMember},
11461146
},
11471147
})
1148+
policy.Spec.Suspension = &policyv1alpha1.Suspension{
1149+
Dispatching: ptr.To(true),
1150+
}
11481151
})
11491152

11501153
ginkgo.BeforeEach(func() {
1154+
framework.CreatePropagationPolicy(karmadaClient, policy)
11511155
framework.CreateDeployment(kubeClient, deployment)
1152-
ginkgo.DeferCleanup(func() {
1153-
framework.RemoveDeployment(kubeClient, deployment.Namespace, deployment.Name)
1154-
})
11551156
})
11561157

11571158
ginkgo.Context("suspend the PropagationPolicy dispatching", func() {
1158-
ginkgo.BeforeEach(func() {
1159-
policy.Spec.Suspension = &policyv1alpha1.Suspension{
1160-
Dispatching: ptr.To(true),
1161-
}
1162-
1163-
framework.CreatePropagationPolicy(karmadaClient, policy)
1159+
ginkgo.AfterEach(func() {
1160+
framework.RemoveDeployment(kubeClient, deployment.Namespace, deployment.Name)
11641161
})
11651162

11661163
ginkgo.It("suspends ResourceBinding", func() {
1167-
framework.WaitResourceBindingFitWith(karmadaClient, deployment.Namespace, names.GenerateBindingName(deployment.Kind, deployment.Name), func(binding *workv1alpha2.ResourceBinding) bool {
1168-
return binding.Spec.Suspension != nil && ptr.Deref(binding.Spec.Suspension.Dispatching, false)
1169-
})
1164+
framework.WaitResourceBindingFitWith(karmadaClient, deployment.Namespace, names.GenerateBindingName(deployment.Kind, deployment.Name),
1165+
func(binding *workv1alpha2.ResourceBinding) bool {
1166+
return binding.Spec.Suspension != nil && ptr.Deref(binding.Spec.Suspension.Dispatching, false)
1167+
})
11701168
})
11711169

11721170
ginkgo.It("suspends Work", func() {
@@ -1196,9 +1194,65 @@ var _ = ginkgo.Describe("[Suspend] PropagationPolicy testing", func() {
11961194
ginkgo.It("adds dispatching event with suspend message", func() {
11971195
workName := names.GenerateWorkName(deployment.Kind, deployment.Name, deployment.Namespace)
11981196
esName := names.GenerateExecutionSpaceName(targetMember)
1199-
framework.WaitEventFitWith(kubeClient, esName, workName, func(event corev1.Event) bool {
1200-
return event.Reason == events.EventReasonWorkDispatching &&
1201-
event.Message == execution.WorkSuspendDispatchingConditionMessage
1197+
framework.WaitEventFitWith(kubeClient, esName, workName,
1198+
func(event corev1.Event) bool {
1199+
return event.Reason == events.EventReasonWorkDispatching &&
1200+
event.Message == execution.WorkSuspendDispatchingConditionMessage
1201+
})
1202+
})
1203+
})
1204+
1205+
ginkgo.Context("delete resource in the control plane", func() {
1206+
ginkgo.JustBeforeEach(func() {
1207+
framework.RemoveDeployment(kubeClient, deployment.Namespace, deployment.Name)
1208+
})
1209+
1210+
ginkgo.It("suspends deleting deployment in member cluster", func() {
1211+
framework.WaitDeploymentPresentOnClusterFitWith(targetMember, deployment.Namespace, deployment.Name,
1212+
func(*appsv1.Deployment) bool {
1213+
return true
1214+
})
1215+
})
1216+
1217+
ginkgo.When("propagation is resumed", func() {
1218+
ginkgo.JustBeforeEach(func() {
1219+
policy.Spec.Suspension = &policyv1alpha1.Suspension{}
1220+
framework.UpdatePropagationPolicyWithSpec(karmadaClient, policy.Namespace, policy.Name, policy.Spec)
1221+
})
1222+
1223+
ginkgo.It("deletes deployment in member cluster", func() {
1224+
framework.WaitDeploymentDisappearOnCluster(targetMember, deployment.Namespace, deployment.Name)
1225+
})
1226+
})
1227+
})
1228+
1229+
ginkgo.Context("update resource in the control plane", func() {
1230+
ginkgo.JustBeforeEach(func() {
1231+
framework.UpdateDeploymentReplicas(kubeClient, deployment, updateDeploymentReplicas)
1232+
})
1233+
1234+
ginkgo.AfterEach(func() {
1235+
framework.RemoveDeployment(kubeClient, deployment.Namespace, deployment.Name)
1236+
})
1237+
1238+
ginkgo.It("suspends updating deployment replicas in member cluster", func() {
1239+
framework.WaitDeploymentPresentOnClusterFitWith(targetMember, deployment.Namespace, deployment.Name,
1240+
func(d *appsv1.Deployment) bool {
1241+
return *d.Spec.Replicas != updateDeploymentReplicas
1242+
})
1243+
})
1244+
1245+
ginkgo.When("propagation is resumed", func() {
1246+
ginkgo.JustBeforeEach(func() {
1247+
policy.Spec.Suspension = &policyv1alpha1.Suspension{}
1248+
framework.UpdatePropagationPolicyWithSpec(karmadaClient, policy.Namespace, policy.Name, policy.Spec)
1249+
})
1250+
1251+
ginkgo.It("updates deployment replicas in member cluster", func() {
1252+
framework.WaitDeploymentPresentOnClusterFitWith(targetMember, deployment.Namespace, deployment.Name,
1253+
func(d *appsv1.Deployment) bool {
1254+
return *d.Spec.Replicas == updateDeploymentReplicas
1255+
})
12021256
})
12031257
})
12041258
})

0 commit comments

Comments
 (0)