トークン値を他の .tf ファイルから他の .tf ファイルに解析します
data.tf
data "external" "get_token" {
program = ["/bin/sh", "${path.module}/get-token.sh"]
}
get-token.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
と同じ値certificate-authority-data
です。
certificate-authority-data
期待どおりの正確な値がありますが、token
nil または空白です。get-token.sh
手動で実行しましたが、問題ありません。しかし、テラフォームがそれを解析したい場合、値は正常に解析されません。'
variable の前後に追加しました${lookup(data.external.get_token.result, "token")}
。動作しないようです。