Terraform with Helm 中的条件集

Tom*_*ron 2 terraform kubernetes-helm

我试图找出在特定条件下在 terraform 中设置 helm 值的最佳方法是什么。例如,我希望下面的代码片段仅在特定用例中执行。否则,我希望 Terraform 忽略它。我的用例是,我想让最终用户运行此 Terraform 来选择是否要配置内部 Azure LB 还是常规 LB。如果是常规的——也在代码中创建的公共 IP 将在值中设置。如果是内部 - Azure 将自动生成一个私有 IP 并将其设置为 LB 的“外部 IP”。

  set {
    name  = "controller.service.loadBalancerIP"
    value = mypuclicip
  }
Run Code Online (Sandbox Code Playgroud)

知道我怎样才能实现它吗?

use*_*601 7

感觉 Terraform 应该有一种更符合人体工程学的方式来做到这一点,但我相信最好的解决方案是使用动态块

dynamic "set" {
  for_each = <condition> ? [mypublicip] : []
  content {
    name  = "controller.service.loadBalancerIP"
    value = set.value
  }
}
Run Code Online (Sandbox Code Playgroud)