mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +00:00
Merge pull request #33850 from ymqytw/add_e2e_test_for_kubectl_in_pod
Automatic merge from submit-queue add e2e test for kubectl in a Pod Add a e2e test to make sure kubectl can talk to the api server when it is mounted in a pod. Fixes: #33138
This commit is contained in:
commit
ee029d9f3f
@ -90,6 +90,7 @@ const (
|
|||||||
kubeCtlManifestPath = "test/e2e/testing-manifests/kubectl"
|
kubeCtlManifestPath = "test/e2e/testing-manifests/kubectl"
|
||||||
redisControllerFilename = "redis-master-controller.json"
|
redisControllerFilename = "redis-master-controller.json"
|
||||||
redisServiceFilename = "redis-master-service.json"
|
redisServiceFilename = "redis-master-service.json"
|
||||||
|
kubectlInPodFilename = "kubectl-in-pod.json"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -537,9 +538,6 @@ var _ = framework.KubeDescribe("Kubectl client", func() {
|
|||||||
Expect(logOutput).ToNot(ContainSubstring("stdin closed"))
|
Expect(logOutput).ToNot(ContainSubstring("stdin closed"))
|
||||||
return strings.Contains(logOutput, "abcd1234"), nil
|
return strings.Contains(logOutput, "abcd1234"), nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
Expect(err).To(BeNil())
|
Expect(err).To(BeNil())
|
||||||
|
|
||||||
Expect(c.Batch().Jobs(ns).Delete("run-test-3", nil)).To(BeNil())
|
Expect(c.Batch().Jobs(ns).Delete("run-test-3", nil)).To(BeNil())
|
||||||
@ -563,6 +561,30 @@ var _ = framework.KubeDescribe("Kubectl client", func() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
framework.KubeDescribe("Kubectl should be able to talk to api server", func() {
|
||||||
|
It("kubectl running in a pod could talk to api server [Conformance]", func() {
|
||||||
|
framework.SkipUnlessProviderIs("gke")
|
||||||
|
nsFlag := fmt.Sprintf("--namespace=%v", ns)
|
||||||
|
podJson := readTestFileOrDie(kubectlInPodFilename)
|
||||||
|
By("validating api verions")
|
||||||
|
framework.RunKubectlOrDieInput(string(podJson), "create", "-f", "-", nsFlag)
|
||||||
|
err := wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
|
||||||
|
output := framework.RunKubectlOrDie("get", "pods/kubectl-in-pod", nsFlag)
|
||||||
|
if strings.Contains(output, "Running") {
|
||||||
|
return true, nil
|
||||||
|
} else {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
})
|
||||||
|
Expect(err).To(BeNil())
|
||||||
|
output := framework.RunKubectlOrDie("exec", "kubectl-in-pod", nsFlag, "--", "kubectl", "version")
|
||||||
|
if !strings.Contains(output, "Server Version") {
|
||||||
|
framework.Failf("kubectl in the pod fails to talk to api server")
|
||||||
|
}
|
||||||
|
framework.RunKubectlOrDie("delete", "pods", "kubectl-in-pod", nsFlag)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
framework.KubeDescribe("Kubectl api-versions", func() {
|
framework.KubeDescribe("Kubectl api-versions", func() {
|
||||||
It("should check if v1 is in available api versions [Conformance]", func() {
|
It("should check if v1 is in available api versions [Conformance]", func() {
|
||||||
By("validating api verions")
|
By("validating api verions")
|
||||||
|
26
test/e2e/testing-manifests/kubectl/kubectl-in-pod.json
Normal file
26
test/e2e/testing-manifests/kubectl/kubectl-in-pod.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"apiVersion": "v1",
|
||||||
|
"kind": "Pod",
|
||||||
|
"metadata": {
|
||||||
|
"name": "kubectl-in-pod"
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
"containers": [
|
||||||
|
{
|
||||||
|
"name": "busybox",
|
||||||
|
"image": "busybox",
|
||||||
|
"stdin": true,
|
||||||
|
"stdinOnce": true,
|
||||||
|
"tty": true,
|
||||||
|
"volumeMounts": [{
|
||||||
|
"mountPath": "/usr/bin/kubectl",
|
||||||
|
"name": "kubectl"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"volumes": [{
|
||||||
|
"name":"kubectl",
|
||||||
|
"hostPath":{"path": "/usr/bin/kubectl"}
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
@ -208,6 +208,7 @@ Kubectl client Kubectl run deployment should create a deployment from an image,j
|
|||||||
Kubectl client Kubectl run job should create a job from an image when restart is OnFailure,soltysh,0
|
Kubectl client Kubectl run job should create a job from an image when restart is OnFailure,soltysh,0
|
||||||
Kubectl client Kubectl run pod should create a pod from an image when restart is Never,janetkuo,0
|
Kubectl client Kubectl run pod should create a pod from an image when restart is Never,janetkuo,0
|
||||||
Kubectl client Kubectl run rc should create an rc from an image,janetkuo,0
|
Kubectl client Kubectl run rc should create an rc from an image,janetkuo,0
|
||||||
|
Kubectl client Kubectl should be able to talk to api server kubectl running in a pod could talk to api server,ymqytw,0
|
||||||
Kubectl client Kubectl taint should remove all the taints with the same key off a node,erictune,1
|
Kubectl client Kubectl taint should remove all the taints with the same key off a node,erictune,1
|
||||||
Kubectl client Kubectl taint should update the taint on a node,pwittrock,0
|
Kubectl client Kubectl taint should update the taint on a node,pwittrock,0
|
||||||
Kubectl client Kubectl version should check is all data is printed,janetkuo,0
|
Kubectl client Kubectl version should check is all data is printed,janetkuo,0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user