Fix path to kubectl on host in kubectl-in-pod

kubectl-in-pod.json has a hardcoded path for
kubectl in its hostPath ('/usr/bin/kubectl').
When the test actually runs on gke, kubectl
is available at '/workspace/kubernetes/platforms/linux/amd64/kubectl'
and NOT at '/usr/bin/kubectl'. So we need to
fix the hostPath for the test to work properly.

Fixes #36586
This commit is contained in:
Davanum Srinivas 2016-11-15 21:05:23 -05:00
parent fedf17826b
commit e605398fcf
2 changed files with 9 additions and 2 deletions

View File

@ -566,8 +566,15 @@ var _ = framework.KubeDescribe("Kubectl client", func() {
framework.SkipUnlessProviderIs("gke")
nsFlag := fmt.Sprintf("--namespace=%v", ns)
podJson := readTestFileOrDie(kubectlInPodFilename)
// Replace the host path to kubectl in json
podString := strings.Replace(string(podJson),
"$KUBECTL_PATH",
framework.TestContext.KubectlPath,
1)
By("validating api verions")
framework.RunKubectlOrDieInput(string(podJson), "create", "-f", "-", nsFlag)
framework.RunKubectlOrDieInput(podString, "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") {

View File

@ -20,7 +20,7 @@
],
"volumes": [{
"name":"kubectl",
"hostPath":{"path": "/usr/bin/kubectl"}
"hostPath":{"path": "$KUBECTL_PATH"}
}]
}
}