kubernetes 如何访问Terraform中不同目录中的文件和变量?

gk7wooem  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(76)

我们在Linux系统上有下面的目录结构。

/root
   ├─dirA
   │  ├─main.tf
   │  ├─terraform.tfvars
   │  └─variables.tf
   └─dirB
      └─main.tf

字符串

==第一个=

我们在dirAmain.tf文件中使用下面的代码片段来创建本地kubeconfig文件。

resource "local_file" "kubeconfig" {
  content  = module.gke_auth.kubeconfig_raw
  filename = "./kubeconfig"
}


现在,我们希望访问下面代码段中dirBmain.tf文件中的kubeconfig文件。请建议如何做到这一点?

provider "kubernetes" {
  config_path    = "<PATH_TO_KUBECONFIG_FILE>"
}

==第二个=

我们已经在dirAterraform.tfvars文件中定义了一些变量,我们希望在dirBmain.tf文件中访问这些变量。请建议如何做到这一点。

2eafrhcq

2eafrhcq1#

我们通过下面的设置解决了这两个问题。
文件dirA/main.tf包含类似于

resource "local_file" "kubeconfig" {
  content  = module.gke_auth.kubeconfig_raw
  filename = "${path.module}/kubeconfig"
}

output "kubeconfig_file" {
  value = "${path.cwd}/kubeconfig"
}

字符串
文件dirB/main.tf包含类似于

data "terraform_remote_state" "kubeconfig_file" {
  backend = "local"

  config = {
    path = "${path.module}/../dirA/terraform.tfstate"
  }
}

provider "kubernetes" {
  config_path = "${data.terraform_remote_state.kubeconfig_file.outputs.kubeconfig_file}"
}


最后:

cd dirA
terraform apply
cd ../dirB
terraform apply

  • 注意:以类似的方式,我们可以从不同目录的堆栈中访问变量 *

相关问题