I have to install helm charts using Terraform helm provider. I tried introducing a delay after executing the first as there is a prerequisite to finish installation of the first chart and dependency before the second helm chart is installed. With the below provision script:
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}"
}
I see the "null_resource" delay module runs when the terraform provisioning for the first time. When tried deleting the resources and reran the Terraform script I see the null_resource module never gets executed again and the provisioning errors out. Are Terraform provisioners designed to run only once?