0

我想使用 terraform 的 EKS 模块。

module "eks" {
    source = "terraform-aws-modules/eks/aws"
    version = "17.22.0"
    ...
}

这工作正常。

我想要实现的是,如果模块已经在本地存在,则 terraform 不会下载该模块。我正在使用 terraform 变量TF_DATA_DIR来设置 terraform 的数据目录。

export TF_DATA_DIR="${SOME_DIR}/.terraform"

当我运行terraform initEKS 模块时,仍然从注册表中提取,即使该模块在本地存在。当我terraform init第二次运行时,这不会发生。

terraform init
terraform init

输出:

...
Initializing modules...
Downloading terraform-aws-modules/eks/aws 17.22.0 for eks.eks...
- eks.eks in .terraform/modules/eks.eks
- eks.eks.fargate in .terraform/modules/eks.eks/modules/fargate
- eks.eks.node_groups in .terraform/modules/eks.eks/modules/node_groups
...
Initializing modules...
...

这些文件总是被加载,"${SOME_DIR}/.terraform"所以我希望它TF_DATA_DIR能够按预期工作。

当模块已经存在时,如何防止 terraform 下载模块?我不想使用本地路径,我想使用缓存机制。

我正在使用 Terraform 版本 0.14.7

4

1 回答 1

0

找到了解决方案:

由于我为每次执行使用了TF_DATA_DIR具有不同值的 terraform 变量,因此内容不同,因此已重新下载。terraform init.terraform/modules/modules.json

于 2021-11-02T14:12:30.960 回答