有没有办法为项目中定义的所有模块抽象提供者。
例如,我有这个项目
├── modules
│ ├── RDS
│ └── VPC
└── stacks
├── production
│ └── main.tf
└── staging
└── main.tf
它工作正常......问题在于模块的定义
├── RDS
│ ├── README.md
│ ├── main.tf
│ ├── providers.tf
│ └── variables.tf
└── VPC
├── README.md
├── main.tf
├── providers.tf
└── variables.tf
这两个模块中的提供者完全相同
# providers.tf
provider "aws" {
region = "${var.region}"
version = "~> 1.26"
}
并且每个模块中的变量都是不同的,但它们都有region
变量。
# variables.tf
variable "region" {
default = "eu-central-1"
description = "AWS region."
}
# other module dependent variables...
有没有办法在模块级别定义这些信息,以便我最终得到大致这样的东西
├── modules
│ ├── providers.tf <<< include the *shared* provider definition block
│ ├── variables.tf <<< include the *shared* region vaiable definition block
│ ├── RDS
│ │ ├── README.md
│ │ ├── main.tf
│ │ └── variables.tf
│ └── VPC
│ ├── README.md
│ ├── main.tf
│ └── variables.tf
最后一件事,模块定义大部分时间都具有资源属性(从 terraform 注册表中提取模块......因此我不知道从注册表和基本模块继承源是否可行)