locals {
  region  = "us-central1"
  cluster = var.env == "prod" ? "cicd-cluster-us-central1" : "${var.env}-cicd-cluster-us-central1"
  kubeconfig = templatefile("${path.module}/argocd_kubeconfig.yml.tpl", {
    endpoint = data.google_container_cluster.cicd_cluster.endpoint
    ca       = data.google_container_cluster.cicd_cluster.master_auth.0.cluster_ca_certificate
    region   = local.region
    cluster  = local.cluster
  })
}

data "google_container_cluster" "cicd_cluster" {
  name     = local.cluster
  location = local.region
}

module "kubeconfig" {
  source     = "../../modules/kubeconfig"
  kubeconfig = local.kubeconfig
  path       = "/tmp/${local.cluster}-kubeconfig"
}

resource "kubernetes_secret_v1" "argo_cluster_secret" {
  metadata {
    name      = var.name
    namespace = "argocd"
    annotations = {
      "managed-by" = "argocd.argoproj.io"
    }
    labels = {
      "argocd.argoproj.io/secret-type" = "cluster"
    }
  }

  data = {
    name   = var.name
    server = var.server
    config = var.data
  }
}

output "name" {
  value = var.name
}