2017-04-18 1 views
1

Ich versuche kubectl create -n $test_namespace -f <absolute-path-to-tea-rc-file>.yaml von einem Shell-Skript aufrufen.Lauf kubectl Befehl aus dem Inneren eines Shell-Skript erstellen

#!/bin/bash 

current_dir=$(pwd) 
echo "current_dir is $current_dir" 
parentdir="$(dirname "$current_dir")" 
echo $parentdir 
kubectl create -n $test_namespace -f $parentdir/deployment/common/tea-rc.yaml 

Es gibt Fehler wie folgt:

Bhagyashrees-MacBook-Pro:execution_controller bhagyashree$ sh test.sh 
current_dir is /Users/bhagyashree/Documents/FDrepo/armada-ingress-ctl-test/execution_controller 
/Users/bhagyashree/Documents/FDrepo/armada-ingress-ctl-test 
error: unknown command "/Users/bhagyashree/Documents/FDrepo/armada-ingress-ctl-test/deployment/common/tea-rc.yaml" 
See 'kubectl create -h' for help and examples. 

die gleichen Befehl funktioniert, wenn es von einem Endgerät ausgeführt wird. kubectl create -n testnamespace -f /Users/bhagyashree/Documents/FDrepo/armada-ingress-ctl-test/deployment/common/tea-rc.yaml

Was fehlt mir hier?

Antwort

0

Ich denke, es ist, weil die Variable $ test_namespace nicht gesetzt wurde.

Wenn Sie die letzte Zeile in echo "kubectl create -n $test_namespace -f $parentdir/deployment/common/tea-rc.yaml" ändern, sehen Sie, was es versucht zu laufen, es wird wie kubctl create -n -f /path/to/dir/deployment/common/tea-rc.yaml aussehen. Der Namespace darf nicht leer sein.

Sie könnten auch versuchen, eine Zeile wie echo $test_namespace Hinzufügen zu überprüfen.

+0

ja. Der Namespace wurde leer übergeben. Sobald ich den Namespace festgelegt habe, kann ich die Ressource mit der obigen Syntax erstellen. Danke !!! – Bhagyashree

+0

Ich bin froh, dass es funktioniert hat, würdest du es als die richtige Antwort bezeichnen? Vielen Dank. –

+0

Fertig. Markierte es als richtige Antwort. Nochmals vielen Dank @Simon – Bhagyashree

Verwandte Themen