Terraform 舵图的地形安装

Terraform 舵图的地形安装,terraform,google-kubernetes-engine,dynatrace,helmfile,Terraform,Google Kubernetes Engine,Dynatrace,Helmfile,变量文件包含以下内容: resource "kubernetes_namespace" "app_dynatrace_namespace" { count = var.application_cluster_dynatrace ? 1 : 0 # provider = kubernetes metadata { name = var.splitter_dynatrace_namespace } depends_on = [nu

变量文件包含以下内容:

resource "kubernetes_namespace" "app_dynatrace_namespace" {
  count = var.application_cluster_dynatrace ? 1 : 0
#  provider = kubernetes
   metadata {
    name = var.splitter_dynatrace_namespace
  }

  depends_on = [null_resource.cluster_creation]
}


resource "helm_release" "application_cluster_dynatrace" {
  count = var.application_cluster_dynatrace ? 1 : 0
 # provider = helm
  repository = "https://raw.githubusercontent.com/Dynatrace/helm-charts/master/repos/stable/"
  chart = "dynatrace-oneagent-operator"
  name = "dynatrace-oneagent-operator"
  namespace = var.app_dynatrace_namespace

  values = [
   var.application_cluster_dynatrace ? "${file("dev/dynatrace/dynatrace.yaml")}" : null
  ]

  depends_on = [kubernetes_namespace.app_dynatrace_namespace]
}
我正在使用上面的terraform脚本在kubernetes集群中创建一个名称空间,然后安装dynatrace代理的helm图表。当我运行脚本并在运行时提到“0”或false时,terraform会破坏名称空间和dynatrace配置。terraform中是否有一种方法可以在运行时传递“0”或false时不破坏命名空间(忽略步骤)

地形v0.12.26

  • provider.googlev3.24.0
  • provider.google-beta v3.33.0
  • provider.helm v1.2.2
  • provider.kubernetes v1.11.3
  • provider.null v2.1.2

首先,这是terraform的预期行为-如果您将计数从1更改为0,对于terraform,这意味着“应部署0个资源”,terraform将其删除

我认为可以使用不同的变量来“计数”参数。例如,对于app_dynatrace_namespace,您可以设置“application_cluster_dynatrace_namespace”,对于application_cluster_dynatrace,您可以保留application_cluster_dynatrace

 variable "application_cluster_dynatrace" {}
    variable "app_dynatrace_namespace" { default = "devns" }