add segments service_plugin to neutron-api
* adds a service_plugin called segments to enable routed provider networks * adds a nova placement api section and inclusion of that section to neutron.conf * routed provider networks can be used for setups with and without charm-neutron-gateway - in both cases there should be a dhcp agent per segment which can be achieved via charm-neutron-openvswitch configuration option enable-local-dhcp-and-metadata in case of a setup without charm-neutron-gateway Change-Id: I78222b567c72c03ab2d861836172032d4d9a0b3f Closes-Bug: 1743743
This commit is contained in:
parent
7eac81a36e
commit
f131505576
@ -470,10 +470,10 @@ class NeutronCCContext(context.NeutronContext):
|
|||||||
'LoadBalancerPluginv2')],
|
'LoadBalancerPluginv2')],
|
||||||
'ocata': ['router', 'firewall', 'vpnaas', 'metering',
|
'ocata': ['router', 'firewall', 'vpnaas', 'metering',
|
||||||
('neutron_lbaas.services.loadbalancer.plugin.'
|
('neutron_lbaas.services.loadbalancer.plugin.'
|
||||||
'LoadBalancerPluginv2')],
|
'LoadBalancerPluginv2'), 'segments'],
|
||||||
'pike': ['router', 'firewall', 'metering',
|
'pike': ['router', 'firewall', 'metering',
|
||||||
('neutron_lbaas.services.loadbalancer.plugin.'
|
('neutron_lbaas.services.loadbalancer.plugin.'
|
||||||
'LoadBalancerPluginv2')],
|
'LoadBalancerPluginv2'), 'segments'],
|
||||||
}
|
}
|
||||||
ctxt['service_plugins'] = service_plugins.get(
|
ctxt['service_plugins'] = service_plugins.get(
|
||||||
release, service_plugins['pike'])
|
release, service_plugins['pike'])
|
||||||
|
125
templates/ocata/neutron.conf
Normal file
125
templates/ocata/neutron.conf
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
# newton
|
||||||
|
###############################################################################
|
||||||
|
# [ WARNING ]
|
||||||
|
# Configuration file maintained by Juju. Local changes may be overwritten.
|
||||||
|
# Restart trigger {{ restart_trigger }}
|
||||||
|
###############################################################################
|
||||||
|
[DEFAULT]
|
||||||
|
verbose = {{ verbose }}
|
||||||
|
debug = {{ debug }}
|
||||||
|
use_syslog = {{ use_syslog }}
|
||||||
|
state_path = /var/lib/neutron
|
||||||
|
bind_host = {{ bind_host }}
|
||||||
|
auth_strategy = keystone
|
||||||
|
api_workers = {{ workers }}
|
||||||
|
rpc_workers = {{ workers }}
|
||||||
|
|
||||||
|
router_distributed = {{ enable_dvr }}
|
||||||
|
|
||||||
|
{% if dns_domain -%}
|
||||||
|
dns_domain = {{ dns_domain }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
l3_ha = {{ l3_ha }}
|
||||||
|
{% if l3_ha -%}
|
||||||
|
max_l3_agents_per_router = {{ max_l3_agents_per_router }}
|
||||||
|
min_l3_agents_per_router = {{ min_l3_agents_per_router }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if neutron_bind_port -%}
|
||||||
|
bind_port = {{ neutron_bind_port }}
|
||||||
|
{% else -%}
|
||||||
|
bind_port = 9696
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if core_plugin -%}
|
||||||
|
core_plugin = {{ core_plugin }}
|
||||||
|
{% if service_plugins -%}
|
||||||
|
service_plugins = {{ service_plugins }}
|
||||||
|
{% endif -%}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if neutron_security_groups -%}
|
||||||
|
allow_overlapping_ips = True
|
||||||
|
{% if neutron_plugin == 'Calico' -%}
|
||||||
|
neutron_firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
||||||
|
{% else -%}
|
||||||
|
neutron_firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
|
||||||
|
{% endif -%}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
dhcp_agents_per_network = {{ dhcp_agents_per_network }}
|
||||||
|
|
||||||
|
notify_nova_on_port_status_changes = True
|
||||||
|
notify_nova_on_port_data_changes = True
|
||||||
|
|
||||||
|
{% if sections and 'DEFAULT' in sections -%}
|
||||||
|
{% for key, value in sections['DEFAULT'] -%}
|
||||||
|
{{ key }} = {{ value }}
|
||||||
|
{% endfor -%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if user_config_flags -%}
|
||||||
|
{% for key, value in user_config_flags.items() -%}
|
||||||
|
{{ key }} = {{ value }}
|
||||||
|
{% endfor -%}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if global_physnet_mtu -%}
|
||||||
|
global_physnet_mtu = {{ global_physnet_mtu }}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% if enable_designate -%}
|
||||||
|
external_dns_driver = designate
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
{% include "parts/section-placement" %}
|
||||||
|
|
||||||
|
{% include "section-zeromq" %}
|
||||||
|
|
||||||
|
[quotas]
|
||||||
|
{% if quota_driver -%}
|
||||||
|
quota_driver = {{ quota_driver }}
|
||||||
|
{% else -%}
|
||||||
|
quota_driver = neutron.db.quota_db.DbQuotaDriver
|
||||||
|
{% endif -%}
|
||||||
|
{% if neutron_security_groups -%}
|
||||||
|
quota_items = network,subnet,port,security_group,security_group_rule
|
||||||
|
quota_security_group = {{ quota_security_group }}
|
||||||
|
quota_security_group_rule = {{ quota_security_group_rule }}
|
||||||
|
{% else -%}
|
||||||
|
quota_items = network,subnet,port
|
||||||
|
{% endif -%}
|
||||||
|
quota_network = {{ quota_network }}
|
||||||
|
quota_subnet = {{ quota_subnet }}
|
||||||
|
quota_port = {{ quota_port }}
|
||||||
|
quota_vip = {{ quota_vip }}
|
||||||
|
quota_pool = {{ quota_pool }}
|
||||||
|
quota_member = {{ quota_member }}
|
||||||
|
quota_health_monitors = {{ quota_health_monitors }}
|
||||||
|
quota_router = {{ quota_router }}
|
||||||
|
quota_floatingip = {{ quota_floatingip }}
|
||||||
|
|
||||||
|
[agent]
|
||||||
|
root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
|
||||||
|
|
||||||
|
{% include "section-keystone-authtoken-mitaka" %}
|
||||||
|
|
||||||
|
{% include "parts/section-database" %}
|
||||||
|
|
||||||
|
{% include "section-rabbitmq-oslo" %}
|
||||||
|
|
||||||
|
{% include "section-oslo-notifications" %}
|
||||||
|
|
||||||
|
[oslo_concurrency]
|
||||||
|
lock_path = $state_path/lock
|
||||||
|
|
||||||
|
{% include "parts/section-nova" %}
|
||||||
|
|
||||||
|
{% if enable_designate -%}
|
||||||
|
{% include "parts/section-designate" %}
|
||||||
|
{% endif -%}
|
||||||
|
|
||||||
|
[service_providers]
|
||||||
|
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
|
||||||
|
service_provider = VPN:strongswan:neutron_vpnaas.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default
|
21
templates/parts/section-placement
Normal file
21
templates/parts/section-placement
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[placement]
|
||||||
|
{% if auth_host -%}
|
||||||
|
auth_url = {{ auth_protocol }}://{{ auth_host }}:{{ auth_port }}
|
||||||
|
auth_type = password
|
||||||
|
{% if api_version == "3" -%}
|
||||||
|
project_domain_name = {{ admin_domain_name }}
|
||||||
|
user_domain_name = {{ admin_domain_name }}
|
||||||
|
{% else -%}
|
||||||
|
project_domain_name = default
|
||||||
|
user_domain_name = default
|
||||||
|
{% endif -%}
|
||||||
|
project_name = {{ admin_tenant_name }}
|
||||||
|
username = {{ admin_user }}
|
||||||
|
password = {{ admin_password }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if region -%}
|
||||||
|
os_region_name = {{ region }}
|
||||||
|
{% endif -%}
|
||||||
|
{% if use_internal_endpoints -%}
|
||||||
|
os_interface = internal
|
||||||
|
{% endif -%}
|
@ -118,5 +118,7 @@ lock_path = $state_path/lock
|
|||||||
{% include "parts/section-designate" %}
|
{% include "parts/section-designate" %}
|
||||||
{% endif -%}
|
{% endif -%}
|
||||||
|
|
||||||
|
{% include "parts/section-placement" %}
|
||||||
|
|
||||||
[service_providers]
|
[service_providers]
|
||||||
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
|
service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
|
||||||
|
@ -797,14 +797,17 @@ class NeutronCCContextTest(CharmTestCase):
|
|||||||
self.os_release.return_value = 'ocata'
|
self.os_release.return_value = 'ocata'
|
||||||
service_plugins = (
|
service_plugins = (
|
||||||
'router,firewall,vpnaas,metering,'
|
'router,firewall,vpnaas,metering,'
|
||||||
'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2')
|
'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2,'
|
||||||
|
'segments'
|
||||||
|
)
|
||||||
self.assertEqual(context.NeutronCCContext()()['service_plugins'],
|
self.assertEqual(context.NeutronCCContext()()['service_plugins'],
|
||||||
service_plugins)
|
service_plugins)
|
||||||
# pike
|
# pike
|
||||||
self.os_release.return_value = 'pike'
|
self.os_release.return_value = 'pike'
|
||||||
service_plugins = (
|
service_plugins = (
|
||||||
'router,firewall,metering,'
|
'router,firewall,metering,'
|
||||||
'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2')
|
'neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2,'
|
||||||
|
'segments')
|
||||||
self.assertEqual(context.NeutronCCContext()()['service_plugins'],
|
self.assertEqual(context.NeutronCCContext()()['service_plugins'],
|
||||||
service_plugins)
|
service_plugins)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user