output "cluster_name" {
  value       = module.eks.cluster_name
  description = "EKS cluster name"
}

output "endpoint" {
  value       = module.eks.cluster_endpoint
  description = "Kubernetes API server endpoint"
}

output "ca" {
  value     = module.eks.cluster_certificate_authority_data
  sensitive = true
}

output "oidc_issuer" {
  value       = module.eks.cluster_oidc_issuer_url
  description = "EKS OIDC issuer URL"
}

output "oidc_provider_arn" {
  value       = module.eks.oidc_provider_arn
  description = "EKS OIDC provider ARN"
}

output "vpc_id" {
  value       = module.vpc.vpc_id
  description = "VPC ID"
}

output "private_subnets" {
  value       = module.vpc.private_subnets
  description = "Private subnet IDs"
}

output "public_subnets" {
  value       = module.vpc.public_subnets
  description = "Public subnet IDs"
}

output "public_ips" {
  value       = module.vpc.nat_public_ips
  description = "Public IPs of the NAT gateway"
}

output "rds_endpoint" {
  value       = var.enable_rds ? aws_db_instance.this[0].address : null
  description = "RDS MySQL endpoint (null when enable_rds = false)"
}

output "rds_secret_arn" {
  value       = var.enable_rds ? aws_secretsmanager_secret.rds_credentials[0].arn : null
  description = "Secrets Manager ARN of the RDS credentials (null when enable_rds = false)"
}

output "endpoint_service_id" {
  value       = aws_vpc_endpoint_service.this.id
  description = "VPC endpoint service ID for the prometheus NLB"
}

output "endpoint_service_dns_name" {
  value       = local.endpoint_service_dns
  description = "Private DNS name of the VPC endpoint service"
}

output "argocd_config" {
  value       = local.argocd_config
  sensitive   = true
  description = "ArgoCD cluster secret config for this cluster"
}
