# Generated by Codeface — standard Terraform, no proprietary state.
# Environment: prod
terraform {
required_version = ">= 1.8.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.84"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.14"
}
google = {
source = "hashicorp/google"
version = "~> 6.14"
}
}
}
provider "aws" {
region = "us-east-1"
}
provider "azurerm" {
features {}
}
provider "google" {
project = var.project_id
region = var.region
}
locals {
environment = "prod"
managed_by = "codeface"
}
resource "aws_vpc" "platform" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "platform"
environment = local.environment
managed_by = local.managed_by
}
}
resource "azurerm_resource_group" "platform_eastus" {
location = "eastus"
tags = {
Name = "platform-eastus"
environment = local.environment
managed_by = local.managed_by
}
}
resource "google_compute_network" "shared" {
auto_create_subnetworks = false
routing_mode = "GLOBAL"
labels = {
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_security_group" "app_ingress" {
vpc_id = aws_vpc.platform.id
ingress_cidr = "10.0.0.0/16"
ingress_port = 443
tags = {
Name = "app-ingress"
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_subnet" "private_a" {
vpc_id = aws_vpc.platform.id
cidr_block = "10.0.11.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = false
tags = {
Name = "private-a"
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_subnet" "public_a" {
vpc_id = aws_vpc.platform.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = true
tags = {
Name = "public-a"
environment = local.environment
managed_by = local.managed_by
}
}
resource "google_compute_subnetwork" "shared_central" {
network = google_compute_network.shared.id
ip_cidr_range = "10.20.0.0/20"
region = "us-central1"
private_ip_google_access = true
labels = {
environment = local.environment
managed_by = local.managed_by
}
}
resource "azurerm_virtual_network" "spoke" {
resource_group = azurerm_resource_group.platform_eastus.id
address_space = "10.10.0.0/16"
tags = {
Name = "spoke"
environment = local.environment
managed_by = local.managed_by
}
}
resource "azurerm_kubernetes_cluster" "apps" {
resource_group = azurerm_resource_group.platform_eastus.id
kubernetes_version = "1.31"
node_count = 3
sku_tier = "Standard"
tags = {
Name = "apps"
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_lb" "edge" {
load_balancer_type = "application"
subnet_id = aws_subnet.public_a.id
internal = false
tags = {
Name = "edge"
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_eks_cluster" "payments" {
version = "1.31"
subnet_id = aws_subnet.private_a.id
endpoint_private_access = true
tags = {
Name = "payments"
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_db_instance" "app" {
engine = "postgres"
engine_version = "16.4"
instance_class = "db.r6g.large"
allocated_storage = 100
multi_az = true
backup_retention_period = 14
storage_encrypted = true
subnet_id = aws_subnet.private_a.id
publicly_accessible = false
tags = {
Name = "app"
environment = local.environment
managed_by = local.managed_by
}
}
resource "aws_s3_bucket" "platform_logs" {
force_destroy = false
versioning = true
encryption = "aws:kms"
block_public_access = true
tags = {
Name = "platform-logs"
environment = local.environment
managed_by = local.managed_by
}
}
resource "google_cloud_run_v2_service" "ingest" {
location = "us-central1"
ingress = "INGRESS_TRAFFIC_INTERNAL_ONLY"
cpu = "2"
labels = {
environment = local.environment
managed_by = local.managed_by
}
}