@@ -21,11 +21,13 @@ import (
21
21
"time"
22
22
23
23
v1 "k8s.io/api/core/v1"
24
+ "k8s.io/apimachinery/pkg/api/resource"
24
25
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25
26
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
26
27
"k8s.io/kubernetes/test/e2e/framework"
27
28
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
28
29
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
30
+ e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
29
31
"k8s.io/kubernetes/test/e2e_node/perf/workloads"
30
32
31
33
"github.com/onsi/ginkgo"
@@ -57,7 +59,7 @@ func setKubeletConfig(f *framework.Framework, cfg *kubeletconfig.KubeletConfigur
57
59
58
60
// Serial because the test updates kubelet configuration.
59
61
// Slow by design.
60
- var _ = SIGDescribe ("Node Performance Testing [Serial] [Slow] [Flaky] " , func () {
62
+ var _ = SIGDescribe ("Node Performance Testing [Serial] [Slow]" , func () {
61
63
f := framework .NewDefaultFramework ("node-performance-testing" )
62
64
var (
63
65
wl workloads.NodePerfWorkload
@@ -111,6 +113,21 @@ var _ = SIGDescribe("Node Performance Testing [Serial] [Slow] [Flaky]", func() {
111
113
framework .Logf ("Time to complete workload %s: %v" , wl .Name (), perf )
112
114
}
113
115
116
+ ginkgo .BeforeEach (func () {
117
+ ginkgo .By ("ensure environment has enough CPU + Memory to run" )
118
+ minimumRequiredCPU := resource .MustParse ("15" )
119
+ minimumRequiredMemory := resource .MustParse ("48Gi" )
120
+ localNodeCap := getLocalNode (f ).Status .Allocatable
121
+ cpuCap := localNodeCap [v1 .ResourceCPU ]
122
+ memCap := localNodeCap [v1 .ResourceMemory ]
123
+ if cpuCap .Cmp (minimumRequiredCPU ) == - 1 {
124
+ e2eskipper .Skipf ("Skipping Node Performance Tests due to lack of CPU. Required %v is less than capacity %v." , minimumRequiredCPU , cpuCap )
125
+ }
126
+ if memCap .Cmp (minimumRequiredMemory ) == - 1 {
127
+ e2eskipper .Skipf ("Skipping Node Performance Tests due to lack of memory. Required %v is less than capacity %v." , minimumRequiredMemory , memCap )
128
+ }
129
+ })
130
+
114
131
ginkgo .Context ("Run node performance testing with pre-defined workloads" , func () {
115
132
ginkgo .BeforeEach (func () {
116
133
wl = workloads .NodePerfWorkloads [0 ]
0 commit comments