mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Merge pull request #81985 from carlory/fix-test-05
use log funcs of core framework in the scalability and cloud package
This commit is contained in:
commit
6f1d84c24e
@ -13,7 +13,6 @@ go_library(
|
|||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//test/e2e/framework:go_default_library",
|
"//test/e2e/framework:go_default_library",
|
||||||
"//test/e2e/framework/log:go_default_library",
|
|
||||||
"//test/e2e/framework/node:go_default_library",
|
"//test/e2e/framework/node:go_default_library",
|
||||||
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
||||||
"//vendor/github.com/onsi/gomega:go_default_library",
|
"//vendor/github.com/onsi/gomega:go_default_library",
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
|
||||||
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
@ -49,16 +48,16 @@ var _ = SIGDescribe("[Feature:CloudProvider][Disruptive] Nodes", func() {
|
|||||||
|
|
||||||
origNodes, err := e2enode.GetReadyNodesIncludingTainted(c)
|
origNodes, err := e2enode.GetReadyNodesIncludingTainted(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unexpected error occurred: %v", err)
|
framework.Logf("Unexpected error occurred: %v", err)
|
||||||
}
|
}
|
||||||
// TODO: write a wrapper for ExpectNoErrorWithOffset()
|
// TODO: write a wrapper for ExpectNoErrorWithOffset()
|
||||||
framework.ExpectNoErrorWithOffset(0, err)
|
framework.ExpectNoErrorWithOffset(0, err)
|
||||||
|
|
||||||
e2elog.Logf("Original number of ready nodes: %d", len(origNodes.Items))
|
framework.Logf("Original number of ready nodes: %d", len(origNodes.Items))
|
||||||
|
|
||||||
err = framework.DeleteNodeOnCloudProvider(&nodeToDelete)
|
err = framework.DeleteNodeOnCloudProvider(&nodeToDelete)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Failf("failed to delete node %q, err: %q", nodeToDelete.Name, err)
|
framework.Failf("failed to delete node %q, err: %q", nodeToDelete.Name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
newNodes, err := e2enode.CheckReady(c, len(origNodes.Items)-1, 5*time.Minute)
|
newNodes, err := e2enode.CheckReady(c, len(origNodes.Items)-1, 5*time.Minute)
|
||||||
@ -67,9 +66,9 @@ var _ = SIGDescribe("[Feature:CloudProvider][Disruptive] Nodes", func() {
|
|||||||
|
|
||||||
_, err = c.CoreV1().Nodes().Get(nodeToDelete.Name, metav1.GetOptions{})
|
_, err = c.CoreV1().Nodes().Get(nodeToDelete.Name, metav1.GetOptions{})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
e2elog.Failf("node %q still exists when it should be deleted", nodeToDelete.Name)
|
framework.Failf("node %q still exists when it should be deleted", nodeToDelete.Name)
|
||||||
} else if !apierrs.IsNotFound(err) {
|
} else if !apierrs.IsNotFound(err) {
|
||||||
e2elog.Failf("failed to get node %q err: %q", nodeToDelete.Name, err)
|
framework.Failf("failed to get node %q err: %q", nodeToDelete.Name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@ -38,7 +38,6 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/transport:go_default_library",
|
"//staging/src/k8s.io/client-go/transport:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
|
"//staging/src/k8s.io/client-go/util/workqueue:go_default_library",
|
||||||
"//test/e2e/framework:go_default_library",
|
"//test/e2e/framework:go_default_library",
|
||||||
"//test/e2e/framework/log:go_default_library",
|
|
||||||
"//test/e2e/framework/metrics:go_default_library",
|
"//test/e2e/framework/metrics:go_default_library",
|
||||||
"//test/e2e/framework/node:go_default_library",
|
"//test/e2e/framework/node:go_default_library",
|
||||||
"//test/e2e/framework/pod:go_default_library",
|
"//test/e2e/framework/pod:go_default_library",
|
||||||
|
@ -51,7 +51,6 @@ import (
|
|||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
|
||||||
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
|
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
|
||||||
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"
|
||||||
@ -163,7 +162,7 @@ func density30AddonResourceVerifier(numNodes int) map[string]framework.ResourceC
|
|||||||
controllerMem = math.MaxUint64
|
controllerMem = math.MaxUint64
|
||||||
schedulerCPU := math.MaxFloat32
|
schedulerCPU := math.MaxFloat32
|
||||||
schedulerMem = math.MaxUint64
|
schedulerMem = math.MaxUint64
|
||||||
e2elog.Logf("Setting resource constraints for provider: %s", framework.TestContext.Provider)
|
framework.Logf("Setting resource constraints for provider: %s", framework.TestContext.Provider)
|
||||||
if framework.ProviderIs("kubemark") {
|
if framework.ProviderIs("kubemark") {
|
||||||
if numNodes <= 5 {
|
if numNodes <= 5 {
|
||||||
apiserverCPU = 0.35
|
apiserverCPU = 0.35
|
||||||
@ -301,7 +300,7 @@ func logPodStartupStatus(
|
|||||||
}
|
}
|
||||||
// Log status of the pods.
|
// Log status of the pods.
|
||||||
startupStatus := testutils.ComputeRCStartupStatus(podStore.List(), expectedPods)
|
startupStatus := testutils.ComputeRCStartupStatus(podStore.List(), expectedPods)
|
||||||
e2elog.Logf(startupStatus.String("Density"))
|
framework.Logf(startupStatus.String("Density"))
|
||||||
// Compute scheduling throughput for the latest time period.
|
// Compute scheduling throughput for the latest time period.
|
||||||
throughput := float64(startupStatus.Scheduled-lastScheduledCount) / float64(period/time.Second)
|
throughput := float64(startupStatus.Scheduled-lastScheduledCount) / float64(period/time.Second)
|
||||||
*scheduleThroughputs = append(*scheduleThroughputs, throughput)
|
*scheduleThroughputs = append(*scheduleThroughputs, throughput)
|
||||||
@ -346,8 +345,8 @@ func runDensityTest(dtc DensityTestConfig, testPhaseDurations *timer.TestPhaseTi
|
|||||||
startupTime := time.Since(startTime)
|
startupTime := time.Since(startTime)
|
||||||
close(logStopCh)
|
close(logStopCh)
|
||||||
close(schedulerProfilingStopCh)
|
close(schedulerProfilingStopCh)
|
||||||
e2elog.Logf("E2E startup time for %d pods: %v", dtc.PodCount, startupTime)
|
framework.Logf("E2E startup time for %d pods: %v", dtc.PodCount, startupTime)
|
||||||
e2elog.Logf("Throughput (pods/s) during cluster saturation phase: %v", float32(dtc.PodCount)/float32(startupTime/time.Second))
|
framework.Logf("Throughput (pods/s) during cluster saturation phase: %v", float32(dtc.PodCount)/float32(startupTime/time.Second))
|
||||||
replicationCtrlStartupPhase.End()
|
replicationCtrlStartupPhase.End()
|
||||||
|
|
||||||
// Grabbing scheduler memory profile after cluster saturation finished.
|
// Grabbing scheduler memory profile after cluster saturation finished.
|
||||||
@ -376,7 +375,7 @@ func runDensityTest(dtc DensityTestConfig, testPhaseDurations *timer.TestPhaseTi
|
|||||||
}
|
}
|
||||||
sort.Strings(nodeNames)
|
sort.Strings(nodeNames)
|
||||||
for _, node := range nodeNames {
|
for _, node := range nodeNames {
|
||||||
e2elog.Logf("%v: %v pause pods, system pods: %v", node, pausePodAllocation[node], systemPodAllocation[node])
|
framework.Logf("%v: %v pause pods, system pods: %v", node, pausePodAllocation[node], systemPodAllocation[node])
|
||||||
}
|
}
|
||||||
defer printPodAllocationPhase.End()
|
defer printPodAllocationPhase.End()
|
||||||
return startupTime
|
return startupTime
|
||||||
@ -449,7 +448,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
NumberOfPods: totalPods,
|
NumberOfPods: totalPods,
|
||||||
Throughput: float32(totalPods) / float32(e2eStartupTime/time.Second),
|
Throughput: float32(totalPods) / float32(e2eStartupTime/time.Second),
|
||||||
}
|
}
|
||||||
e2elog.Logf("Cluster saturation time: %s", e2emetrics.PrettyPrintJSON(saturationData))
|
framework.Logf("Cluster saturation time: %s", e2emetrics.PrettyPrintJSON(saturationData))
|
||||||
|
|
||||||
summaries := make([]framework.TestDataSummary, 0, 2)
|
summaries := make([]framework.TestDataSummary, 0, 2)
|
||||||
// Verify latency metrics.
|
// Verify latency metrics.
|
||||||
@ -525,7 +524,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
|
|
||||||
_, nodes, err = e2enode.GetMasterAndWorkerNodes(c)
|
_, nodes, err = e2enode.GetMasterAndWorkerNodes(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unexpected error occurred: %v", err)
|
framework.Logf("Unexpected error occurred: %v", err)
|
||||||
}
|
}
|
||||||
// TODO: write a wrapper for ExpectNoErrorWithOffset()
|
// TODO: write a wrapper for ExpectNoErrorWithOffset()
|
||||||
framework.ExpectNoErrorWithOffset(0, err)
|
framework.ExpectNoErrorWithOffset(0, err)
|
||||||
@ -548,7 +547,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
framework.ExpectNoError(e2emetrics.ResetMetrics(c))
|
framework.ExpectNoError(e2emetrics.ResetMetrics(c))
|
||||||
framework.ExpectNoError(os.Mkdir(fmt.Sprintf(framework.TestContext.OutputDir+"/%s", uuid), 0777))
|
framework.ExpectNoError(os.Mkdir(fmt.Sprintf(framework.TestContext.OutputDir+"/%s", uuid), 0777))
|
||||||
|
|
||||||
e2elog.Logf("Listing nodes for easy debugging:\n")
|
framework.Logf("Listing nodes for easy debugging:\n")
|
||||||
for _, node := range nodes.Items {
|
for _, node := range nodes.Items {
|
||||||
var internalIP, externalIP string
|
var internalIP, externalIP string
|
||||||
for _, address := range node.Status.Addresses {
|
for _, address := range node.Status.Addresses {
|
||||||
@ -559,7 +558,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
externalIP = address.Address
|
externalIP = address.Address
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e2elog.Logf("Name: %v, clusterIP: %v, externalIP: %v", node.ObjectMeta.Name, internalIP, externalIP)
|
framework.Logf("Name: %v, clusterIP: %v, externalIP: %v", node.ObjectMeta.Name, internalIP, externalIP)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start apiserver CPU profile gatherer with frequency based on cluster size.
|
// Start apiserver CPU profile gatherer with frequency based on cluster size.
|
||||||
@ -688,7 +687,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
Client: clients[i],
|
Client: clients[i],
|
||||||
Name: secretName,
|
Name: secretName,
|
||||||
Namespace: nsName,
|
Namespace: nsName,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
})
|
})
|
||||||
secretNames = append(secretNames, secretName)
|
secretNames = append(secretNames, secretName)
|
||||||
}
|
}
|
||||||
@ -700,7 +699,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
Client: clients[i],
|
Client: clients[i],
|
||||||
Name: configMapName,
|
Name: configMapName,
|
||||||
Namespace: nsName,
|
Namespace: nsName,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
})
|
})
|
||||||
configMapNames = append(configMapNames, configMapName)
|
configMapNames = append(configMapNames, configMapName)
|
||||||
}
|
}
|
||||||
@ -720,7 +719,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
MemRequest: nodeMemCapacity / 100,
|
MemRequest: nodeMemCapacity / 100,
|
||||||
MaxContainerFailures: &MaxContainerFailures,
|
MaxContainerFailures: &MaxContainerFailures,
|
||||||
Silent: true,
|
Silent: true,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
SecretNames: secretNames,
|
SecretNames: secretNames,
|
||||||
ConfigMapNames: configMapNames,
|
ConfigMapNames: configMapNames,
|
||||||
ServiceAccountTokenProjections: itArg.svcacctTokenProjectionsPerPod,
|
ServiceAccountTokenProjections: itArg.svcacctTokenProjectionsPerPod,
|
||||||
@ -748,7 +747,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
case batch.Kind("Job"):
|
case batch.Kind("Job"):
|
||||||
configs[i] = &testutils.JobConfig{RCConfig: *baseConfig}
|
configs[i] = &testutils.JobConfig{RCConfig: *baseConfig}
|
||||||
default:
|
default:
|
||||||
e2elog.Failf("Unsupported kind: %v", itArg.kind)
|
framework.Failf("Unsupported kind: %v", itArg.kind)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -772,7 +771,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
Client: f.ClientSet,
|
Client: f.ClientSet,
|
||||||
Name: fmt.Sprintf("density-daemon-%v", i),
|
Name: fmt.Sprintf("density-daemon-%v", i),
|
||||||
Namespace: f.Namespace.Name,
|
Namespace: f.Namespace.Name,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
e2eStartupTime = runDensityTest(dConfig, testPhaseDurations, &scheduleThroughputs)
|
e2eStartupTime = runDensityTest(dConfig, testPhaseDurations, &scheduleThroughputs)
|
||||||
@ -812,7 +811,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
if startTime != metav1.NewTime(time.Time{}) {
|
if startTime != metav1.NewTime(time.Time{}) {
|
||||||
runTimes[p.Name] = startTime
|
runTimes[p.Name] = startTime
|
||||||
} else {
|
} else {
|
||||||
e2elog.Failf("Pod %v is reported to be running, but none of its containers is", p.Name)
|
framework.Failf("Pod %v is reported to be running, but none of its containers is", p.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -842,7 +841,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
AddFunc: func(obj interface{}) {
|
AddFunc: func(obj interface{}) {
|
||||||
p, ok := obj.(*v1.Pod)
|
p, ok := obj.(*v1.Pod)
|
||||||
if !ok {
|
if !ok {
|
||||||
e2elog.Logf("Failed to cast observed object to *v1.Pod.")
|
framework.Logf("Failed to cast observed object to *v1.Pod.")
|
||||||
}
|
}
|
||||||
framework.ExpectEqual(ok, true)
|
framework.ExpectEqual(ok, true)
|
||||||
go checkPod(p)
|
go checkPod(p)
|
||||||
@ -850,7 +849,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
UpdateFunc: func(oldObj, newObj interface{}) {
|
UpdateFunc: func(oldObj, newObj interface{}) {
|
||||||
p, ok := newObj.(*v1.Pod)
|
p, ok := newObj.(*v1.Pod)
|
||||||
if !ok {
|
if !ok {
|
||||||
e2elog.Logf("Failed to cast observed object to *v1.Pod.")
|
framework.Logf("Failed to cast observed object to *v1.Pod.")
|
||||||
}
|
}
|
||||||
framework.ExpectEqual(ok, true)
|
framework.ExpectEqual(ok, true)
|
||||||
go checkPod(p)
|
go checkPod(p)
|
||||||
@ -863,7 +862,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
}
|
}
|
||||||
for latencyPodsIteration := 0; latencyPodsIteration < latencyPodsIterations; latencyPodsIteration++ {
|
for latencyPodsIteration := 0; latencyPodsIteration < latencyPodsIterations; latencyPodsIteration++ {
|
||||||
podIndexOffset := latencyPodsIteration * nodeCount
|
podIndexOffset := latencyPodsIteration * nodeCount
|
||||||
e2elog.Logf("Creating %d latency pods in range [%d, %d]", nodeCount, podIndexOffset+1, podIndexOffset+nodeCount)
|
framework.Logf("Creating %d latency pods in range [%d, %d]", nodeCount, podIndexOffset+1, podIndexOffset+nodeCount)
|
||||||
|
|
||||||
watchTimesLen := len(watchTimes)
|
watchTimesLen := len(watchTimes)
|
||||||
|
|
||||||
@ -901,7 +900,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
waitTimeout := 10 * time.Minute
|
waitTimeout := 10 * time.Minute
|
||||||
for start := time.Now(); len(watchTimes) < watchTimesLen+nodeCount; time.Sleep(10 * time.Second) {
|
for start := time.Now(); len(watchTimes) < watchTimesLen+nodeCount; time.Sleep(10 * time.Second) {
|
||||||
if time.Since(start) < waitTimeout {
|
if time.Since(start) < waitTimeout {
|
||||||
e2elog.Failf("Timeout reached waiting for all Pods being observed by the watch.")
|
framework.Failf("Timeout reached waiting for all Pods being observed by the watch.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -913,7 +912,7 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
}
|
}
|
||||||
for node, count := range nodeToLatencyPods {
|
for node, count := range nodeToLatencyPods {
|
||||||
if count > 1 {
|
if count > 1 {
|
||||||
e2elog.Logf("%d latency pods scheduled on %s", count, node)
|
framework.Logf("%d latency pods scheduled on %s", count, node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -961,22 +960,22 @@ var _ = SIGDescribe("Density", func() {
|
|||||||
for name, create := range createTimes {
|
for name, create := range createTimes {
|
||||||
sched, ok := scheduleTimes[name]
|
sched, ok := scheduleTimes[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
e2elog.Logf("Failed to find schedule time for %v", name)
|
framework.Logf("Failed to find schedule time for %v", name)
|
||||||
missingMeasurements++
|
missingMeasurements++
|
||||||
}
|
}
|
||||||
run, ok := runTimes[name]
|
run, ok := runTimes[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
e2elog.Logf("Failed to find run time for %v", name)
|
framework.Logf("Failed to find run time for %v", name)
|
||||||
missingMeasurements++
|
missingMeasurements++
|
||||||
}
|
}
|
||||||
watch, ok := watchTimes[name]
|
watch, ok := watchTimes[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
e2elog.Logf("Failed to find watch time for %v", name)
|
framework.Logf("Failed to find watch time for %v", name)
|
||||||
missingMeasurements++
|
missingMeasurements++
|
||||||
}
|
}
|
||||||
node, ok := nodeNames[name]
|
node, ok := nodeNames[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
e2elog.Logf("Failed to find node for %v", name)
|
framework.Logf("Failed to find node for %v", name)
|
||||||
missingMeasurements++
|
missingMeasurements++
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1062,5 +1061,5 @@ func createRunningPodFromRC(wg *sync.WaitGroup, c clientset.Interface, name, ns,
|
|||||||
}
|
}
|
||||||
framework.ExpectNoError(testutils.CreateRCWithRetries(c, ns, rc))
|
framework.ExpectNoError(testutils.CreateRCWithRetries(c, ns, rc))
|
||||||
framework.ExpectNoError(e2epod.WaitForControlledPodsRunning(c, ns, name, api.Kind("ReplicationController")))
|
framework.ExpectNoError(e2epod.WaitForControlledPodsRunning(c, ns, name, api.Kind("ReplicationController")))
|
||||||
e2elog.Logf("Found pod '%s' running", name)
|
framework.Logf("Found pod '%s' running", name)
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,6 @@ import (
|
|||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
|
||||||
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
|
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/timer"
|
"k8s.io/kubernetes/test/e2e/framework/timer"
|
||||||
testutils "k8s.io/kubernetes/test/utils"
|
testutils "k8s.io/kubernetes/test/utils"
|
||||||
@ -251,27 +250,27 @@ var _ = SIGDescribe("Load capacity", func() {
|
|||||||
serviceCreationPhase := testPhaseDurations.StartPhase(120, "services creation")
|
serviceCreationPhase := testPhaseDurations.StartPhase(120, "services creation")
|
||||||
defer serviceCreationPhase.End()
|
defer serviceCreationPhase.End()
|
||||||
if itArg.services {
|
if itArg.services {
|
||||||
e2elog.Logf("Creating services")
|
framework.Logf("Creating services")
|
||||||
services := generateServicesForConfigs(configs)
|
services := generateServicesForConfigs(configs)
|
||||||
createService := func(i int) {
|
createService := func(i int) {
|
||||||
defer ginkgo.GinkgoRecover()
|
defer ginkgo.GinkgoRecover()
|
||||||
framework.ExpectNoError(testutils.CreateServiceWithRetries(clientset, services[i].Namespace, services[i]))
|
framework.ExpectNoError(testutils.CreateServiceWithRetries(clientset, services[i].Namespace, services[i]))
|
||||||
}
|
}
|
||||||
workqueue.ParallelizeUntil(context.TODO(), serviceOperationsParallelism, len(services), createService)
|
workqueue.ParallelizeUntil(context.TODO(), serviceOperationsParallelism, len(services), createService)
|
||||||
e2elog.Logf("%v Services created.", len(services))
|
framework.Logf("%v Services created.", len(services))
|
||||||
defer func(services []*v1.Service) {
|
defer func(services []*v1.Service) {
|
||||||
serviceCleanupPhase := testPhaseDurations.StartPhase(800, "services deletion")
|
serviceCleanupPhase := testPhaseDurations.StartPhase(800, "services deletion")
|
||||||
defer serviceCleanupPhase.End()
|
defer serviceCleanupPhase.End()
|
||||||
e2elog.Logf("Starting to delete services...")
|
framework.Logf("Starting to delete services...")
|
||||||
deleteService := func(i int) {
|
deleteService := func(i int) {
|
||||||
defer ginkgo.GinkgoRecover()
|
defer ginkgo.GinkgoRecover()
|
||||||
framework.ExpectNoError(testutils.DeleteResourceWithRetries(clientset, api.Kind("Service"), services[i].Namespace, services[i].Name, nil))
|
framework.ExpectNoError(testutils.DeleteResourceWithRetries(clientset, api.Kind("Service"), services[i].Namespace, services[i].Name, nil))
|
||||||
}
|
}
|
||||||
workqueue.ParallelizeUntil(context.TODO(), serviceOperationsParallelism, len(services), deleteService)
|
workqueue.ParallelizeUntil(context.TODO(), serviceOperationsParallelism, len(services), deleteService)
|
||||||
e2elog.Logf("Services deleted")
|
framework.Logf("Services deleted")
|
||||||
}(services)
|
}(services)
|
||||||
} else {
|
} else {
|
||||||
e2elog.Logf("Skipping service creation")
|
framework.Logf("Skipping service creation")
|
||||||
}
|
}
|
||||||
serviceCreationPhase.End()
|
serviceCreationPhase.End()
|
||||||
// Create all secrets.
|
// Create all secrets.
|
||||||
@ -299,7 +298,7 @@ var _ = SIGDescribe("Load capacity", func() {
|
|||||||
Client: f.ClientSet,
|
Client: f.ClientSet,
|
||||||
Name: daemonName,
|
Name: daemonName,
|
||||||
Namespace: f.Namespace.Name,
|
Namespace: f.Namespace.Name,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
}
|
}
|
||||||
daemonConfig.Run()
|
daemonConfig.Run()
|
||||||
defer func(config *testutils.DaemonConfig) {
|
defer func(config *testutils.DaemonConfig) {
|
||||||
@ -328,7 +327,7 @@ var _ = SIGDescribe("Load capacity", func() {
|
|||||||
// to make it possible to create/schedule them in the meantime.
|
// to make it possible to create/schedule them in the meantime.
|
||||||
// Currently we assume <throughput> pods/second average throughput.
|
// Currently we assume <throughput> pods/second average throughput.
|
||||||
// We may want to revisit it in the future.
|
// We may want to revisit it in the future.
|
||||||
e2elog.Logf("Starting to create %v objects...", itArg.kind)
|
framework.Logf("Starting to create %v objects...", itArg.kind)
|
||||||
creatingTime := time.Duration(totalPods/throughput) * time.Second
|
creatingTime := time.Duration(totalPods/throughput) * time.Second
|
||||||
|
|
||||||
createAllResources(configs, creatingTime, testPhaseDurations.StartPhase(200, "load pods creation"))
|
createAllResources(configs, creatingTime, testPhaseDurations.StartPhase(200, "load pods creation"))
|
||||||
@ -341,7 +340,7 @@ var _ = SIGDescribe("Load capacity", func() {
|
|||||||
// The expected number of created/deleted pods is totalPods/4 when scaling,
|
// The expected number of created/deleted pods is totalPods/4 when scaling,
|
||||||
// as each RC changes its size from X to a uniform random value in [X/2, 3X/2].
|
// as each RC changes its size from X to a uniform random value in [X/2, 3X/2].
|
||||||
scalingTime := time.Duration(totalPods/(4*throughput)) * time.Second
|
scalingTime := time.Duration(totalPods/(4*throughput)) * time.Second
|
||||||
e2elog.Logf("Starting to scale %v objects first time...", itArg.kind)
|
framework.Logf("Starting to scale %v objects first time...", itArg.kind)
|
||||||
scaleAllResources(configs, scalingTime, testPhaseDurations.StartPhase(300, "scaling first time"))
|
scaleAllResources(configs, scalingTime, testPhaseDurations.StartPhase(300, "scaling first time"))
|
||||||
ginkgo.By("============================================================================")
|
ginkgo.By("============================================================================")
|
||||||
|
|
||||||
@ -349,7 +348,7 @@ var _ = SIGDescribe("Load capacity", func() {
|
|||||||
// Currently we assume <throughput> pods/second average deletion throughput.
|
// Currently we assume <throughput> pods/second average deletion throughput.
|
||||||
// We may want to revisit it in the future.
|
// We may want to revisit it in the future.
|
||||||
deletingTime := time.Duration(totalPods/throughput) * time.Second
|
deletingTime := time.Duration(totalPods/throughput) * time.Second
|
||||||
e2elog.Logf("Starting to delete %v objects...", itArg.kind)
|
framework.Logf("Starting to delete %v objects...", itArg.kind)
|
||||||
deleteAllResources(configs, deletingTime, testPhaseDurations.StartPhase(500, "load pods deletion"))
|
deleteAllResources(configs, deletingTime, testPhaseDurations.StartPhase(500, "load pods deletion"))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -531,7 +530,7 @@ func GenerateConfigsForGroup(
|
|||||||
Client: nil, // this will be overwritten later
|
Client: nil, // this will be overwritten later
|
||||||
Name: secretName,
|
Name: secretName,
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
})
|
})
|
||||||
secretNames = append(secretNames, secretName)
|
secretNames = append(secretNames, secretName)
|
||||||
}
|
}
|
||||||
@ -543,7 +542,7 @@ func GenerateConfigsForGroup(
|
|||||||
Client: nil, // this will be overwritten later
|
Client: nil, // this will be overwritten later
|
||||||
Name: configMapName,
|
Name: configMapName,
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
LogFunc: e2elog.Logf,
|
LogFunc: framework.Logf,
|
||||||
})
|
})
|
||||||
configMapNames = append(configMapNames, configMapName)
|
configMapNames = append(configMapNames, configMapName)
|
||||||
}
|
}
|
||||||
@ -592,7 +591,7 @@ func GenerateConfigsForGroup(
|
|||||||
case batch.Kind("Job"):
|
case batch.Kind("Job"):
|
||||||
config = &testutils.JobConfig{RCConfig: *baseConfig}
|
config = &testutils.JobConfig{RCConfig: *baseConfig}
|
||||||
default:
|
default:
|
||||||
e2elog.Failf("Unsupported kind for config creation: %v", kind)
|
framework.Failf("Unsupported kind for config creation: %v", kind)
|
||||||
}
|
}
|
||||||
configs = append(configs, config)
|
configs = append(configs, config)
|
||||||
}
|
}
|
||||||
@ -705,7 +704,7 @@ func scaleResource(wg *sync.WaitGroup, config testutils.RunObjectConfig, scaling
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
e2elog.Logf("Failed to list pods from %v %v due to: %v", config.GetKind(), config.GetName(), err)
|
framework.Logf("Failed to list pods from %v %v due to: %v", config.GetKind(), config.GetName(), err)
|
||||||
if testutils.IsRetryableAPIError(err) {
|
if testutils.IsRetryableAPIError(err) {
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user