Skip to content

Commit ae55186

Browse files
authored
Merge pull request #6907 from zhzhuang-zju/flaky
flaky test: deploy workloads should be rejected in case of no enough quota left
2 parents d8473e1 + 178d828 commit ae55186

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

test/e2e/framework/federatedresourcequota.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/onsi/gomega"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
"k8s.io/apimachinery/pkg/types"
29+
"k8s.io/klog/v2"
2930

3031
policyv1alpha1 "github.com/karmada-io/karmada/pkg/apis/policy/v1alpha1"
3132
karmada "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
@@ -89,3 +90,18 @@ func WaitFederatedResourceQuotaCollectStatus(client karmada.Interface, namespace
8990
}, PollTimeout, PollInterval).Should(gomega.Equal(true))
9091
})
9192
}
93+
94+
// WaitFederatedResourceQuotaFitWith wait FederatedResourceQuota fit condition.
95+
func WaitFederatedResourceQuotaFitWith(client karmada.Interface, namespace, name string, fit func(frq *policyv1alpha1.FederatedResourceQuota) bool) {
96+
ginkgo.By(fmt.Sprintf("Waiting for FederatedResourceQuota %s/%s to fit condition", namespace, name), func() {
97+
gomega.Eventually(func() bool {
98+
frq, err := client.PolicyV1alpha1().FederatedResourceQuotas(namespace).Get(context.TODO(), name, metav1.GetOptions{})
99+
if err != nil {
100+
klog.Errorf("Failed to get FederatedResourceQuota(%s/%s), err: %v", namespace, name, err)
101+
return false
102+
}
103+
104+
return fit(frq)
105+
}, PollTimeout, PollInterval).Should(gomega.Equal(true))
106+
})
107+
}

test/e2e/suites/base/federatedresourcequota_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,11 @@ var _ = ginkgo.Describe("FederatedResourceQuota enforcement testing", func() {
304304
}
305305
federatedResourceQuota = helper.NewFederatedResourceQuotaWithOverall(frqNamespace, frqName, overall)
306306
framework.CreateFederatedResourceQuota(karmadaClient, federatedResourceQuota)
307+
framework.WaitFederatedResourceQuotaFitWith(karmadaClient, frqNamespace, frqName, func(frq *policyv1alpha1.FederatedResourceQuota) bool {
308+
// To avoid race condition, ensure that OverallUsed is not nil first, and then deployment can be created.
309+
// MoreInfo can refer to https://github.com/karmada-io/karmada/pull/6876#issuecomment-3455446833.
310+
return frq.Status.Overall != nil
311+
})
307312
ginkgo.DeferCleanup(func() {
308313
framework.RemoveFederatedResourceQuota(karmadaClient, frqNamespace, frqName)
309314
})

0 commit comments

Comments
 (0)