在terraform中组织文件夹
我有一个在terraform中组织文件夹,terraform,Terraform,我有一个terraform设置,我在aws中创建资源,我使用s3、ec2以及kubernetes。对于kubernetes我有超过5个.tf文件。我创建了一个名为kube aws的文件夹,并将.tf文件放在那里。现在我有一个如下的设置 scripts/ | s3.tf ec2.tf kube-aws/ | web-deploy.tf web-service.tf app-deploy.tf app-service.tf 这是正确的方法吗?ter
terraform
设置,我在aws
中创建资源,我使用s3
、ec2
以及kubernetes
。对于kubernetes
我有超过5个.tf
文件。我创建了一个名为kube aws
的文件夹,并将.tf
文件放在那里。现在我有一个如下的设置
scripts/
|
s3.tf
ec2.tf
kube-aws/
|
web-deploy.tf
web-service.tf
app-deploy.tf
app-service.tf
这是正确的方法吗?
terraform
也会从kubw-aws
文件夹中选择.tf
文件吗?或者我应该做些其他的事情来完成这项工作。当脚本
是您的工作目录时,kube aws
目录中的资源将不包括在内。scripts
目录在此实例中被视为根模块(请参阅):
运行terraform plan或terraform apply时,工作目录中的.tf文件一起构成根模块
您有两个选项可以包括kube aws
资源:
脚本
目录脚本/*.tf
文件中创建一个块,并传入所需的变量s3.tf
:
模块“kube_aws”{
source=“./kube-aws”
//在这里输入变量
}
您所做的选择完全取决于您,但中的指导非常有说服力:
我们不建议编写仅仅是围绕单个其他资源类型的薄型包装的模块。如果您很难找到与模块中的主资源类型不同的模块名称,这可能表明您的模块没有创建任何新的抽象,因此模块增加了不必要的复杂性。只需直接在调用模块中使用资源类型即可
我建议您选择上面的选项1,即将.tf
文件移动到单个目录中,至少在您明确何时使用模块以及如何最好地构建模块之前。我还强烈建议您熟悉和的官方(和优秀)文档,并查看中的示例模块及其相关源代码(可以在模块页面上找到指向源代码的链接)