mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	Merge pull request #84640 from clarklee92/UseFrameworkLogIn-e2e/framework/kubelet
Use log functions of core framework on test/e2e/framework/kubelet
This commit is contained in:
		@@ -72,7 +72,6 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/controller"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/master/ports"
 | 
			
		||||
	taintutils "k8s.io/kubernetes/pkg/util/taints"
 | 
			
		||||
	e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
 | 
			
		||||
	e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
 | 
			
		||||
	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
 | 
			
		||||
	e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
 | 
			
		||||
@@ -101,6 +100,9 @@ const (
 | 
			
		||||
	// PodDeleteTimeout is how long to wait for a pod to be deleted.
 | 
			
		||||
	PodDeleteTimeout = 5 * time.Minute
 | 
			
		||||
 | 
			
		||||
	// PodGetTimeout is how long to wait for a pod to be got.
 | 
			
		||||
	PodGetTimeout = 2 * time.Minute
 | 
			
		||||
 | 
			
		||||
	// PodEventTimeout is how much we wait for a pod event to occur.
 | 
			
		||||
	PodEventTimeout = 2 * time.Minute
 | 
			
		||||
 | 
			
		||||
@@ -1328,7 +1330,7 @@ func DumpNodeDebugInfo(c clientset.Interface, nodeNames []string, logFunc func(f
 | 
			
		||||
				e.Source, e.Type, e.Message, e.Reason, e.FirstTimestamp, e.LastTimestamp, e.InvolvedObject)
 | 
			
		||||
		}
 | 
			
		||||
		logFunc("\nLogging pods the kubelet thinks is on node %v", n)
 | 
			
		||||
		podList, err := e2ekubelet.GetKubeletPods(c, n)
 | 
			
		||||
		podList, err := getKubeletPods(c, n)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			logFunc("Unable to retrieve kubelet pods for node %v: %v", n, err)
 | 
			
		||||
			continue
 | 
			
		||||
@@ -1349,6 +1351,33 @@ func DumpNodeDebugInfo(c clientset.Interface, nodeNames []string, logFunc func(f
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// getKubeletPods retrieves the list of pods on the kubelet.
 | 
			
		||||
func getKubeletPods(c clientset.Interface, node string) (*v1.PodList, error) {
 | 
			
		||||
	var result *v1.PodList
 | 
			
		||||
	var client restclient.Result
 | 
			
		||||
	finished := make(chan struct{}, 1)
 | 
			
		||||
	go func() {
 | 
			
		||||
		// call chain tends to hang in some cases when Node is not ready. Add an artificial timeout for this call. #22165
 | 
			
		||||
		client = c.CoreV1().RESTClient().Get().
 | 
			
		||||
			Resource("nodes").
 | 
			
		||||
			SubResource("proxy").
 | 
			
		||||
			Name(fmt.Sprintf("%v:%v", node, ports.KubeletPort)).
 | 
			
		||||
			Suffix("pods").
 | 
			
		||||
			Do()
 | 
			
		||||
 | 
			
		||||
		finished <- struct{}{}
 | 
			
		||||
	}()
 | 
			
		||||
	select {
 | 
			
		||||
	case <-finished:
 | 
			
		||||
		if err := client.Into(result); err != nil {
 | 
			
		||||
			return &v1.PodList{}, err
 | 
			
		||||
		}
 | 
			
		||||
		return result, nil
 | 
			
		||||
	case <-time.After(PodGetTimeout):
 | 
			
		||||
		return &v1.PodList{}, fmt.Errorf("Waiting up to %v for getting the list of pods", PodGetTimeout)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// logNodeEvents logs kubelet events from the given node. This includes kubelet
 | 
			
		||||
// restart and node unhealthy events. Note that listing events like this will mess
 | 
			
		||||
// with latency metrics, beware of calling it during a test.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user