Skip to content

Commit c4d5f12

Browse files
committed
RB suspension: e2e test
Signed-off-by: Monokaix <[email protected]>
1 parent 3fb2c6a commit c4d5f12

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

Diff for: test/e2e/clusterpropagationpolicy_test.go

+36
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/onsi/ginkgo/v2"
2525
"github.com/onsi/gomega"
2626
appsv1 "k8s.io/api/apps/v1"
27+
corev1 "k8s.io/api/core/v1"
2728
rbacv1 "k8s.io/api/rbac/v1"
2829
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2930
"k8s.io/apimachinery/pkg/api/meta"
@@ -37,6 +38,8 @@ import (
3738
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
3839
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
3940
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
41+
"github.com/karmada-io/karmada/pkg/controllers/binding"
42+
"github.com/karmada-io/karmada/pkg/events"
4043
"github.com/karmada-io/karmada/pkg/util/helper"
4144
"github.com/karmada-io/karmada/pkg/util/names"
4245
"github.com/karmada-io/karmada/test/e2e/framework"
@@ -1150,4 +1153,37 @@ var _ = ginkgo.Describe("[Suspension] ClusterPropagationPolicy testing", func()
11501153
}, pollTimeout, pollInterval).Should(gomega.Equal(true))
11511154
})
11521155
})
1156+
1157+
ginkgo.It("suspend the CPP scheduling", func() {
1158+
ginkgo.By("update the cpp suspension scheduling to true", func() {
1159+
policy.Spec.Suspension = &policyv1alpha1.Suspension{
1160+
Scheduling: ptr.To(true),
1161+
}
1162+
framework.UpdateClusterPropagationPolicyWithSpec(karmadaClient, policy.Name, policy.Spec)
1163+
})
1164+
1165+
ginkgo.By("check CRB suspension spec", func() {
1166+
framework.WaitClusterResourceBindingFitWith(karmadaClient, resourceBindingName, func(binding *workv1alpha2.ClusterResourceBinding) bool {
1167+
return binding.Spec.Suspension != nil && ptr.Deref(binding.Spec.Suspension.Scheduling, false)
1168+
})
1169+
})
1170+
1171+
ginkgo.By("check Work Scheduling status condition", func() {
1172+
gomega.Eventually(func() bool {
1173+
crb, err := karmadaClient.WorkV1alpha2().ClusterResourceBindings().Get(context.TODO(), resourceBindingName, metav1.GetOptions{})
1174+
if err != nil {
1175+
return false
1176+
}
1177+
return crb != nil && meta.IsStatusConditionPresentAndEqual(crb.Status.Conditions, workv1alpha2.Suspended, metav1.ConditionTrue)
1178+
}, pollTimeout, pollInterval).Should(gomega.Equal(true))
1179+
})
1180+
1181+
ginkgo.By("check scheduling event", func() {
1182+
framework.WaitEventFitWith(kubeClient, "", resourceBindingName,
1183+
func(event corev1.Event) bool {
1184+
return event.Reason == events.EventReasonBindingScheduling &&
1185+
event.Message == binding.SuspendedSchedulingConditionMessage
1186+
})
1187+
})
1188+
})
11531189
})

Diff for: test/e2e/propagationpolicy_test.go

+37
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import (
4444
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
4545
workv1alpha1 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha1"
4646
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
47+
"github.com/karmada-io/karmada/pkg/controllers/binding"
4748
"github.com/karmada-io/karmada/pkg/controllers/execution"
4849
"github.com/karmada-io/karmada/pkg/events"
4950
"github.com/karmada-io/karmada/pkg/util/helper"
@@ -1246,6 +1247,42 @@ var _ = ginkgo.Describe("[Suspension] PropagationPolicy testing", func() {
12461247
})
12471248
})
12481249

1250+
ginkgo.It("suspend the PP scheduling", func() {
1251+
ginkgo.By("update the pp suspension scheduling to true", func() {
1252+
policy.Spec.Suspension = &policyv1alpha1.Suspension{
1253+
Scheduling: ptr.To(true),
1254+
}
1255+
framework.UpdatePropagationPolicyWithSpec(karmadaClient, policy.Namespace, policy.Name, policy.Spec)
1256+
})
1257+
1258+
ginkgo.By("check RB suspension spec", func() {
1259+
framework.WaitResourceBindingFitWith(karmadaClient, deployment.Namespace, names.GenerateBindingName(deployment.Kind, deployment.Name),
1260+
func(binding *workv1alpha2.ResourceBinding) bool {
1261+
return binding.Spec.Suspension != nil && ptr.Deref(binding.Spec.Suspension.Scheduling, false)
1262+
})
1263+
})
1264+
1265+
ginkgo.By("check RB Scheduling status condition", func() {
1266+
rbName := names.GenerateBindingName(deployment.Kind, deployment.Name)
1267+
gomega.Eventually(func() bool {
1268+
rb, err := karmadaClient.WorkV1alpha2().ResourceBindings(testNamespace).Get(context.TODO(), rbName, metav1.GetOptions{})
1269+
if err != nil {
1270+
return false
1271+
}
1272+
return rb != nil && meta.IsStatusConditionPresentAndEqual(rb.Status.Conditions, workv1alpha2.Suspended, metav1.ConditionTrue)
1273+
}, pollTimeout, pollInterval).Should(gomega.Equal(true))
1274+
})
1275+
1276+
ginkgo.By("check scheduling event", func() {
1277+
rbName := names.GenerateBindingName(deployment.Kind, deployment.Name)
1278+
framework.WaitEventFitWith(kubeClient, testNamespace, rbName,
1279+
func(event corev1.Event) bool {
1280+
return event.Reason == events.EventReasonBindingScheduling &&
1281+
event.Message == binding.SuspendedSchedulingConditionMessage
1282+
})
1283+
})
1284+
})
1285+
12491286
ginkgo.It("suspension resume", func() {
12501287
ginkgo.By("update deployment replicas", func() {
12511288
framework.UpdateDeploymentReplicas(kubeClient, deployment, updateDeploymentReplicas)

0 commit comments

Comments
 (0)