Merge "Add possibility to configure tenant network types and type drivers"

This commit is contained in:
Jenkins 2017-06-29 13:11:04 +00:00 committed by Gerrit Code Review
commit ee11884e37
7 changed files with 57 additions and 10 deletions

View File

@ -519,6 +519,11 @@ designate_ns_record: "sample.openstack.org"
####################### #######################
neutron_bgp_router_id: "1.1.1.1" neutron_bgp_router_id: "1.1.1.1"
neutron_bridge_name: "br-ex" neutron_bridge_name: "br-ex"
# Comma-separated type of enabled ml2 type drivers
neutron_type_drivers: "flat,vlan,vxlan"
# Comma-separated types of tenant networks (should be listed in 'neutron_type_drivers')
# NOTE: for ironic this list should also contain 'flat'
neutron_tenant_network_types: "vxlan"
computes_need_external_bridge: "{{ enable_neutron_dvr | bool or enable_neutron_provider_networks | bool }}" computes_need_external_bridge: "{{ enable_neutron_dvr | bool or enable_neutron_provider_networks | bool }}"

View File

@ -38,3 +38,9 @@
with_items: with_items:
- "ironic-agent.kernel" - "ironic-agent.kernel"
- "ironic-agent.initramfs" - "ironic-agent.initramfs"
- name: Looking for 'flat' in tenant network types
local_action: fail msg="'flat' is not in neutron_tenant_network_types [{{ neutron_tenant_network_types }}]"
changed_when: false
when: tenant_network_types.find('flat') == -1
run_once: true

View File

@ -36,3 +36,13 @@
or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-l3-agent']
or inventory_hostname in groups['neutron-metadata-agent']) or inventory_hostname in groups['neutron-metadata-agent'])
- ansible_os_family == 'RedHat' or ansible_distribution == 'Ubuntu' - ansible_os_family == 'RedHat' or ansible_distribution == 'Ubuntu'
- name: Checking tenant network types
vars:
type_drivers: "{{ neutron_type_drivers.replace(' ', '').split(',') | reject('equalto', '') | list }}"
tenant_network_types: "{{ neutron_tenant_network_types.replace(' ', '').split(',') | reject('equalto', '') | list }}"
local_action: fail msg="Tenant network type '{{ item }}' is not in type drivers [{{ neutron_type_drivers }}]"
changed_when: false
when: item not in type_drivers
run_once: true
with_items: "{{ tenant_network_types }}"

View File

@ -1,16 +1,8 @@
# ml2_conf.ini # ml2_conf.ini
[ml2] [ml2]
{% if enable_ironic | bool %}
tenant_network_types = vxlan, flat
mechanism_drivers = openvswitch
{% elif enable_hyperv | bool %}
type_drivers = flat,vlan,vxlan
tenant_network_types = flat,vlan
{% else %}
# Changing type_drivers after bootstrap can lead to database inconsistencies # Changing type_drivers after bootstrap can lead to database inconsistencies
type_drivers = flat,vlan,vxlan type_drivers = {{ neutron_type_drivers }}
tenant_network_types = vxlan tenant_network_types = {{ neutron_tenant_network_types }}
{% endif %}
{% if neutron_plugin_agent == "openvswitch" %} {% if neutron_plugin_agent == "openvswitch" %}
{% if enable_hyperv | bool %} {% if enable_hyperv | bool %}

View File

@ -94,6 +94,12 @@ Hyper-V options are also required in ``/etc/kolla/globals.yml``:
vswitch_name: <HyperV virtual switch name> vswitch_name: <HyperV virtual switch name>
nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi" nova_msi_url: "https://www.cloudbase.it/downloads/HyperVNovaCompute_Beta.msi"
If tenant networks are to be built using VLAN add corresponding type in ``/etc/kolla/globals.yml``:
.. code-block:: console
neutron_tenant_network_types: 'flat,vlan'
The virtual switch is the same one created on the HyperV setup part. The virtual switch is the same one created on the HyperV setup part.
For nova_msi_url, different Nova MSI (Mitaka/Newton/Ocata) versions can be found on For nova_msi_url, different Nova MSI (Mitaka/Newton/Ocata) versions can be found on
`Cloudbase website `Cloudbase website

View File

@ -20,6 +20,21 @@ The Ironic implementation is "tech preview", so currently instances can only be
deployed on baremetal. Further work will be done to allow scheduling for both deployed on baremetal. Further work will be done to allow scheduling for both
virtualized and baremetal deployments. virtualized and baremetal deployments.
Pre-deployment Configuration
============================
Enable Ironic role in ``/etc/kolla/globals.yml``:
.. code-block:: console
enable_ironic: "yes"
Beside that an additional network type 'flat' has to be added to a list of tenant network types:
.. code-block:: console
neutron_tenant_network_types: "vxlan,flat"
Configuring Web Console Configuring Web Console
======================= =======================
Configuration based off upstream web_console_documentation_. Configuration based off upstream web_console_documentation_.

View File

@ -0,0 +1,13 @@
---
features:
- |
Allow users to set neutron type drivers and tenant network types.
These are configurable via 'neutron_type_drivers' and
'neutron_tenant_network_types' variables correspondingly.
Tenant network types are checked against a list of type drivers.
Also 'flat' network type is checked in the lists for Ironic.
upgrade:
- |
Default neutron_tenant_network_types list consist of 'vxlan'.
Ironic users should add 'flat' to the list. Also for Hyper-V
the list should contain 'vlan'.