相当于戈朗的猫<<EOF



我正在尝试执行以下操作:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: testMap
namespace: default
data:
details:
host: "localhost:${reg_port}"
EOF

在戈兰。

我目前的尝试可以归结为:

func generateConfig(port string) string {
return `
apiVersion: v1
kind: ConfigMap
metadata:
name: testMap
namespace: default
data:
details:
host: "localhost:" + port`
}
func main() {
exec.Command("kubectl", "apply", "-f", "-", generateConfig(5000))
}

我并不特别惊讶地发现它不起作用,有错误:

error: Unexpected args: [
apiVersion: v1
kind: ConfigMap
metadata:
name: testMap
namespace: default
data:
details:
host: "localhost:5000"]

我意识到我将这些作为args传递,并且kubectl希望有一个文件,但我发现自己完全不知道如何继续。

我宁愿不制作一个临时文件或调用一个单独的bash脚本,因为这似乎比我希望的更混乱。

shell here文档指向命令的stdin。

以下是如何将命令的stdin设置为generateConfig:的结果

cmd := exec.Command("kubectl", "apply", "-f", "-")
cmd.Stdin = strings.NewReader(generateConfig("5000"))
if err := cmd.Run(); err != nil {
// handle error
}

相关内容

  • 没有找到相关文章

最新更新