mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +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"
|
||||
redisControllerFilename = "redis-master-controller.json"
|
||||
redisServiceFilename = "redis-master-service.json"
|
||||
kubectlInPodFilename = "kubectl-in-pod.json"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -537,9 +538,6 @@ var _ = framework.KubeDescribe("Kubectl client", func() {
|
||||
Expect(logOutput).ToNot(ContainSubstring("stdin closed"))
|
||||
return strings.Contains(logOutput, "abcd1234"), nil
|
||||
})
|
||||
if err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
Expect(err).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() {
|
||||
It("should check if v1 is in available api versions [Conformance]", func() {
|
||||
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 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 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 update the taint on a node,pwittrock,0
|
||||
Kubectl client Kubectl version should check is all data is printed,janetkuo,0
|
||||
|
|
Loading…
Reference in New Issue
Block a user