module "cert-manager" {
  source = "../../modules/app"

  kubeconfig_path = module.kubeconfig.path
  workflow        = "deploy-new-region-next-gen-cert-manager.yaml"
  parameters = {
    cloud                = "alicloud"
    env                  = var.env
    region               = var.cloud_region
    logicalRegionName    = var.logical_region_name
    cluster              = local.cluster_name
    alicloudRrsaRoleName = module.ram.cert_manager_role_name
  }
  services = [
    {
      name      = "deploy/cert-manager"
      namespace = "cert-manager"
      wait_for  = "jsonpath='{.status.availableReplicas}'=REPLICAS"
    }
  ]
}

module "issuers" {
  source = "../../modules/app"

  depends_on = [module.cert-manager]

  kubeconfig_path = module.kubeconfig.path
  workflow        = "deploy-new-region-next-gen-issuers.yaml"
  parameters = {
    cloud             = "alicloud"
    env               = var.env
    region            = var.cloud_region
    logicalRegionName = var.logical_region_name
    cluster           = local.cluster_name
  }
  services = [
    {
      name     = "ClusterIssuer/letsencrypt-issuer"
      wait_for = "condition=Ready"
    }
  ]
}

module "alidns-webhook" {
  source = "../../modules/app"

  kubeconfig_path = module.kubeconfig.path
  workflow        = "deploy-new-region-next-gen-alidns-webhook.yaml"
  parameters = {
    env                  = var.env
    logicalRegionName    = var.logical_region_name
    cluster              = local.cluster_name
    alicloudRrsaRoleName = module.ram.cert_manager_role_name
    imageRegistry        = local.image_registry
  }
  services = [
    {
      name      = "deploy/alidns-webhook"
      namespace = "cert-manager"
      wait_for  = "jsonpath='{.status.availableReplicas}'=REPLICAS"
    }
  ]
}
