terraform { required_providers { kubectl = { source = "gavinbunney/kubectl" version = "1.19.0" } helm = { source = "hashicorp/helm" version = "3.0.2" } kubernetes = { source = "hashicorp/kubernetes" version = "2.38.0" } kustomization = { source = "kbst/kustomization" version = "0.9.6" } } } data "kustomization" "cloudflare-kustomization" { path = "${path.module}/kustomization" } resource "kustomization_resource" "cloudflare" { provider = kustomization for_each = data.kustomization.cloudflare-kustomization.ids manifest = data.kustomization.cloudflare-kustomization.manifests[each.key] } resource "kubectl_manifest" "cloudflare-api-token" { yaml_body = templatefile("${path.module}/secret.yaml", { cloudflare_api_token = var.cloudflare_api_token }) } resource "kubectl_manifest" "cloudflare-tunnel" { yaml_body = templatefile("${path.module}/cluster-tunnel.yaml", { cloudflare_tunnel_name = var.cloudflare_tunnel_name cloudflare_email = var.cloudflare_email cloudflare_domain = var.cloudflare_domain cloudflare_account_id = var.cloudflare_account_id }) depends_on = [kustomization_resource.cloudflare] }