37 lines
679 B
HCL
37 lines
679 B
HCL
terraform {
|
|
required_version = ">= 1.3.0"
|
|
|
|
required_providers {
|
|
local = {
|
|
source = "hashicorp/local"
|
|
version = "~> 2.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "local" {}
|
|
|
|
locals {
|
|
services = var.vm_definitions
|
|
}
|
|
|
|
module "vm" {
|
|
source = "./modules/vm"
|
|
for_each = local.services
|
|
|
|
service_name = each.key
|
|
provider = var.infrastructure_provider
|
|
region = each.value.region
|
|
tags = each.value.tags
|
|
}
|
|
|
|
# Create a DNS A record for each deployed service
|
|
module "dns" {
|
|
source = "./modules/dns_record"
|
|
for_each = local.services
|
|
|
|
zone_id = var.cloudflare_zone_id
|
|
subdomain = each.key
|
|
ip_address = module.vm[each.key].ip_address
|
|
}
|