Add support for OVN in MNAIO deploy
This patch adds support for deploying the ML2/Open Virtual Network (OVN) plugin for Neutron to an MNAIO deployment. A new var, osa_enable_networking_ovn, can be set to lay down the appropriate bits. Change-Id: Ib5bd4e0c20be62ddbf0bff13c91d1918907bf230
This commit is contained in:
parent
a1d6ebe4d3
commit
e6f12e2069
@ -48,6 +48,19 @@ Physical Host Specs known to work well
|
|||||||
|
|
||||||
These specs are covered by the Rackspace OnMetal-IO v1/2 Servers.
|
These specs are covered by the Rackspace OnMetal-IO v1/2 Servers.
|
||||||
|
|
||||||
|
Deployments default to the ML2/LinuxBridge network plugin. Available options
|
||||||
|
at this time include:
|
||||||
|
|
||||||
|
* ML2/LinuxBridge
|
||||||
|
* ML2/Open Virtual Network (OVN)
|
||||||
|
|
||||||
|
To deploy an MNAIO with support for OVN, set the following parameter(s) prior
|
||||||
|
to executing the build:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
export MNAIO_ANSIBLE_PARAMETERS="-e osa_enable_networking_ovn=true"
|
||||||
|
./build.sh
|
||||||
|
|
||||||
When your ready, run the build script by executing ``bash ./build.sh``. The
|
When your ready, run the build script by executing ``bash ./build.sh``. The
|
||||||
build script current executes a deployment of OpenStack Ansible using the master
|
build script current executes a deployment of OpenStack Ansible using the master
|
||||||
branch. If you want to do something other than deploy master you can set the
|
branch. If you want to do something other than deploy master you can set the
|
||||||
|
@ -51,6 +51,16 @@
|
|||||||
when:
|
when:
|
||||||
- pre_config_osa | default(true) | bool
|
- pre_config_osa | default(true) | bool
|
||||||
|
|
||||||
|
- name: Create OSA group_vars directory
|
||||||
|
file:
|
||||||
|
path: "/etc/openstack_deploy/group_vars"
|
||||||
|
state: directory
|
||||||
|
owner: "root"
|
||||||
|
group: "root"
|
||||||
|
mode: "0755"
|
||||||
|
when:
|
||||||
|
- pre_config_osa | default(true) | bool
|
||||||
|
|
||||||
- name: Copy default config files and directories
|
- name: Copy default config files and directories
|
||||||
shell: >-
|
shell: >-
|
||||||
rsync
|
rsync
|
||||||
@ -98,6 +108,39 @@
|
|||||||
- pre_config_osa | default(true) | bool
|
- pre_config_osa | default(true) | bool
|
||||||
- osa_disable_serial | default(false) | bool
|
- osa_disable_serial | default(false) | bool
|
||||||
|
|
||||||
|
- name: Drop OVS group_vars config
|
||||||
|
template:
|
||||||
|
src: "osa/ovs_network_hosts_group.yml"
|
||||||
|
dest: "/etc/openstack_deploy/group_vars/network_hosts"
|
||||||
|
mode: "0644"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when:
|
||||||
|
- pre_config_osa | default(true) | bool
|
||||||
|
- osa_enable_networking_ovn | default(false) | bool
|
||||||
|
|
||||||
|
- name: Drop NEUTRON OVN env.d config
|
||||||
|
template:
|
||||||
|
src: "osa/neutron-ovn-envd.yml"
|
||||||
|
dest: "/etc/openstack_deploy/env.d/neutron.yml"
|
||||||
|
mode: "0644"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when:
|
||||||
|
- pre_config_osa | default(true) | bool
|
||||||
|
- osa_enable_networking_ovn | default(false) | bool
|
||||||
|
|
||||||
|
- name: Drop NOVA OVN env.d config
|
||||||
|
template:
|
||||||
|
src: "osa/nova-ovn-envd.yml"
|
||||||
|
dest: "/etc/openstack_deploy/env.d/nova.yml"
|
||||||
|
mode: "0644"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
when:
|
||||||
|
- pre_config_osa | default(true) | bool
|
||||||
|
- osa_enable_networking_ovn | default(false) | bool
|
||||||
|
|
||||||
- name: Drop ELK env.d config
|
- name: Drop ELK env.d config
|
||||||
template:
|
template:
|
||||||
src: "osa/elk-envd.yml"
|
src: "osa/elk-envd.yml"
|
||||||
|
@ -154,6 +154,7 @@ osa_enable_compute: true
|
|||||||
osa_enable_orchestration: true
|
osa_enable_orchestration: true
|
||||||
osa_enable_dashboard: true
|
osa_enable_dashboard: true
|
||||||
osa_enable_network: true
|
osa_enable_network: true
|
||||||
|
osa_enable_networking_ovn: false
|
||||||
osa_enable_meter: false
|
osa_enable_meter: false
|
||||||
osa_enable_object_storage: "{{ not (enable_ceph_storage | bool) }}"
|
osa_enable_object_storage: "{{ not (enable_ceph_storage | bool) }}"
|
||||||
osa_enable_legacy_os_infra: "{{ (osa_enable_image | bool) and (osa_enable_orchestration | bool) and (osa_enable_dashboard | bool) and (osa_enable_compute | bool) }}"
|
osa_enable_legacy_os_infra: "{{ (osa_enable_image | bool) and (osa_enable_orchestration | bool) and (osa_enable_dashboard | bool) and (osa_enable_compute | bool) }}"
|
||||||
|
@ -50,9 +50,23 @@
|
|||||||
provider_network_type: "{{ item.network_type }}"
|
provider_network_type: "{{ item.network_type }}"
|
||||||
provider_physical_network: "{{ item.physical_network | default ('') }}"
|
provider_physical_network: "{{ item.physical_network | default ('') }}"
|
||||||
with_items: "{{ networks }}"
|
with_items: "{{ networks }}"
|
||||||
|
when: not (osa_enable_networking_ovn | bool)
|
||||||
tags:
|
tags:
|
||||||
- create_networks
|
- create_networks
|
||||||
|
|
||||||
|
- name: Create networks (OVN)
|
||||||
|
os_network:
|
||||||
|
endpoint_type: internal
|
||||||
|
cloud: default
|
||||||
|
state: present
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
shared: "{{ item.shared }}"
|
||||||
|
external: "{{ item.external }}"
|
||||||
|
provider_network_type: "{{ item.network_type }}"
|
||||||
|
provider_physical_network: "{{ item.physical_network | default ('') }}"
|
||||||
|
with_items: "{{ networks_ovn }}"
|
||||||
|
when: osa_enable_networking_ovn | default(false) | bool
|
||||||
|
|
||||||
- name: Create subnets on networks
|
- name: Create subnets on networks
|
||||||
os_subnet:
|
os_subnet:
|
||||||
endpoint_type: internal
|
endpoint_type: internal
|
||||||
|
17
multi-node-aio/playbooks/osa/neutron-ovn-envd.yml
Normal file
17
multi-node-aio/playbooks/osa/neutron-ovn-envd.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
component_skel:
|
||||||
|
neutron_ovn_controller:
|
||||||
|
belongs_to:
|
||||||
|
- neutron_all
|
||||||
|
neutron_ovn_northd:
|
||||||
|
belongs_to:
|
||||||
|
- neutron_all
|
||||||
|
|
||||||
|
container_skel:
|
||||||
|
neutron_agents_container:
|
||||||
|
contains: {}
|
||||||
|
neutron_ovn_northd_container:
|
||||||
|
belongs_to:
|
||||||
|
- network_containers
|
||||||
|
contains:
|
||||||
|
- neutron_ovn_northd
|
14
multi-node-aio/playbooks/osa/nova-ovn-envd.yml
Normal file
14
multi-node-aio/playbooks/osa/nova-ovn-envd.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
container_skel:
|
||||||
|
nova_compute_container:
|
||||||
|
belongs_to:
|
||||||
|
- compute_containers
|
||||||
|
- kvm-compute_containers
|
||||||
|
- lxd-compute_containers
|
||||||
|
- qemu-compute_containers
|
||||||
|
- powervm-compute_containers
|
||||||
|
contains:
|
||||||
|
- neutron_ovn_controller
|
||||||
|
- nova_compute
|
||||||
|
properties:
|
||||||
|
is_metal: true
|
@ -30,6 +30,37 @@ global_overrides:
|
|||||||
- hosts
|
- hosts
|
||||||
is_container_address: true
|
is_container_address: true
|
||||||
is_ssh_address: true
|
is_ssh_address: true
|
||||||
|
{% if osa_enable_networking_ovn | bool %}
|
||||||
|
- network:
|
||||||
|
container_bridge: "br-vxlan"
|
||||||
|
container_type: "veth"
|
||||||
|
container_interface: "eth10"
|
||||||
|
ip_from_q: "tunnel"
|
||||||
|
type: "geneve"
|
||||||
|
range: "1:1000"
|
||||||
|
net_name: "geneve"
|
||||||
|
group_binds:
|
||||||
|
- neutron_ovn_controller
|
||||||
|
- network:
|
||||||
|
container_bridge: "br-provider"
|
||||||
|
container_type: "veth"
|
||||||
|
container_interface: "eth11"
|
||||||
|
network_interface: "br-vlan"
|
||||||
|
type: "vlan"
|
||||||
|
range: "1:1"
|
||||||
|
net_name: "vlan"
|
||||||
|
group_binds:
|
||||||
|
- neutron_ovn_controller
|
||||||
|
- network:
|
||||||
|
container_bridge: "br-provider"
|
||||||
|
container_type: "veth"
|
||||||
|
container_interface: "eth12"
|
||||||
|
network_interface: "br-vlan"
|
||||||
|
type: "flat"
|
||||||
|
net_name: "flat"
|
||||||
|
group_binds:
|
||||||
|
- neutron_ovn_controller
|
||||||
|
{% else %}
|
||||||
- network:
|
- network:
|
||||||
container_bridge: "br-vxlan"
|
container_bridge: "br-vxlan"
|
||||||
container_type: "veth"
|
container_type: "veth"
|
||||||
@ -40,6 +71,15 @@ global_overrides:
|
|||||||
net_name: "vxlan"
|
net_name: "vxlan"
|
||||||
group_binds:
|
group_binds:
|
||||||
- neutron_linuxbridge_agent
|
- neutron_linuxbridge_agent
|
||||||
|
- network:
|
||||||
|
container_bridge: "br-vlan"
|
||||||
|
container_type: "veth"
|
||||||
|
container_interface: "eth11"
|
||||||
|
type: "vlan"
|
||||||
|
range: "1:1"
|
||||||
|
net_name: "vlan"
|
||||||
|
group_binds:
|
||||||
|
- neutron_linuxbridge_agent
|
||||||
- network:
|
- network:
|
||||||
container_bridge: "br-flat"
|
container_bridge: "br-flat"
|
||||||
container_type: "veth"
|
container_type: "veth"
|
||||||
@ -50,15 +90,7 @@ global_overrides:
|
|||||||
group_binds:
|
group_binds:
|
||||||
- neutron_linuxbridge_agent
|
- neutron_linuxbridge_agent
|
||||||
- utility_all
|
- utility_all
|
||||||
- network:
|
{% endif %}
|
||||||
container_bridge: "br-vlan"
|
|
||||||
container_type: "veth"
|
|
||||||
container_interface: "eth11"
|
|
||||||
type: "vlan"
|
|
||||||
range: "1:1"
|
|
||||||
net_name: "vlan"
|
|
||||||
group_binds:
|
|
||||||
- neutron_linuxbridge_agent
|
|
||||||
- network:
|
- network:
|
||||||
container_bridge: "br-storage"
|
container_bridge: "br-storage"
|
||||||
container_type: "veth"
|
container_type: "veth"
|
||||||
|
4
multi-node-aio/playbooks/osa/ovs_network_hosts_group.yml
Normal file
4
multi-node-aio/playbooks/osa/ovs_network_hosts_group.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Ensure the openvswitch kernel module is loaded
|
||||||
|
openstack_host_specific_kernel_modules:
|
||||||
|
- name: "openvswitch"
|
||||||
|
pattern: "CONFIG_OPENVSWITCH"
|
@ -189,3 +189,12 @@ magnum_api_uwsgi_ini_overrides:
|
|||||||
uwsgi:
|
uwsgi:
|
||||||
stats: "/tmp/magnum-api-uwsgi-stats.sock"
|
stats: "/tmp/magnum-api-uwsgi-stats.sock"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if osa_enable_networking_ovn | bool %}
|
||||||
|
neutron_plugin_type: ml2.ovn
|
||||||
|
|
||||||
|
neutron_plugin_base:
|
||||||
|
- networking_ovn.l3.l3_ovn.OVNL3RouterPlugin
|
||||||
|
|
||||||
|
neutron_ml2_drivers_type: "vlan,local,flat,geneve"
|
||||||
|
{% endif %}
|
||||||
|
@ -75,6 +75,18 @@ networks:
|
|||||||
network_type: vxlan
|
network_type: vxlan
|
||||||
segmentation_id: 101
|
segmentation_id: 101
|
||||||
|
|
||||||
|
networks_ovn:
|
||||||
|
- name: "{{ provider_net_name }}"
|
||||||
|
shared: true
|
||||||
|
external: true
|
||||||
|
network_type: flat
|
||||||
|
physical_network: flat
|
||||||
|
- name: "{{ private_net_name }}"
|
||||||
|
shared: true
|
||||||
|
external: true
|
||||||
|
network_type: geneve
|
||||||
|
segmentation_id: 101
|
||||||
|
|
||||||
subnets:
|
subnets:
|
||||||
- name: "{{ provider_subnet_name }}"
|
- name: "{{ provider_subnet_name }}"
|
||||||
network_name: "{{ provider_net_name }}"
|
network_name: "{{ provider_net_name }}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user