У меня есть модуль cluster
, который раскручивает кластер GKE и связанные корзины GCS. Бэкендом для этого является GCS-контейнер с именем cluster_tf_state_bucket
. Я определил выход в этом модуле
output "vault_storage_bucket_name" {
value = "${google_storage_bucket.vault_storage.name}"
}
. После запуска кода я получаю вывод
* 1009. *
Теперь у меня есть другой модуль vault
, и в этом модуле мне нужно вызвать значение vault_storage_bucket_name
из другого модуля, который использует другой бэкэнд-контейнер GCS.
Так что в основном .tf моего vault
модуля, я делаю что-то вроде
terraform {
required_version = ">= 0.12.2"
}
terraform {
backend "gcs" {
bucket = "app_tf_state_bucket"
prefix = "vault"
}
}
data "terraform_remote_state" "cluster_vault" {
backend = "gcs"
config = {
bucket = "cluster_tf_state_bucket"
}
}
module "vault" {
source = "../../../modules/vault"
env = "test"
region = "europe-west5"
storage_bucket_name = "${data.terraform_remote_state.cluster_vault.vault_storage_bucket_name}"
Но когда я запускаю этот код, я получаю
Error: Unsupported argument
on main.tf line 24, in module "vault":
24: storage_bucket_name = "${data.terraform_remote_state.cluster_vault.vault_storage_bucket_name}"
An argument named "storage_bucket_name" is not expected here.
Я решил вышеупомянутую проблему, добавив нижеприведенную файл `variables.tf
variable "storage_bucket_name"{
type = "string"
}
А теперь я сталкиваюсь с ошибкой
Error: Unsupported attribute
on main.tf line 24, in module "vault":
24: storage_bucket_name = "${data.terraform_remote_state.cluster_vault.vault_storage_bucket_name}"
This object has no argument, nested block, or exported attribute named
"vault_storage_bucket_name".
Чего мне здесь не хватает?