Newer
Older
Alessandro Costantini
committed
# A static class to set up a shared network. Should appear on the
# controller node. It sets up the public network, a private network,
# two subnets (one for admin, one for test), and the routers that
# connect the subnets to the public network.
#
# After this class has run, you should have a functional network
# avaiable for your test user to launch and connect machines to.
class iaas::setup::sharednetwork (
Alessandro Costantini
committed
$external_network = hiera('iaas::profile::neutron::external_network', undef),
$gateway = hiera('iaas::profile::neutron::external_gateway', undef),
$dns = hiera('iaas::profile::base::dns_servers', undef),
Alessandro Costantini
committed
$start_ip = hiera('iaas::profile::neutron::network_external_ippool_start', undef),
$end_ip = hiera('iaas::profile::neutron::network_external_ippool_end', undef),
$private_network = hiera('iaas::profile::neutron::network_neutron_private', undef),
) {
$ip_range = "start=${start_ip},end=${end_ip}"
neutron_network { 'public':
Alessandro Costantini
committed
router_external => true,
provider_physical_network => 'external',
Alessandro Costantini
committed
} ->
neutron_subnet { $external_network:
cidr => $external_network,
ip_version => '4',
gateway_ip => $gateway,
enable_dhcp => false,
network_name => 'public',
Alessandro Costantini
committed
allocation_pools => [$ip_range],
Alessandro Costantini
committed
}
neutron_network { 'private':
Alessandro Costantini
committed
provider_network_type => 'gre',
router_external => false,
Alessandro Costantini
committed
} ->
neutron_subnet { $private_network:
cidr => $private_network,
ip_version => '4',
enable_dhcp => true,
network_name => 'private',
tenant_name => 'test',
dns_nameservers => [$dns],
Alessandro Costantini
committed
}
# router setup for the tenant test
iaas::setup::router { "test:${private_network}": }