mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
Merge pull request #80708 from WanLinghao/util_pods_refacotr
Move pod related functions in file test/e2e/framework/util.go to its sub directory
This commit is contained in:
commit
e694959038
@ -77,6 +77,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/tools/watch:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/watch:go_default_library",
|
||||||
"//test/e2e/framework:go_default_library",
|
"//test/e2e/framework:go_default_library",
|
||||||
"//test/e2e/framework/deployment:go_default_library",
|
"//test/e2e/framework/deployment:go_default_library",
|
||||||
|
"//test/e2e/framework/kubelet:go_default_library",
|
||||||
"//test/e2e/framework/log:go_default_library",
|
"//test/e2e/framework/log: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",
|
||||||
|
@ -40,6 +40,7 @@ import (
|
|||||||
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
|
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
|
||||||
"k8s.io/kubernetes/pkg/kubelet"
|
"k8s.io/kubernetes/pkg/kubelet"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
||||||
imageutils "k8s.io/kubernetes/test/utils/image"
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
|
|
||||||
@ -287,7 +288,7 @@ var _ = framework.KubeDescribe("Pods", func() {
|
|||||||
|
|
||||||
ginkgo.By("verifying the kubelet observed the termination notice")
|
ginkgo.By("verifying the kubelet observed the termination notice")
|
||||||
err = wait.Poll(time.Second*5, time.Second*30, func() (bool, error) {
|
err = wait.Poll(time.Second*5, time.Second*30, func() (bool, error) {
|
||||||
podList, err := framework.GetKubeletPods(f.ClientSet, pod.Spec.NodeName)
|
podList, err := e2ekubelet.GetKubeletPods(f.ClientSet, pod.Spec.NodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", pod.Spec.NodeName, err)
|
e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", pod.Spec.NodeName, err)
|
||||||
return false, nil
|
return false, nil
|
||||||
|
@ -2,9 +2,18 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
|||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["stats.go"],
|
srcs = [
|
||||||
|
"kubelet_pods.go",
|
||||||
|
"stats.go",
|
||||||
|
],
|
||||||
importpath = "k8s.io/kubernetes/test/e2e/framework/kubelet",
|
importpath = "k8s.io/kubernetes/test/e2e/framework/kubelet",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//pkg/master/ports:go_default_library",
|
||||||
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
|
"//test/e2e/framework/node:go_default_library",
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
|
48
test/e2e/framework/kubelet/kubelet_pods.go
Normal file
48
test/e2e/framework/kubelet/kubelet_pods.go
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2019 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kubelet
|
||||||
|
|
||||||
|
import (
|
||||||
|
v1 "k8s.io/api/core/v1"
|
||||||
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetKubeletPods retrieves the list of pods on the kubelet.
|
||||||
|
func GetKubeletPods(c clientset.Interface, node string) (*v1.PodList, error) {
|
||||||
|
return getKubeletPods(c, node, "pods")
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetKubeletRunningPods retrieves the list of running pods on the kubelet. The pods
|
||||||
|
// includes necessary information (e.g., UID, name, namespace for
|
||||||
|
// pods/containers), but do not contain the full spec.
|
||||||
|
func GetKubeletRunningPods(c clientset.Interface, node string) (*v1.PodList, error) {
|
||||||
|
return getKubeletPods(c, node, "runningpods")
|
||||||
|
}
|
||||||
|
|
||||||
|
func getKubeletPods(c clientset.Interface, node, resource string) (*v1.PodList, error) {
|
||||||
|
result := &v1.PodList{}
|
||||||
|
client, err := e2enode.ProxyRequest(c, node, resource, ports.KubeletPort)
|
||||||
|
if err != nil {
|
||||||
|
return &v1.PodList{}, err
|
||||||
|
}
|
||||||
|
if err = client.Into(result); err != nil {
|
||||||
|
return &v1.PodList{}, err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
}
|
@ -503,7 +503,7 @@ func GetKubeletHeapStats(c clientset.Interface, nodeName string) (string, error)
|
|||||||
|
|
||||||
// PrintAllKubeletPods outputs status of all kubelet pods into log.
|
// PrintAllKubeletPods outputs status of all kubelet pods into log.
|
||||||
func PrintAllKubeletPods(c clientset.Interface, nodeName string) {
|
func PrintAllKubeletPods(c clientset.Interface, nodeName string) {
|
||||||
podList, err := GetKubeletPods(c, nodeName)
|
podList, err := e2ekubelet.GetKubeletPods(c, nodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", nodeName, err)
|
e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", nodeName, err)
|
||||||
return
|
return
|
||||||
|
@ -81,6 +81,7 @@ import (
|
|||||||
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
||||||
taintutils "k8s.io/kubernetes/pkg/util/taints"
|
taintutils "k8s.io/kubernetes/pkg/util/taints"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/ginkgowrapper"
|
"k8s.io/kubernetes/test/e2e/framework/ginkgowrapper"
|
||||||
|
e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
||||||
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"
|
||||||
@ -1782,7 +1783,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)
|
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)
|
logFunc("\nLogging pods the kubelet thinks is on node %v", n)
|
||||||
podList, err := GetKubeletPods(c, n)
|
podList, err := e2ekubelet.GetKubeletPods(c, n)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logFunc("Unable to retrieve kubelet pods for node %v: %v", n, err)
|
logFunc("Unable to retrieve kubelet pods for node %v: %v", n, err)
|
||||||
continue
|
continue
|
||||||
@ -2793,34 +2794,6 @@ func UnblockNetwork(from string, to string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetKubeletPods retrieves the list of pods on the kubelet.
|
|
||||||
// TODO(alejandrox1): move to pod subpkg once node methods have been refactored.
|
|
||||||
func GetKubeletPods(c clientset.Interface, node string) (*v1.PodList, error) {
|
|
||||||
return getKubeletPods(c, node, "pods")
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetKubeletRunningPods retrieves the list of running pods on the kubelet. The pods
|
|
||||||
// includes necessary information (e.g., UID, name, namespace for
|
|
||||||
// pods/containers), but do not contain the full spec.
|
|
||||||
// TODO(alejandrox1): move to pod subpkg once node methods have been refactored.
|
|
||||||
func GetKubeletRunningPods(c clientset.Interface, node string) (*v1.PodList, error) {
|
|
||||||
return getKubeletPods(c, node, "runningpods")
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(alejandrox1): move to pod subpkg once node methods have been
|
|
||||||
// refactored.
|
|
||||||
func getKubeletPods(c clientset.Interface, node, resource string) (*v1.PodList, error) {
|
|
||||||
result := &v1.PodList{}
|
|
||||||
client, err := e2enode.ProxyRequest(c, node, resource, ports.KubeletPort)
|
|
||||||
if err != nil {
|
|
||||||
return &v1.PodList{}, err
|
|
||||||
}
|
|
||||||
if err = client.Into(result); err != nil {
|
|
||||||
return &v1.PodList{}, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// PingCommand is the type to hold ping command.
|
// PingCommand is the type to hold ping command.
|
||||||
type PingCommand string
|
type PingCommand string
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
||||||
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
|
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/volume"
|
"k8s.io/kubernetes/test/e2e/framework/volume"
|
||||||
@ -53,7 +54,7 @@ const (
|
|||||||
func getPodMatches(c clientset.Interface, nodeName string, podNamePrefix string, namespace string) sets.String {
|
func getPodMatches(c clientset.Interface, nodeName string, podNamePrefix string, namespace string) sets.String {
|
||||||
matches := sets.NewString()
|
matches := sets.NewString()
|
||||||
e2elog.Logf("Checking pods on node %v via /runningpods endpoint", nodeName)
|
e2elog.Logf("Checking pods on node %v via /runningpods endpoint", nodeName)
|
||||||
runningPods, err := framework.GetKubeletPods(c, nodeName)
|
runningPods, err := e2ekubelet.GetKubeletPods(c, nodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Error checking running pods on %v: %v", nodeName, err)
|
e2elog.Logf("Error checking running pods on %v: %v", nodeName, err)
|
||||||
return matches
|
return matches
|
||||||
|
@ -54,7 +54,7 @@ type resourceTest struct {
|
|||||||
|
|
||||||
func logPodsOnNodes(c clientset.Interface, nodeNames []string) {
|
func logPodsOnNodes(c clientset.Interface, nodeNames []string) {
|
||||||
for _, n := range nodeNames {
|
for _, n := range nodeNames {
|
||||||
podList, err := framework.GetKubeletRunningPods(c, n)
|
podList, err := e2ekubelet.GetKubeletRunningPods(c, n)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unable to retrieve kubelet pods for node %v", n)
|
e2elog.Logf("Unable to retrieve kubelet pods for node %v", n)
|
||||||
continue
|
continue
|
||||||
|
@ -32,6 +32,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
|
||||||
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
@ -142,7 +143,7 @@ var _ = SIGDescribe("Pods Extended", func() {
|
|||||||
ginkgo.By("verifying the kubelet observed the termination notice")
|
ginkgo.By("verifying the kubelet observed the termination notice")
|
||||||
|
|
||||||
err = wait.Poll(time.Second*5, time.Second*30, func() (bool, error) {
|
err = wait.Poll(time.Second*5, time.Second*30, func() (bool, error) {
|
||||||
podList, err := framework.GetKubeletPods(f.ClientSet, pod.Spec.NodeName)
|
podList, err := e2ekubelet.GetKubeletPods(f.ClientSet, pod.Spec.NodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", pod.Spec.NodeName, err)
|
e2elog.Logf("Unable to retrieve kubelet pods for node %v: %v", pod.Spec.NodeName, err)
|
||||||
return false, nil
|
return false, nil
|
||||||
|
@ -287,7 +287,7 @@ func verifyCPULimits(expected e2ekubelet.ContainersCPUSummary, actual e2ekubelet
|
|||||||
|
|
||||||
func logPods(c clientset.Interface) {
|
func logPods(c clientset.Interface) {
|
||||||
nodeName := framework.TestContext.NodeName
|
nodeName := framework.TestContext.NodeName
|
||||||
podList, err := framework.GetKubeletRunningPods(c, nodeName)
|
podList, err := e2ekubelet.GetKubeletRunningPods(c, nodeName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Logf("Unable to retrieve kubelet pods for node %v", nodeName)
|
e2elog.Logf("Unable to retrieve kubelet pods for node %v", nodeName)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user