data "google_client_config" "default" {} locals { coder_helm_repo = "https://helm.coder.com/v2" coder_helm_chart = "coder" coder_release_name = var.name coder_namespace = "coder-${var.name}" coder_admin_email = "admin@coder.com" coder_admin_user = "coder" coder_address = google_compute_address.coder.address coder_url = "http://${google_compute_address.coder.address}" } provider "kubernetes" { host = "https://${google_container_cluster.primary.endpoint}" cluster_ca_certificate = base64decode(google_container_cluster.primary.master_auth.0.cluster_ca_certificate) token = data.google_client_config.default.access_token } provider "helm" { kubernetes { host = "https://${google_container_cluster.primary.endpoint}" cluster_ca_certificate = base64decode(google_container_cluster.primary.master_auth.0.cluster_ca_certificate) token = data.google_client_config.default.access_token } } resource "kubernetes_namespace" "coder_namespace" { metadata { name = local.coder_namespace } depends_on = [ google_container_node_pool.coder ] } resource "random_password" "postgres-admin-password" { length = 12 } resource "random_password" "coder-postgres-password" { length = 12 } resource "kubernetes_secret" "coder-db" { type = "" # Opaque metadata { name = "coder-db-url" namespace = kubernetes_namespace.coder_namespace.metadata.0.name } data = { url = "postgres://${google_sql_user.coder.name}:${urlencode(random_password.coder-postgres-password.result)}@${google_sql_database_instance.db.private_ip_address}/${google_sql_database.coder.name}?sslmode=disable" } } resource "helm_release" "coder-chart" { repository = local.coder_helm_repo chart = local.coder_helm_chart name = local.coder_release_name version = var.coder_chart_version namespace = kubernetes_namespace.coder_namespace.metadata.0.name depends_on = [ google_container_node_pool.coder, ] values = [<