Terraform 模块:变量的正确引用?
Terraform modules: correct references of variables?
我正在编写一个 terraform 脚本来创建一个 EKS 集群及其在 AWS 上的工作节点。第一次这样做,所以我有点困惑。
这是文件夹组织:
├─── Int AWS Account
│ ├─── variables.tf
│ ├─── eks-cluster.tf (refers the modules)
│ ├─── others
│
├─── Prod AWS Account
│ ├─── (will be the same than Int with different settings in variables)
│
├─── ReadMe.md
│
├─── data sources
│
├─── Modules
│ ├─── cluster.tf
│ ├─── worker-nodes.tf
│ ├─── worker-nodes-sg.tf
我对如何使用和传递变量有点困惑。现在,我正在做的是在模块文件夹中引用 ${var.name},在 eks-cluster.tf 中,我要么放一个直接值 name = blabla(主要是避免它) ,或者再次引用变量,在账户文件夹中有一个变量文件。
对吗?
我不确定我是否正确地回答了你的问题,但一般来说,你会希望你的模块文件只包含变量,因为模块是通用的,因此你可以轻松地将它们包含在不同的环境中。
当在 eks_cluster_int.tf
或 eks_cluster_prod.tf
中包含模块时,您将传递模块本身定义的所有变量的值。这样您就可以在同一模块中使用环境特定值。
module "cluster" {
source = "..."
var1 = value1 # directly passing value
var2 = ${var.int_specific_var} # can be defined in variables.tf of environment
...
}
这是否回答了您的问题?
我正在编写一个 terraform 脚本来创建一个 EKS 集群及其在 AWS 上的工作节点。第一次这样做,所以我有点困惑。 这是文件夹组织:
├─── Int AWS Account
│ ├─── variables.tf
│ ├─── eks-cluster.tf (refers the modules)
│ ├─── others
│
├─── Prod AWS Account
│ ├─── (will be the same than Int with different settings in variables)
│
├─── ReadMe.md
│
├─── data sources
│
├─── Modules
│ ├─── cluster.tf
│ ├─── worker-nodes.tf
│ ├─── worker-nodes-sg.tf
我对如何使用和传递变量有点困惑。现在,我正在做的是在模块文件夹中引用 ${var.name},在 eks-cluster.tf 中,我要么放一个直接值 name = blabla(主要是避免它) ,或者再次引用变量,在账户文件夹中有一个变量文件。
对吗?
我不确定我是否正确地回答了你的问题,但一般来说,你会希望你的模块文件只包含变量,因为模块是通用的,因此你可以轻松地将它们包含在不同的环境中。
当在 eks_cluster_int.tf
或 eks_cluster_prod.tf
中包含模块时,您将传递模块本身定义的所有变量的值。这样您就可以在同一模块中使用环境特定值。
module "cluster" {
source = "..."
var1 = value1 # directly passing value
var2 = ${var.int_specific_var} # can be defined in variables.tf of environment
...
}
这是否回答了您的问题?