output "cluster_id" {
  value       = alicloud_cs_managed_kubernetes.this.id
  description = "ACK cluster ID"
}

output "cluster_name" {
  value       = alicloud_cs_managed_kubernetes.this.name
  description = "ACK cluster name"
}

output "endpoint" {
  value       = data.external.kubeconfig.result.server
  description = "Kubernetes API server endpoint"
}

output "ca" {
  value     = data.external.kubeconfig.result.ca
  sensitive = true
}

output "kubeconfig" {
  value     = base64decode(data.external.kubeconfig.result.kubeconfig_b64)
  sensitive = true
}

output "argocd_config" {
  value = jsonencode({
    tlsClientConfig = {
      insecure = false
      certData = data.external.kubeconfig.result.cert
      keyData  = data.external.kubeconfig.result.key
      caData   = data.external.kubeconfig.result.ca
    }
  })
  sensitive = true
}

output "oidc_issuer" {
  value       = alicloud_cs_managed_kubernetes.this.rrsa_metadata[0].rrsa_oidc_issuer_url
  description = "RRSA OIDC issuer URL"
}

output "oidc_arn" {
  value       = alicloud_cs_managed_kubernetes.this.rrsa_metadata[0].ram_oidc_provider_arn
  description = "RAM OIDC provider ARN"
}

output "vpc_id" {
  value       = alicloud_vpc.this.id
  description = "VPC ID"
}

output "node_vswitch_ids" {
  value       = alicloud_vswitch.node[*].id
  description = "Node vswitch IDs (one per AZ)"
}

output "pod_vswitch_id" {
  value       = alicloud_vswitch.pod.id
  description = "Pod-dedicated vswitch ID"
}

output "security_group_id" {
  value       = alicloud_security_group.this.id
  description = "Cluster security group ID"
}

output "nat_gateway_id" {
  value       = alicloud_nat_gateway.this.id
  description = "NAT Gateway ID"
}

output "nat_eip" {
  value       = alicloud_eip_address.nat.ip_address
  description = "Public EIP address of the NAT Gateway"
}

output "public_ips" {
  value       = flatten(data.alicloud_nat_gateways.this.gateways[*].ip_lists)
  description = "All public IPs associated with the NAT gateway"
}
