我必须使用Terraform Helm提供程序安装Helm图表。我尝试在执行第一个图表之后引入延迟,因为在安装第二个Helm图表之前,有一个先决条件要完成第一个图表和依赖项的安装。使用以下配置脚本:
resource "helm_release" "istio-init" {
name = "istio-init"
repository = "${data.helm_repository.istio.metadata.0.name}"
chart = "istio-init"
version = "${var.istio_version}"
namespace = "${var.istio_namespace}"
}
resource "null_resource" "delay" {
provisioner "local-exec" {
command = "sleep 200"
}
depends_on = ["helm_release.istio-init"]
}
resource "helm_release" "istio" {
name = "istio"
repository = "${data.helm_repository.istio.metadata.0.name}"
chart = "istio"
version = "${var.istio_version}"
namespace = "${var.istio_namespace}"
}
我第一次看到Terraform置备时,我看到“ null_resource”延迟模块运行。当尝试删除资源并重新运行Terraform脚本时,我看到null_resource模块再也不会执行,并且配置错误也消失了。 Terraform供应商是否设计为只能运行一次?
Helm有一个可选的等待标志,它实际上将阻止释放,直到所有资源用完为止。如果在wait
资源上指定了helm_release
变量,Terraform(和Helm会在幕后)将等待所有资源启动。