Newer
Older
# data source for external network
data "openstack_networking_network_v2" "external" {
name = "uab-campus" # TODO: variable-itize this
}
# cluster network - intercommunication for OSDs
resource "openstack_networking_network_v2" "cluster_network" {
name = "ceph-cluster-network"
admin_state_up = "true"
}
resource "openstack_networking_subnet_v2" "cluster_subnet" {
network_id = openstack_networking_network_v2.cluster_network.id
cidr = "10.0.100.0/24"
}
# public network - management/filesystem network
resource "openstack_networking_network_v2" "public_network" {
name = "ceph-public-network"
admin_state_up = "true"
}
resource "openstack_networking_subnet_v2" "public_subnet" {
network_id = openstack_networking_network_v2.public_network.id
cidr = "10.0.0.0/24"
dns_nameservers = var.public_network_dns
}
# router
resource "openstack_networking_router_v2" "router" {
name = "public-router"
admin_state_up = true
external_network_id = data.openstack_networking_network_v2.external.id
}
resource "openstack_networking_router_interface_v2" "router_interface_public" {
router_id = openstack_networking_router_v2.router.id
subnet_id = openstack_networking_subnet_v2.public_subnet.id
}
# floating ip
resource "openstack_compute_floatingip_v2" "floating_ip" {
pool = data.openstack_networking_network_v2.external.name
}
# ip for mon node
resource "openstack_compute_floatingip_v2" "floating_ip_mon" {
pool = data.openstack_networking_network_v2.external.name
}