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