从外壳脚本内部运行kubectl创建命令



我试图从shell脚本调用 kubectl create -n $test_namespace -f <absolute-path-to-tea-rc-file>.yaml

#!/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

它给出以下错误:

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.

从终端执行时,同一命令起作用。 kubectl create -n testnamespace -f /Users/bhagyashree/Documents/FDrepo/armada-ingress-ctl-test/deployment/common/tea-rc.yaml

我在这里想念什么?

我认为这是因为尚未设置变量$ test_namespace。

如果将最后一行更改为echo "kubectl create -n $test_namespace -f $parentdir/deployment/common/tea-rc.yaml",您会看到它要运行的内容,看起来像kubctl create -n -f /path/to/dir/deployment/common/tea-rc.yaml。命名空间不能空白。

您也可以尝试添加echo $test_namespace之类的行进行检查。

最新更新