prepare node performance tests to move to separate job

This commit is contained in:
Morgan Bauer 2020-09-23 12:35:59 -07:00
parent 4304f4bdbd
commit 9eb0d76f5b

View File

@ -21,11 +21,13 @@ import (
"time" "time"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2enode "k8s.io/kubernetes/test/e2e/framework/node" e2enode "k8s.io/kubernetes/test/e2e/framework/node"
e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
"k8s.io/kubernetes/test/e2e_node/perf/workloads" "k8s.io/kubernetes/test/e2e_node/perf/workloads"
"github.com/onsi/ginkgo" "github.com/onsi/ginkgo"
@ -57,7 +59,7 @@ func setKubeletConfig(f *framework.Framework, cfg *kubeletconfig.KubeletConfigur
// Serial because the test updates kubelet configuration. // Serial because the test updates kubelet configuration.
// Slow by design. // Slow by design.
var _ = SIGDescribe("Node Performance Testing [Serial] [Slow] [Flaky]", func() { var _ = SIGDescribe("Node Performance Testing [Serial] [Slow]", func() {
f := framework.NewDefaultFramework("node-performance-testing") f := framework.NewDefaultFramework("node-performance-testing")
var ( var (
wl workloads.NodePerfWorkload wl workloads.NodePerfWorkload
@ -111,6 +113,21 @@ var _ = SIGDescribe("Node Performance Testing [Serial] [Slow] [Flaky]", func() {
framework.Logf("Time to complete workload %s: %v", wl.Name(), perf) framework.Logf("Time to complete workload %s: %v", wl.Name(), perf)
} }
ginkgo.BeforeEach(func() {
ginkgo.By("ensure environment has enough CPU + Memory to run")
minimumRequiredCPU := resource.MustParse("15")
minimumRequiredMemory := resource.MustParse("48Gi")
localNodeCap := getLocalNode(f).Status.Allocatable
cpuCap := localNodeCap[v1.ResourceCPU]
memCap := localNodeCap[v1.ResourceMemory]
if cpuCap.Cmp(minimumRequiredCPU) == -1 {
e2eskipper.Skipf("Skipping Node Performance Tests due to lack of CPU. Required %v is less than capacity %v.", minimumRequiredCPU, cpuCap)
}
if memCap.Cmp(minimumRequiredMemory) == -1 {
e2eskipper.Skipf("Skipping Node Performance Tests due to lack of memory. Required %v is less than capacity %v.", minimumRequiredMemory, memCap)
}
})
ginkgo.Context("Run node performance testing with pre-defined workloads", func() { ginkgo.Context("Run node performance testing with pre-defined workloads", func() {
ginkgo.BeforeEach(func() { ginkgo.BeforeEach(func() {
wl = workloads.NodePerfWorkloads[0] wl = workloads.NodePerfWorkloads[0]