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.
|
||||
|
||||
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
|
||||
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
|
||||
|
@ -51,6 +51,16 @@
|
||||
when:
|
||||
- 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
|
||||
shell: >-
|
||||
rsync
|
||||
@ -98,6 +108,39 @@
|
||||
- pre_config_osa | default(true) | 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
|
||||
template:
|
||||
src: "osa/elk-envd.yml"
|
||||
|
@ -154,6 +154,7 @@ osa_enable_compute: true
|
||||
osa_enable_orchestration: true
|
||||
osa_enable_dashboard: true
|
||||
osa_enable_network: true
|
||||
osa_enable_networking_ovn: false
|
||||
osa_enable_meter: false
|
||||
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) }}"
|
||||
|
@ -50,9 +50,23 @@
|
||||
provider_network_type: "{{ item.network_type }}"
|
||||
provider_physical_network: "{{ item.physical_network | default ('') }}"
|
||||
with_items: "{{ networks }}"
|
||||
when: not (osa_enable_networking_ovn | bool)
|
||||
tags:
|
||||
- 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
|
||||
os_subnet:
|
||||
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
|
||||
is_container_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:
|
||||
container_bridge: "br-vxlan"
|
||||
container_type: "veth"
|
||||
@ -40,6 +71,15 @@ global_overrides:
|
||||
net_name: "vxlan"
|
||||
group_binds:
|
||||
- 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:
|
||||
container_bridge: "br-flat"
|
||||
container_type: "veth"
|
||||
@ -50,15 +90,7 @@ global_overrides:
|
||||
group_binds:
|
||||
- neutron_linuxbridge_agent
|
||||
- utility_all
|
||||
- network:
|
||||
container_bridge: "br-vlan"
|
||||
container_type: "veth"
|
||||
container_interface: "eth11"
|
||||
type: "vlan"
|
||||
range: "1:1"
|
||||
net_name: "vlan"
|
||||
group_binds:
|
||||
- neutron_linuxbridge_agent
|
||||
{% endif %}
|
||||
- network:
|
||||
container_bridge: "br-storage"
|
||||
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:
|
||||
stats: "/tmp/magnum-api-uwsgi-stats.sock"
|
||||
{% 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
|
||||
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:
|
||||
- name: "{{ provider_subnet_name }}"
|
||||
network_name: "{{ provider_net_name }}"
|
||||
|
Loading…
Reference in New Issue
Block a user