通过Terraform变量的平行实例



我被Terraform变量应该做的混淆。现在,他们似乎无用解决我的特定要求,也许我真的在吠叫错误的树。假设我有这样的配置:

variable "majorVersion" {
  type        = "string"
}
module "media-assets" {
  majorVersion   = "${var.majorVersion}"
  region         = "us-east-1"
  bucket         = "uploads-${var.majorVersion}"
  source         = "./modules/media-assets"
  user           = "appics-production"
}

让我们简单地假设资产模块暂时定义了S3存储库。如果我像这样运行Terraform,一切都很好:

terraform apply -var="majorVersion=v1"

但是,如果我用

再次运行它
terraform apply -var="majorVersion=v2"

我希望Terraform独自离开V1的资源!相反,Terraform想要拆除V1!如何完成一组参数化的配置集,而不必为每个版本再次编写整个Shebang?这似乎很乏味,而且旁边!

工作区

工作空间是您的朋友。您使用工作区在"设置"之间切换,而无需触摸脚本。这些"设置"可以是版本,环境,what。

要达到您的特定需求,您可以将其放在您的变量中。tf

variable "majorVersion" {
  type = "map"
  default = {
    v1 = "v1"
    v2 = "v2"
  }
}

module "media-assets" {
  majorVersion   = "${var.majorVersion[terraform.workspace]}"
}

在运行应用命令之前,请选择正确的工作区

terraform workspace select v1

,尽管您可能会看到您需要添加到Majorversion图中。为此,我建议将版本删除从Terraform脚本中删除。

相关内容

  • 没有找到相关文章

最新更新