60 lines
1.9 KiB
Puppet
60 lines
1.9 KiB
Puppet
class packstack::provision::bridge ()
|
|
{
|
|
$provision_neutron_br = str2bool(hiera('CONFIG_NEUTRON_INSTALL'))
|
|
$setup_ovs_bridge = str2bool(hiera('CONFIG_PROVISION_OVS_BRIDGE'))
|
|
$public_bridge_name = hiera('CONFIG_NEUTRON_L3_EXT_BRIDGE', 'br-ex')
|
|
$provision_tempest_br = str2bool(hiera('CONFIG_PROVISION_TEMPEST'))
|
|
$provision_demo_br = str2bool(hiera('CONFIG_PROVISION_DEMO'))
|
|
|
|
$neutron_user_password = hiera('CONFIG_NEUTRON_KS_PW')
|
|
|
|
if $provision_demo_br {
|
|
$floating_range_br = hiera('CONFIG_PROVISION_DEMO_FLOATRANGE')
|
|
} elsif $provision_tempest_br {
|
|
$floating_range_br = hiera('CONFIG_PROVISION_TEMPEST_FLOATRANGE')
|
|
}
|
|
|
|
class { '::neutron::keystone::authtoken':
|
|
username => 'neutron',
|
|
password => $neutron_user_password,
|
|
auth_uri => hiera('CONFIG_KEYSTONE_PUBLIC_URL_VERSIONLESS'),
|
|
auth_url => hiera('CONFIG_KEYSTONE_ADMIN_URL'),
|
|
project_name => 'services',
|
|
}
|
|
|
|
if $provision_neutron_br and $setup_ovs_bridge {
|
|
Neutron_config<||> -> Neutron_l3_ovs_bridge['demo_bridge']
|
|
neutron_l3_ovs_bridge { 'demo_bridge':
|
|
name => $public_bridge_name,
|
|
ensure => present,
|
|
subnet_name => 'public_subnet',
|
|
}
|
|
|
|
firewall { '000 nat':
|
|
chain => 'POSTROUTING',
|
|
jump => 'MASQUERADE',
|
|
source => $floating_range_br,
|
|
outiface => $::gateway_device,
|
|
table => 'nat',
|
|
proto => 'all',
|
|
}
|
|
|
|
|
|
if $public_bridge_name != '' {
|
|
firewall { '000 forward out':
|
|
chain => 'FORWARD',
|
|
action => 'accept',
|
|
outiface => $public_bridge_name,
|
|
proto => 'all',
|
|
}
|
|
|
|
firewall { '000 forward in':
|
|
chain => 'FORWARD',
|
|
action => 'accept',
|
|
iniface => $public_bridge_name,
|
|
proto => 'all',
|
|
}
|
|
}
|
|
}
|
|
}
|