0

尝试实现一个数据模块来引用 Terraform 的“机器人帐户”。

我收到以下错误:

Error: Reference to undeclared resource

  on main.tf line 7, in provider "google":
   7:   credentials   = data.google_secret_manager_secret_version.secret

A data resource "google_secret_manager_secret_version" "secret" has not been
declared in the root module.
Error: Reference to undeclared input variable

  on datamodule\KeydataModule.tf line 3, in data "google_secret_manager_secret_version" "secret":
   3:   secret = "${var.Terra_Auth}"

An input variable with the name "Terra_Auth" has not been declared. This
variable can be declared with a variable "Terra_Auth" {} block.

使用以下main.tf

module "KeydataModule" {
  source = "./datamodule"

}

provider "google" {
  credentials   = data.google_secret_manager_secret_version.secret
  project       = "KubeProject"
  region        = "us-central1"
  zone          = "us-central1-c"
}

resource "google_compute_instance" "vm_instance" {
  name         = "terraform-instance"
  machine_type = "f1-micro"

  boot_disk {
    initialize_params {
      image = "ubuntu-cloud/ubuntu-1804-lts"
    }
  }

  network_interface {
    # A default network is created for all GCP projects
    network       = google_compute_network.vpc_network.self_link
    access_config {
    }
  }
}

resource "google_compute_network" "vpc_network" {
  name                    = "terraform-network"
  auto_create_subnetworks = "true"
}

keydataModule.tf:_

data "google_secret_manager_secret_version" "secret" {
  provider = google-beta
  secret = "${var.Terra_Auth}"
}

以下variables.tf用于创建“Terra Auth”变量:

variable "Terra_Auth" {
   type = string
   description = "Access Key for Terraform Service Account" 
}

最后是一个terraform.tfvars文件,在这种情况下,它包含我的 GCP 帐户中的秘密名称:

Terra_Auth = "Terraform_GCP_Account_Secret" 
4

0 回答 0