hearth/terraform/outputs.tf
Eric Garcia e78000831e Initial commit: Port infrastructure from coherence-mcp
Hearth is the infrastructure home for the letemcook ecosystem.

Ported from coherence-mcp/infra:
- Terraform modules (VPC, EKS, IAM, NLB, S3, storage)
- Kubernetes manifests (Forgejo, ingress, cert-manager, karpenter)
- Deployment scripts (phased rollout)

Status: Not deployed. EKS cluster needs to be provisioned.

Next steps:
1. Bootstrap terraform backend
2. Deploy phase 1 (foundation)
3. Deploy phase 2 (core services including Forgejo)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 06:06:13 -05:00

146 lines
3.4 KiB
HCL

# Foundation Infrastructure - Outputs
# RFC 0039: ADR-Compliant Foundation Infrastructure
# VPC Outputs
output "vpc_id" {
description = "VPC ID"
value = module.vpc.vpc_id
}
output "vpc_cidr" {
description = "VPC CIDR block"
value = module.vpc.vpc_cidr
}
output "private_subnet_ids" {
description = "Private subnet IDs"
value = module.vpc.private_subnet_ids
}
output "public_subnet_ids" {
description = "Public subnet IDs"
value = module.vpc.public_subnet_ids
}
output "database_subnet_ids" {
description = "Database subnet IDs"
value = module.vpc.database_subnet_ids
}
# EKS Outputs
output "cluster_name" {
description = "EKS cluster name"
value = module.eks.cluster_name
}
output "cluster_endpoint" {
description = "EKS cluster API endpoint"
value = module.eks.cluster_endpoint
}
output "cluster_certificate_authority_data" {
description = "EKS cluster CA certificate"
value = module.eks.cluster_certificate_authority_data
sensitive = true
}
output "cluster_oidc_issuer_url" {
description = "OIDC issuer URL for IRSA"
value = module.eks.cluster_oidc_issuer_url
}
# Storage Outputs
output "efs_id" {
description = "EFS filesystem ID"
value = module.storage.efs_id
}
output "backup_bucket_name" {
description = "S3 bucket for backups"
value = module.storage.backup_bucket_name
}
output "blob_bucket_name" {
description = "S3 bucket for blob storage"
value = module.storage.blob_bucket_name
}
# NLB Outputs
output "nlb_dns_name" {
description = "NLB DNS name"
value = module.nlb.dns_name
}
output "nlb_zone_id" {
description = "NLB Route53 zone ID"
value = module.nlb.zone_id
}
output "nlb_arn" {
description = "NLB ARN"
value = module.nlb.arn
}
# IAM Outputs
output "karpenter_role_arn" {
description = "Karpenter IAM role ARN"
value = module.iam.karpenter_role_arn
}
output "ebs_csi_role_arn" {
description = "EBS CSI driver IAM role ARN"
value = module.iam.ebs_csi_role_arn
}
output "efs_csi_role_arn" {
description = "EFS CSI driver IAM role ARN"
value = module.iam.efs_csi_role_arn
}
# kubectl Configuration
output "kubectl_config" {
description = "kubectl configuration command"
value = "aws eks update-kubeconfig --region ${var.aws_region} --name ${module.eks.cluster_name}"
}
# S3 Module Outputs
output "email_blobs_bucket_id" {
description = "S3 bucket ID for email blobs"
value = module.s3.email_blobs_bucket_id
}
output "loki_chunks_bucket_id" {
description = "S3 bucket ID for Loki log chunks"
value = module.s3.loki_chunks_bucket_id
}
output "tempo_traces_bucket_id" {
description = "S3 bucket ID for Tempo traces"
value = module.s3.tempo_traces_bucket_id
}
output "git_lfs_bucket_id" {
description = "S3 bucket ID for Git LFS objects"
value = module.s3.git_lfs_bucket_id
}
# IAM Policies for IRSA
output "loki_s3_policy_arn" {
description = "IAM policy ARN for Loki S3 access"
value = module.s3.loki_s3_policy_arn
}
output "tempo_s3_policy_arn" {
description = "IAM policy ARN for Tempo S3 access"
value = module.s3.tempo_s3_policy_arn
}
output "stalwart_s3_policy_arn" {
description = "IAM policy ARN for Stalwart S3 access"
value = module.s3.stalwart_s3_policy_arn
}
output "forgejo_s3_policy_arn" {
description = "IAM policy ARN for Forgejo S3 access"
value = module.s3.forgejo_s3_policy_arn
}