Newer
Older
terraform {
required_version = ">= 0.14.0"
required_providers {
openstack = {
source = "terraform-provider-openstack/openstack"
version = "~> 1.42.0"
}
}
}
# is created as a datasource this module and called in root module
variable "public_network_name" {type = string}
variable "name" {default = "dmz"}
variable "admin_state_up" {}
variable "enable_dhcp" {}
Ryan Randles Jones
committed
data "openstack_networking_network_v2" "public_network" {name = var.public_network_name}
resource "openstack_networking_network_v2" "external_network" {
}
resource "openstack_networking_subnet_v2" "external_subnet" {
network_id = openstack_networking_network_v2.external_network.id
cidr = "192.168.100.0/24"
ip_version = 4
dns_nameservers = ["172.20.0.137", "172.20.0.3", "8.8.8.8"]
# defines the router dmzrouter using floating ip defined in datasource above to create the external network id
resource "openstack_networking_router_v2" "router" {
Ryan Randles Jones
committed
external_network_id = data.openstack_networking_network_v2.public_network.id
}
resource "openstack_networking_router_interface_v2" "router" {
router_id = openstack_networking_router_v2.router.id
subnet_id = openstack_networking_subnet_v2.external_subnet.id
}
output "id" {
value = openstack_networking_network_v2.external_network.id
depends_on = [openstack_networking_subnet_v2.external_subnet]
value = openstack_networking_subnet_v2.external_subnet.id