Initial commit - realms platform
This commit is contained in:
parent
c590ab6d18
commit
c717c3751c
234 changed files with 74103 additions and 15231 deletions
107
devops/terraform/main.tf
Normal file
107
devops/terraform/main.tf
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
# =============================================================================
|
||||
# realms.india - DigitalOcean Infrastructure (Phase A: Jump Host + Forgejo)
|
||||
# =============================================================================
|
||||
|
||||
locals {
|
||||
common_tags = concat([
|
||||
var.project_name,
|
||||
var.environment,
|
||||
"terraform-managed"
|
||||
], var.tags)
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# VPC Module
|
||||
# =============================================================================
|
||||
|
||||
module "vpc" {
|
||||
source = "./modules/vpc"
|
||||
|
||||
name = "${var.project_name}-vpc-${var.environment}"
|
||||
region = var.region
|
||||
ip_range = var.vpc_ip_range
|
||||
description = "VPC for ${var.project_name} ${var.environment} environment"
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# SSH Keys Module
|
||||
# =============================================================================
|
||||
|
||||
module "ssh_keys" {
|
||||
source = "./modules/ssh_keys"
|
||||
|
||||
project_name = var.project_name
|
||||
environment = var.environment
|
||||
admin_ssh_public_keys = var.admin_ssh_public_keys
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Jump Host Module (Bastion)
|
||||
# =============================================================================
|
||||
|
||||
module "jump_host" {
|
||||
source = "./modules/jump_host"
|
||||
|
||||
project_name = var.project_name
|
||||
environment = var.environment
|
||||
region = var.region
|
||||
vpc_uuid = module.vpc.vpc_id
|
||||
vpc_ip_range = var.vpc_ip_range
|
||||
ssh_keys = module.ssh_keys.all_ssh_key_ids
|
||||
droplet_size = var.jump_host_size
|
||||
droplet_image = var.jump_host_image
|
||||
ssh_port = var.jump_host_ssh_port
|
||||
enable_backups = var.enable_droplet_backups
|
||||
tags = local.common_tags
|
||||
internal_private_key = module.ssh_keys.internal_private_key
|
||||
|
||||
depends_on = [module.vpc, module.ssh_keys]
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Forgejo Module
|
||||
# =============================================================================
|
||||
|
||||
module "forgejo" {
|
||||
source = "./modules/forgejo"
|
||||
|
||||
project_name = var.project_name
|
||||
environment = var.environment
|
||||
region = var.region
|
||||
vpc_uuid = module.vpc.vpc_id
|
||||
vpc_ip_range = var.vpc_ip_range
|
||||
ssh_keys = module.ssh_keys.forgejo_ssh_key_ids
|
||||
droplet_size = var.forgejo_droplet_size
|
||||
droplet_image = var.forgejo_droplet_image
|
||||
volume_size = var.forgejo_volume_size
|
||||
ssh_port = var.forgejo_ssh_port
|
||||
git_ssh_port = var.forgejo_git_ssh_port
|
||||
domain = var.forgejo_domain
|
||||
enable_backups = var.enable_droplet_backups
|
||||
tags = local.common_tags
|
||||
|
||||
# DNS Configuration
|
||||
manage_dns = var.manage_dns
|
||||
dns_zone = var.dns_zone
|
||||
dns_record_name = "qbit" # Creates qbit.realms.pub
|
||||
|
||||
depends_on = [module.vpc, module.ssh_keys]
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
# Firewalls Module
|
||||
# =============================================================================
|
||||
|
||||
module "firewalls" {
|
||||
source = "./modules/firewalls"
|
||||
|
||||
project_name = var.project_name
|
||||
environment = var.environment
|
||||
vpc_ip_range = var.vpc_ip_range
|
||||
jump_host_droplet_id = module.jump_host.droplet_id
|
||||
jump_host_ssh_port = var.jump_host_ssh_port
|
||||
forgejo_droplet_id = module.forgejo.droplet_id
|
||||
forgejo_git_ssh_port = var.forgejo_git_ssh_port
|
||||
|
||||
depends_on = [module.jump_host, module.forgejo]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue