mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Merge pull request #44722 from gmarek/netstat_to_file
Automatic merge from submit-queue Redirect some test spam to files instead of main log files Ref #44707 @kubernetes/test-infra-maintainers @wojtek-t
This commit is contained in:
commit
e07497b6b3
@ -160,8 +160,24 @@ var _ = ginkgo.SynchronizedBeforeSuite(func() []byte {
|
|||||||
|
|
||||||
// Dump the output of the nethealth containers only once per run
|
// Dump the output of the nethealth containers only once per run
|
||||||
if framework.TestContext.DumpLogsOnFailure {
|
if framework.TestContext.DumpLogsOnFailure {
|
||||||
framework.Logf("Dumping network health container logs from all nodes")
|
logFunc := framework.Logf
|
||||||
framework.LogContainersInPodsWithLabels(c, metav1.NamespaceSystem, framework.ImagePullerLabels, "nethealth", framework.Logf)
|
if framework.TestContext.ReportDir != "" {
|
||||||
|
filePath := path.Join(framework.TestContext.ReportDir, "nethealth.txt")
|
||||||
|
file, err := os.Create(filePath)
|
||||||
|
if err != nil {
|
||||||
|
framework.Logf("Failed to create a file with network health data %v: %v\nPrinting to stdout", filePath, err)
|
||||||
|
} else {
|
||||||
|
defer file.Close()
|
||||||
|
if err = file.Chmod(0644); err != nil {
|
||||||
|
framework.Logf("Failed to chmod to 644 of %v: %v", filePath, err)
|
||||||
|
}
|
||||||
|
logFunc = framework.GetLogToFileFunc(file)
|
||||||
|
framework.Logf("Dumping network health container logs from all nodes to file %v", filePath)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
framework.Logf("Dumping network health container logs from all nodes...")
|
||||||
|
}
|
||||||
|
framework.LogContainersInPodsWithLabels(c, metav1.NamespaceSystem, framework.ImagePullerLabels, "nethealth", logFunc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reference common test to make the import valid.
|
// Reference common test to make the import valid.
|
||||||
|
@ -17,10 +17,12 @@ limitations under the License.
|
|||||||
package framework
|
package framework
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
@ -284,8 +286,25 @@ func (f *Framework) AfterEach() {
|
|||||||
if !f.SkipNamespaceCreation {
|
if !f.SkipNamespaceCreation {
|
||||||
DumpAllNamespaceInfo(f.ClientSet, f.Namespace.Name)
|
DumpAllNamespaceInfo(f.ClientSet, f.Namespace.Name)
|
||||||
}
|
}
|
||||||
By(fmt.Sprintf("Dumping a list of prepulled images on each node"))
|
|
||||||
LogContainersInPodsWithLabels(f.ClientSet, metav1.NamespaceSystem, ImagePullerLabels, "image-puller", Logf)
|
logFunc := Logf
|
||||||
|
if TestContext.ReportDir != "" {
|
||||||
|
filePath := path.Join(TestContext.ReportDir, "image-puller.txt")
|
||||||
|
file, err := os.Create(filePath)
|
||||||
|
if err != nil {
|
||||||
|
By(fmt.Sprintf("Failed to create a file with image-puller data %v: %v\nPrinting to stdout", filePath, err))
|
||||||
|
} else {
|
||||||
|
By(fmt.Sprintf("Dumping a list of prepulled images on each node to file %v", filePath))
|
||||||
|
defer file.Close()
|
||||||
|
if err = file.Chmod(0644); err != nil {
|
||||||
|
Logf("Failed to chmod to 644 of %v: %v", filePath, err)
|
||||||
|
}
|
||||||
|
logFunc = GetLogToFileFunc(file)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
By("Dumping a list of prepulled images on each node...")
|
||||||
|
}
|
||||||
|
LogContainersInPodsWithLabels(f.ClientSet, metav1.NamespaceSystem, ImagePullerLabels, "image-puller", logFunc)
|
||||||
}
|
}
|
||||||
|
|
||||||
summaries := make([]TestDataSummary, 0)
|
summaries := make([]TestDataSummary, 0)
|
||||||
@ -848,3 +867,15 @@ func (cl *ClusterVerification) ForEach(podFunc func(v1.Pod)) error {
|
|||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetLogToFileFunc is a convenience function that returns a function that have the same interface as
|
||||||
|
// Logf, but writes to a specified file.
|
||||||
|
func GetLogToFileFunc(file *os.File) func(format string, args ...interface{}) {
|
||||||
|
return func(format string, args ...interface{}) {
|
||||||
|
writer := bufio.NewWriter(file)
|
||||||
|
if _, err := fmt.Fprintf(writer, format, args...); err != nil {
|
||||||
|
Logf("Failed to write file %v with test performance data: %v", file.Name(), err)
|
||||||
|
}
|
||||||
|
writer.Flush()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -33,6 +33,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||||
"k8s.io/kubernetes/pkg/master/ports"
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
"k8s.io/kubernetes/pkg/metrics"
|
"k8s.io/kubernetes/pkg/metrics"
|
||||||
|
"k8s.io/kubernetes/pkg/util/system"
|
||||||
|
|
||||||
"github.com/prometheus/common/expfmt"
|
"github.com/prometheus/common/expfmt"
|
||||||
"github.com/prometheus/common/model"
|
"github.com/prometheus/common/model"
|
||||||
@ -339,7 +340,7 @@ func getSchedulingLatency(c clientset.Interface) (SchedulingLatency, error) {
|
|||||||
var data string
|
var data string
|
||||||
var masterRegistered = false
|
var masterRegistered = false
|
||||||
for _, node := range nodes.Items {
|
for _, node := range nodes.Items {
|
||||||
if strings.HasSuffix(node.Name, "master") {
|
if system.IsMasterNode(node.Name) {
|
||||||
masterRegistered = true
|
masterRegistered = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user