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" } } } resource "kubernetes_namespace" "argocd" { metadata { name = "argocd" } } resource "helm_release" "argocd" { name = "argocd" namespace = "argocd" repository = "https://argoproj.github.io/argo-helm" chart = "argo-cd" depends_on = [kubernetes_namespace.argocd] set = [ { name = "configs.secret.argocdServerAdminPassword", value = bcrypt(var.argocd_admin_password) }, ] } resource "kubectl_manifest" "argocd-tunnel-bind" { depends_on = [helm_release.argocd] yaml_body = templatefile("${path.module}/argocd-ui.yaml", { base_domain = var.cloudflare_domain }) }