diff --git a/elements/puppet-stack-config/puppet-stack-config.pp b/elements/puppet-stack-config/puppet-stack-config.pp index 58c08b0da..55cda6e2c 100644 --- a/elements/puppet-stack-config/puppet-stack-config.pp +++ b/elements/puppet-stack-config/puppet-stack-config.pp @@ -410,6 +410,9 @@ class { '::neutron::agents::dhcp': dnsmasq_config_file => '/etc/dnsmasq-ironic.conf', } +class { '::neutron::agents::l3': +} + class { '::neutron::agents::ml2::ovs': bridge_mappings => split(hiera('neutron_bridge_mappings'), ','), } diff --git a/elements/puppet-stack-config/puppet-stack-config.yaml.template b/elements/puppet-stack-config/puppet-stack-config.yaml.template index 099683eab..57d2559c9 100644 --- a/elements/puppet-stack-config/puppet-stack-config.yaml.template +++ b/elements/puppet-stack-config/puppet-stack-config.yaml.template @@ -237,6 +237,7 @@ mysql::server::restart: true neutron::debug: "%{hiera('debug')}" neutron::bind_host: {{LOCAL_IP}} neutron::core_plugin: ml2 +neutron::service_plugins: ['router'] neutron::dhcp_agents_per_network: 2 neutron::dns_domain: {{OVERCLOUD_DOMAIN_NAME}} neutron::server::api_workers: "%{::os_workers}" diff --git a/elements/undercloud-install/os-refresh-config/post-configure.d/98-undercloud-setup b/elements/undercloud-install/os-refresh-config/post-configure.d/98-undercloud-setup index 545300f19..465e8a039 100755 --- a/elements/undercloud-install/os-refresh-config/post-configure.d/98-undercloud-setup +++ b/elements/undercloud-install/os-refresh-config/post-configure.d/98-undercloud-setup @@ -70,7 +70,11 @@ if [ -n "$subnet_id" ]; then fi if [ "$net_create" -eq "1" ]; then - # Delete the subnet and network to make sure it doesn't already exist + # Delete the route, subnet and network to make sure it doesn't already exist + if neutron router-show ctlplane-router ; then + neutron router-interface-delete ctlplane-router ctlplane-subnet + neutron router-delete ctlplane-router + fi if neutron subnet-list | grep start; then neutron subnet-delete $(neutron subnet-list | grep start | awk '{print $2}') fi @@ -87,6 +91,13 @@ if [ "$net_create" -eq "1" ]; then --gateway $NETWORK_GATEWAY \ $SUBNET_VERSION_STRING $SUBNET_ROUTE_STRING \ ctlplane $NETWORK_CIDR + + # If ctlplane-subnet is IPv6 we need to start a router so the router advertisments are sent out + # for statless IP addressing to work. + if [[ $DHCP_START =~ : ]] ; then + neutron router-create ctlplane-router + neutron router-interface-add ctlplane-router ctlplane-subnet + fi fi # Disable nova quotas