beeta/devops/terraform/outputs.tf
doomtube 3155eacdac
All checks were successful
Build and Push / build-all (push) Successful in 7m17s
Add automatic SSL certificate generation
2026-01-06 04:53:46 -05:00

139 lines
4 KiB
HCL

# =============================================================================
# VPC Outputs
# =============================================================================
output "vpc_id" {
description = "ID of the VPC"
value = module.vpc.vpc_id
}
output "vpc_urn" {
description = "URN of the VPC"
value = module.vpc.vpc_urn
}
# =============================================================================
# Jump Host Outputs
# =============================================================================
output "jump_host_id" {
description = "ID of the jump host droplet"
value = module.jump_host.droplet_id
}
output "jump_host_public_ip" {
description = "Public IPv4 address of the jump host"
value = module.jump_host.public_ip
}
output "jump_host_private_ip" {
description = "Private IPv4 address of the jump host (VPC)"
value = module.jump_host.private_ip
}
output "jump_host_ssh_port" {
description = "SSH port for the jump host"
value = var.jump_host_ssh_port
}
# =============================================================================
# Forgejo Outputs
# =============================================================================
output "forgejo_droplet_id" {
description = "ID of the Forgejo droplet"
value = module.forgejo.droplet_id
}
output "forgejo_public_ip" {
description = "Public IPv4 address of the Forgejo droplet"
value = module.forgejo.public_ip
}
output "forgejo_private_ip" {
description = "Private IPv4 address of the Forgejo droplet (VPC)"
value = module.forgejo.private_ip
}
output "forgejo_ssh_port" {
description = "System SSH port for Forgejo (VPC only)"
value = var.forgejo_ssh_port
}
output "forgejo_git_ssh_port" {
description = "Git SSH port for Forgejo (public)"
value = var.forgejo_git_ssh_port
}
output "forgejo_domain" {
description = "Domain name for Forgejo"
value = var.forgejo_domain
}
# =============================================================================
# SSH Key Outputs
# =============================================================================
output "deploy_key_fingerprint" {
description = "Fingerprint of the deploy key (for Forgejo Actions)"
value = module.ssh_keys.deploy_key_fingerprint
}
output "deploy_private_key" {
description = "Private key for Forgejo Actions deployments (store securely!)"
value = module.ssh_keys.deploy_private_key
sensitive = true
}
output "internal_public_key" {
description = "Public key for internal VPC access (jump host -> internal servers)"
value = module.ssh_keys.internal_public_key
}
# =============================================================================
# Firewall Outputs
# =============================================================================
output "jump_host_firewall_id" {
description = "ID of the jump host firewall"
value = module.firewalls.jump_host_firewall_id
}
output "forgejo_firewall_id" {
description = "ID of the Forgejo firewall"
value = module.firewalls.forgejo_firewall_id
}
# =============================================================================
# Connection Info
# =============================================================================
output "ssh_config" {
description = "SSH config snippet for connecting to the infrastructure"
value = <<-EOT
# Add to ~/.ssh/config (Windows: C:\Users\<username>\.ssh\config)
Host realms-jump
HostName ${module.jump_host.public_ip}
Port ${var.jump_host_ssh_port}
User root
IdentityFile ~/.ssh/id_ed25519
Host realms-forgejo
HostName ${module.forgejo.private_ip}
Port ${var.forgejo_ssh_port}
User root
ProxyJump realms-jump
IdentityFile ~/.ssh/id_ed25519
EOT
}
output "dns_record_info" {
description = "DNS record to create for Forgejo"
value = <<-EOT
Create an A record:
Name: qbit (for qbit.realms.pub)
Value: ${module.forgejo.public_ip}
TTL: 300
EOT
}