Allow configuring Neutron LBaaSv2 with Octavia
Updated lbaas settings in neutron-server.conf to allow enabling
neutron_lbaas with Octavia driver.
Change-Id: If211abd2bf326fb167425596b12884153767b8fc
diff --git a/.kitchen.yml b/.kitchen.yml
index d144018..bd5de1d 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -93,6 +93,11 @@
pillars-from-files:
neutron.sls: tests/pillar/control_nodvr.sls
+ - name: control_lbaas_octavia.sls
+ provisioner:
+ pillars-from-files:
+ neutron.sls: tests/pillar/control_lbaas_octavia.sls
+
- name: control_single
provisioner:
pillars-from-files:
diff --git a/README.rst b/README.rst
index d3a64ae..370240e 100644
--- a/README.rst
+++ b/README.rst
@@ -73,7 +73,8 @@
# Add key without value to remove line from policy.json
'create_network:shared':
-Neutron lbaas provides on the controller node
+Neutron LBaaSv2 enablement
+--------------------------
.. code-block:: yaml
@@ -82,9 +83,13 @@
lbaas:
enabled: true
providers:
+ octavia:
+ engine: octavia
+ driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
+ base_url: 'http://127.0.0.1:9876'
avi_adc:
- enabled: true
engine: avinetworks
+ driver_path: 'avi_lbaasv2.avi_driver.AviDriver'
controller_address: 10.182.129.239
controller_user: admin
controller_password: Cloudlab2016
@@ -93,15 +98,15 @@
engine: avinetworks
...
-Note: If you want contrail lbaas then backend is only required. Lbaas in
-pillar should be define only if it should be disabled.
+Note: If the Contrail backend is set, Opencontrail loadbalancer would be enabled
+automatically. In this case lbaas should disabled in pillar:
.. code-block:: yaml
neutron:
server:
lbaas:
- enabled: disabled
+ enabled: false
Enable CORS parameters
diff --git a/neutron/files/ocata/neutron-server.conf.Debian b/neutron/files/ocata/neutron-server.conf.Debian
index 0047550..68d248b 100644
--- a/neutron/files/ocata/neutron-server.conf.Debian
+++ b/neutron/files/ocata/neutron-server.conf.Debian
@@ -44,7 +44,7 @@
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
service_plugins =neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin,trunk{%- if server.lbaas is defined -%}
-,neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2
+,lbaasv2
{%- endif -%}
{% endif %}
@@ -2160,10 +2160,24 @@
{%- for lbaas_name, lbaas in server.lbaas.providers.iteritems() %}
-{%- if lbaas.engine == "avinetworks" -%}
service_provider=LOADBALANCERV2:{{ lbaas_name }}:{{ lbaas.get('driver_path', 'avi_lbaasv2.avi_driver.AviDriver') }}:default
[{{ lbaas_name }}]
+
+{% if lbaas.engine == "octavia" %}
+
+base_url = {{ lbaas.base_url }}
+request_poll_timeout = 3000
+
+[service_auth]
+auth_version = 2
+admin_password = {{ server.identity.password }}
+admin_user = {{ server.identity.user }}
+admin_tenant_name = {{ server.identity.tenant }}
+auth_url = http://{{ server.identity.host }}:35357/v2.0
+{%- endif -%}
+
+{% if lbaas.engine == "avinetworks" %}
address={{ lbaas.controller_address }}
user={{ lbaas.controller_user }}
password={{ lbaas.controller_password }}
diff --git a/tests/pillar/control_lbaas_octavia.sls b/tests/pillar/control_lbaas_octavia.sls
new file mode 100644
index 0000000..5209b2d
--- /dev/null
+++ b/tests/pillar/control_lbaas_octavia.sls
@@ -0,0 +1,59 @@
+neutron:
+ server:
+ backend:
+ engine: ml2
+ external_mtu: 1500
+ mechanism:
+ ovs:
+ driver: openvswitch
+ tenant_network_types: flat,vxlan
+ bind:
+ address: 172.16.10.101
+ port: 9696
+ compute:
+ host: 127.0.0.1
+ password: workshop
+ region: RegionOne
+ tenant: service
+ user: nova
+ database:
+ engine: mysql
+ host: 127.0.0.1
+ name: neutron
+ password: workshop
+ port: 3306
+ user: neutron
+ version: ocata
+ dns_domain: novalocal
+ dvr: false
+ enabled: true
+ global_physnet_mtu: 1500
+ lbaas:
+ enabled: true
+ providers:
+ octavia:
+ engine: octavia
+ driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
+ base_url: 'http://127.0.0.1:9876'
+ identity:
+ engine: keystone
+ host: 127.0.0.1
+ password: workshop
+ port: 35357
+ region: RegionOne
+ tenant: service
+ user: neutron
+ endpoint_type: internal
+ l3_ha: false
+ message_queue:
+ engine: rabbitmq
+ host: 127.0.0.1
+ password: workshop
+ port: 5672
+ user: openstack
+ virtual_host: /openstack
+ plugin: ml2
+ policy:
+ create_subnet: 'rule:admin_or_network_owner'
+ 'get_network:queue_id': 'rule:admin_only'
+ 'create_network:shared':