github.com/verrazzano/verrazzano@v1.7.1/tests/e2e/verify-analyze-tool/node/node_test.go (about) 1 // Copyright (c) 2023, 2024, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 // This is an e2e test to plant node related issues and validates it 5 // Followed by reverting the issues to normal state and validates it 6 package node 7 8 import ( 9 "fmt" 10 "time" 11 12 . "github.com/onsi/ginkgo/v2" 13 . "github.com/onsi/gomega" 14 "github.com/verrazzano/verrazzano/tests/e2e/pkg/test/framework" 15 utility "github.com/verrazzano/verrazzano/tests/e2e/verify-analyze-tool" 16 ) 17 18 var ( 19 waitTimeout = 10 * time.Second 20 pollingInterval = 10 * time.Second 21 ) 22 23 var t = framework.NewTestFramework("Vz Analysis Tool Node Issues") 24 25 var issuesToBeDiagnosed = []string{utility.InsufficientMemory, utility.InsufficientCPU} 26 27 // patches node for all the issues listed into 'issuesToBeDiagnosed' 28 func patch() error { 29 for i := 0; i < len(issuesToBeDiagnosed); i++ { 30 switch issuesToBeDiagnosed[i] { 31 case utility.InsufficientMemory: 32 patchErr := utility.PatchPod(utility.InsufficientMemory, []string{"memory=1000Gi", "memory=100Mi"}) 33 if patchErr != nil { 34 return patchErr 35 } 36 case utility.InsufficientCPU: 37 patchErr := utility.PatchPod(utility.InsufficientCPU, []string{"cpu=50000m", "cpu=128m"}) 38 if patchErr != nil { 39 return patchErr 40 } 41 } 42 if i < len(issuesToBeDiagnosed)-1 { 43 time.Sleep(time.Second * 20) 44 } 45 } 46 return nil 47 } 48 49 var _ = BeforeSuite(beforeSuite) 50 var beforeSuite = t.BeforeSuiteFunc(func() { 51 err := patch() 52 if err != nil { 53 Fail(fmt.Sprintf("error while patching verrazzano-related resources: %v", err.Error())) 54 } 55 }) 56 57 var _ = t.Describe("VZ Tools", Label("f:vz-tools-node-issues"), func() { 58 t.Context("During Node Issue Analysis", func() { 59 t.It("Should Have InsufficientMemory Issue Post Bad Memory Request", func() { 60 Eventually(func() bool { 61 return utility.VerifyIssue(utility.ReportAnalysis[utility.InsufficientMemory][0], utility.InsufficientMemory) 62 }, waitTimeout, pollingInterval).Should(BeTrue()) 63 }) 64 t.It("Should Not Have InsufficientMemory Issue Post Rectifying Memory Request", func() { 65 Eventually(func() bool { 66 return utility.VerifyIssue(utility.ReportAnalysis[utility.InsufficientMemory][1], utility.InsufficientMemory) 67 }, waitTimeout, pollingInterval).Should(BeFalse()) 68 }) 69 t.It("Should Have InsufficientCPU Issue Post Bad CPU Request", func() { 70 Eventually(func() bool { 71 return utility.VerifyIssue(utility.ReportAnalysis[utility.InsufficientCPU][0], utility.InsufficientCPU) 72 }, waitTimeout, pollingInterval).Should(BeTrue()) 73 }) 74 t.It("Should Not Have InsufficientCPU Issue Post Rectifying CPU Request", func() { 75 Eventually(func() bool { 76 return utility.VerifyIssue(utility.ReportAnalysis[utility.InsufficientCPU][1], utility.InsufficientCPU) 77 }, waitTimeout, pollingInterval).Should(BeFalse()) 78 }) 79 }) 80 })