Skip to content
Snippets Groups Projects
networks.tf 1.57 KiB
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"
Chris King's avatar
Chris King committed
  no_gateway = true
}

# 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" {
Chris King's avatar
Chris King committed
  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

# ip for admin node
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
}