This is an automated email from the ASF dual-hosted git repository.

chenyulin0719 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git


The following commit(s) were added to refs/heads/master by this push:
     new 59bc7265 [YUNIKORN-3056] Refactor preemption E2E test suite structure 
(#967)
59bc7265 is described below

commit 59bc72652f1921fb971c816387b1c5bd29471d89
Author: Michael Chu <[email protected]>
AuthorDate: Sun Apr 20 07:08:49 2025 +0000

    [YUNIKORN-3056] Refactor preemption E2E test suite structure (#967)
    
    Closes: #967
    
    Signed-off-by: Yu-Lin Chen <[email protected]>
---
 test/e2e/preemption/preemption_suite_test.go | 81 ++++++++++++++++++++++++++++
 test/e2e/preemption/preemption_test.go       | 75 --------------------------
 2 files changed, 81 insertions(+), 75 deletions(-)

diff --git a/test/e2e/preemption/preemption_suite_test.go 
b/test/e2e/preemption/preemption_suite_test.go
index 680589ad..ff5ff560 100644
--- a/test/e2e/preemption/preemption_suite_test.go
+++ b/test/e2e/preemption/preemption_suite_test.go
@@ -19,14 +19,22 @@
 package preemption_test
 
 import (
+       "fmt"
        "path/filepath"
+       "runtime"
+       "strings"
        "testing"
 
        "github.com/onsi/ginkgo/v2"
        "github.com/onsi/ginkgo/v2/reporters"
        "github.com/onsi/gomega"
+       v1 "k8s.io/api/core/v1"
 
+       "github.com/apache/yunikorn-k8shim/pkg/common/constants"
        "github.com/apache/yunikorn-k8shim/test/e2e/framework/configmanager"
+       "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/common"
+       "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/k8s"
+       "github.com/apache/yunikorn-k8shim/test/e2e/framework/helpers/yunikorn"
 )
 
 func init() {
@@ -48,3 +56,76 @@ func TestPreemption(t *testing.T) {
 
 var Ω = gomega.Ω
 var HaveOccurred = gomega.HaveOccurred
+
+var _ = ginkgo.BeforeSuite(func() {
+       _, filename, _, _ := runtime.Caller(0)
+       suiteName = common.GetSuiteName(filename)
+       // Initializing kubectl client
+       kClient = k8s.KubeCtl{}
+       Ω(kClient.SetClient()).To(gomega.BeNil())
+       // Initializing rest client
+       restClient = yunikorn.RClient{}
+       Ω(restClient).NotTo(gomega.BeNil())
+
+       yunikorn.EnsureYuniKornConfigsPresent()
+
+       ginkgo.By("Port-forward the scheduler pod")
+       var err = kClient.PortForwardYkSchedulerPod()
+       Ω(err).NotTo(gomega.HaveOccurred())
+
+       var nodes *v1.NodeList
+       nodes, err = kClient.GetNodes()
+       Ω(err).NotTo(gomega.HaveOccurred())
+       Ω(len(nodes.Items)).NotTo(gomega.BeZero(), "Nodes cant be empty")
+
+       // Extract node allocatable resources
+       for _, node := range nodes.Items {
+               // skip master if it's marked as such
+               node := node
+               if k8s.IsMasterNode(&node) || !k8s.IsComputeNode(&node) {
+                       continue
+               }
+               if Worker == "" {
+                       Worker = node.Name
+               } else {
+                       nodesToTaint = append(nodesToTaint, node.Name)
+               }
+       }
+       Ω(Worker).NotTo(gomega.BeEmpty(), "Worker node not found")
+
+       ginkgo.By("Tainting some nodes..")
+       err = kClient.TaintNodes(nodesToTaint, taintKey, "value", 
v1.TaintEffectNoSchedule)
+       Ω(err).NotTo(gomega.HaveOccurred())
+
+       nodesDAOInfo, err := restClient.GetNodes(constants.DefaultPartition)
+       Ω(err).NotTo(gomega.HaveOccurred())
+       Ω(nodesDAOInfo).NotTo(gomega.BeNil())
+
+       for _, node := range *nodesDAOInfo {
+               if node.NodeID == Worker {
+                       WorkerMemRes = node.Available["memory"]
+               }
+       }
+       WorkerMemRes /= (1000 * 1000) // change to M
+       fmt.Fprintf(ginkgo.GinkgoWriter, "Worker node %s available memory 
%dM\n", Worker, WorkerMemRes)
+
+       sleepPodMemLimit = int64(float64(WorkerMemRes) / 3)
+       Ω(sleepPodMemLimit).NotTo(gomega.BeZero(), "Sleep pod memory limit 
cannot be zero")
+       fmt.Fprintf(ginkgo.GinkgoWriter, "Sleep pod limit memory %dM\n", 
sleepPodMemLimit)
+
+       sleepPodMemLimit2 = int64(float64(WorkerMemRes) / 4)
+       Ω(sleepPodMemLimit2).NotTo(gomega.BeZero(), "Sleep pod memory limit 
cannot be zero")
+       fmt.Fprintf(ginkgo.GinkgoWriter, "Sleep pod limit memory %dM\n", 
sleepPodMemLimit2)
+})
+
+var _ = ginkgo.AfterSuite(func() {
+
+       ginkgo.By("Untainting some nodes")
+       err := kClient.UntaintNodes(nodesToTaint, taintKey)
+       Ω(err).NotTo(gomega.HaveOccurred(), "Could not remove taint from nodes 
"+strings.Join(nodesToTaint, ","))
+
+       ginkgo.By("Check Yunikorn's health")
+       checks, err := yunikorn.GetFailedHealthChecks()
+       Ω(err).NotTo(gomega.HaveOccurred())
+       Ω(checks).To(gomega.Equal(""), checks)
+})
diff --git a/test/e2e/preemption/preemption_test.go 
b/test/e2e/preemption/preemption_test.go
index 27ee0464..9325d377 100644
--- a/test/e2e/preemption/preemption_test.go
+++ b/test/e2e/preemption/preemption_test.go
@@ -20,8 +20,6 @@ package preemption_test
 
 import (
        "fmt"
-       "runtime"
-       "strings"
        "time"
 
        "github.com/onsi/ginkgo/v2"
@@ -55,79 +53,6 @@ var nodesToTaint []string
 var cantBeScheduledMesg = "The sleep pod %s can't be scheduled"
 var deployMesg = "Deploy the sleep pod %s to the development namespace"
 
-var _ = ginkgo.BeforeSuite(func() {
-       _, filename, _, _ := runtime.Caller(0)
-       suiteName = common.GetSuiteName(filename)
-       // Initializing kubectl client
-       kClient = k8s.KubeCtl{}
-       Ω(kClient.SetClient()).To(gomega.BeNil())
-       // Initializing rest client
-       restClient = yunikorn.RClient{}
-       Ω(restClient).NotTo(gomega.BeNil())
-
-       yunikorn.EnsureYuniKornConfigsPresent()
-
-       ginkgo.By("Port-forward the scheduler pod")
-       var err = kClient.PortForwardYkSchedulerPod()
-       Ω(err).NotTo(gomega.HaveOccurred())
-
-       var nodes *v1.NodeList
-       nodes, err = kClient.GetNodes()
-       Ω(err).NotTo(gomega.HaveOccurred())
-       Ω(len(nodes.Items)).NotTo(gomega.BeZero(), "Nodes cant be empty")
-
-       // Extract node allocatable resources
-       for _, node := range nodes.Items {
-               // skip master if it's marked as such
-               node := node
-               if k8s.IsMasterNode(&node) || !k8s.IsComputeNode(&node) {
-                       continue
-               }
-               if Worker == "" {
-                       Worker = node.Name
-               } else {
-                       nodesToTaint = append(nodesToTaint, node.Name)
-               }
-       }
-       Ω(Worker).NotTo(gomega.BeEmpty(), "Worker node not found")
-
-       ginkgo.By("Tainting some nodes..")
-       err = kClient.TaintNodes(nodesToTaint, taintKey, "value", 
v1.TaintEffectNoSchedule)
-       Ω(err).NotTo(gomega.HaveOccurred())
-
-       nodesDAOInfo, err := restClient.GetNodes(constants.DefaultPartition)
-       Ω(err).NotTo(gomega.HaveOccurred())
-       Ω(nodesDAOInfo).NotTo(gomega.BeNil())
-
-       for _, node := range *nodesDAOInfo {
-               if node.NodeID == Worker {
-                       WorkerMemRes = node.Available["memory"]
-               }
-       }
-       WorkerMemRes /= (1000 * 1000) // change to M
-       fmt.Fprintf(ginkgo.GinkgoWriter, "Worker node %s available memory 
%dM\n", Worker, WorkerMemRes)
-
-       sleepPodMemLimit = int64(float64(WorkerMemRes) / 3)
-       Ω(sleepPodMemLimit).NotTo(gomega.BeZero(), "Sleep pod memory limit 
cannot be zero")
-       fmt.Fprintf(ginkgo.GinkgoWriter, "Sleep pod limit memory %dM\n", 
sleepPodMemLimit)
-
-       sleepPodMemLimit2 = int64(float64(WorkerMemRes) / 4)
-       Ω(sleepPodMemLimit2).NotTo(gomega.BeZero(), "Sleep pod memory limit 
cannot be zero")
-       fmt.Fprintf(ginkgo.GinkgoWriter, "Sleep pod limit memory %dM\n", 
sleepPodMemLimit2)
-})
-
-var _ = ginkgo.AfterSuite(func() {
-
-       ginkgo.By("Untainting some nodes")
-       err := kClient.UntaintNodes(nodesToTaint, taintKey)
-       Ω(err).NotTo(gomega.HaveOccurred(), "Could not remove taint from nodes 
"+strings.Join(nodesToTaint, ","))
-
-       ginkgo.By("Check Yunikorn's health")
-       checks, err := yunikorn.GetFailedHealthChecks()
-       Ω(err).NotTo(gomega.HaveOccurred())
-       Ω(checks).To(gomega.Equal(""), checks)
-})
-
 var _ = ginkgo.Describe("Preemption", func() {
        ginkgo.BeforeEach(func() {
                dev = "dev-" + common.RandSeq(5)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to