我要将其他 .tf 文件中的令牌值解析为其他 .tf 文件
数据.tf
data "external" "get_token" {
program = ["/bin/sh", "${path.module}/get-token.sh"]
}
获取令牌.sh
#!/bin/bash
token=$(kubectl -n kube-system exec [POD_NAME] cat /var/lib/kube-proxy/kubeconfig 2>/dev/null | grep token | awk '{print $2}'
代理.tf
...
metadata_startup_script = <<-EOT
- name: kube-proxy
user:
token: ${lookup(data.external.get_token.result, "token")}
certificate-authority-data: ${google_container_cluster.new_container_cluster.master_auth.0.cluster_ca_certificate}
...
EOT
我的期望是
token
具有与 with 相同的值certificate-authority-data
。
certificate-authority-data
有一个我期望的精确值,但它token
是 nil 或空白。我已经get-token.sh
手动运行了,这很好。但是当 terraform 要解析它时,该值没有解析成功。我'
在变量之前和之后添加了${lookup(data.external.get_token.result, "token")}
. 似乎不起作用。