openstack-infrastructure-te.../s2i2s/project-setup/main.tf

72 lines
3.1 KiB
HCL

# S2I2S Project Setup
# This module sets up the core infrastructure components:
# - Security groups
# - SSH jump proxy VM
# - Internal CA VM
# - HAProxy L7 VMs (targets for Octavia)
# - Prometheus VM
# - OVN-based Octavia load balancer
# Load common variables
module "labs_common_variables" {
source = "../../modules/labs_common_variables"
}
# Load project-specific variables
module "project_variables" {
source = "../variables"
}
# Reference the network/DNS state from main_net_dns_router
data "terraform_remote_state" "privnet_dns_router" {
backend = "local"
config = {
path = "../main_net_dns_router/terraform.tfstate"
}
}
# SSH key reference module
module "ssh_settings" {
source = "../../modules/ssh-key-ref"
}
# Local variables for easier access
locals {
# From network/DNS state
dns_zone_id = data.terraform_remote_state.privnet_dns_router.outputs.dns_zone_id
dns_zone = data.terraform_remote_state.privnet_dns_router.outputs.dns_zone
main_private_network = data.terraform_remote_state.privnet_dns_router.outputs.main_private_network
main_private_network_id = data.terraform_remote_state.privnet_dns_router.outputs.main_private_network_id
main_private_subnet = data.terraform_remote_state.privnet_dns_router.outputs.main_subnet_network
main_private_subnet_id = data.terraform_remote_state.privnet_dns_router.outputs.main_subnet_network_id
os_project_data = data.terraform_remote_state.privnet_dns_router.outputs.os_project_data
# From project variables
basic_services_ip = module.project_variables.basic_services_ip
main_haproxy_l7_ip = module.project_variables.main_haproxy_l7_ip
default_security_group_name = module.project_variables.default_security_group_name
# From common variables
ssh_sources = module.labs_common_variables.ssh_sources
floating_ip_pools = module.labs_common_variables.floating_ip_pools
ssh_jump_proxy = module.labs_common_variables.ssh_jump_proxy
internal_ca_data = module.labs_common_variables.internal_ca_data
ubuntu_2204 = module.labs_common_variables.ubuntu_2204
ubuntu_2404 = module.labs_common_variables.ubuntu_2404
availability_zones_names = module.labs_common_variables.availability_zones_names
ubuntu2204_data_file = module.labs_common_variables.ubuntu2204_data_file
ubuntu2404_data_file = module.labs_common_variables.ubuntu2404_data_file
mtu_size = module.labs_common_variables.mtu_size
main_region = module.labs_common_variables.main_region
resolvers_ip = module.labs_common_variables.resolvers_ip
# From project variables - HAProxy and Prometheus
haproxy_l7_data = module.project_variables.haproxy_l7_data
prometheus_server_data = module.project_variables.prometheus_server_data
# Octavia LB settings for OVN driver
octavia_lb_name = module.project_variables.main_octavia_lb_name
octavia_lb_description = module.project_variables.main_octavia_lb_description
octavia_lb_hostname = "octavia-main-lb"
}