Ansible Networking drivers for ML2
 
 
 
Go to file
Tzu-Mainn Chen b82d349622 Fix mech driver baremetal port check
The baremetal port check in the mech driver unnecessarily restricted
the device owner. This change removes that check.

Change-Id: Id7f0d7e3a8fedd528e7c4ad3b1228319497152a1
2021-10-29 13:52:35 +00:00
devstack Remove ansible source install 2020-06-24 14:46:22 +10:00
doc Minor trunk doc updates 2020-04-20 13:23:18 +10:00
etc/neutron/plugins/ml2 Adding SRIOV Support 2021-07-02 11:21:31 -04:00
mock updates to unittests and pep8 fixes 2020-09-09 14:40:47 -04:00
networking_ansible Fix mech driver baremetal port check 2021-10-29 13:52:35 +00:00
playbooks/ci-workarounds updates to upstream CI 2019-10-31 04:21:56 +11:00
releasenotes adding debtcollector messages deprecating the API 2019-03-28 16:35:29 -04:00
tools Correct port detachment 2020-08-27 12:34:41 +10:00
zuul.d pulling upper constraints local for neutron-lib 2021-04-13 12:53:53 -04:00
.coveragerc Initial Cookiecutter Commit. 2018-05-01 14:37:28 -04:00
.gitignore Add vqfx development environment 2019-07-04 00:45:25 +10:00
.gitreview OpenDev Migration Patch 2019-04-19 19:51:36 +00:00
.mailmap Initial Cookiecutter Commit. 2018-05-01 14:37:28 -04:00
.stestr.conf Initial Cookiecutter Commit. 2018-05-01 14:37:28 -04:00
CONTRIBUTING.rst updating storyboard link in the docs 2020-06-04 11:02:34 -04:00
HACKING.rst Initial Cookiecutter Commit. 2018-05-01 14:37:28 -04:00
LICENSE Initial Cookiecutter Commit. 2018-05-01 14:37:28 -04:00
README.rst Move source repo reference to opendev 2019-05-29 02:10:35 +10:00
TESTING.rst Move unittests to unit directory 2018-08-16 13:16:23 -04:00
babel.cfg Initial Cookiecutter Commit. 2018-05-01 14:37:28 -04:00
requirements.txt VM support 2021-05-21 09:56:23 -04:00
setup.cfg Add py38 package metadata 2020-06-02 19:43:46 +08:00
setup.py Adding Ansible Roles to abstract ML2 hooks out to ansible networking 2018-05-24 10:49:46 -04:00
test-requirements.txt updates to requirements 2021-01-12 16:24:22 -05:00
tox.ini Updating to network-runner 0.3.0 2021-04-29 12:46:43 -04:00

README.rst

Networking-Ansible ML2 Driver

Overview

Networking-Ansible is a python library that abstracts management and interaction with switching hardware to Ansible Networking. This library is not tested with all the modules included with Ansible Networking. In theory it should work with any switch that has compatible modules included with Ansible Networking if the provider tasks are added to this library's Ansible role. See the contributor documentation for more information about adding support for an Ansible Networking driver to the openstack-ml2 Ansible role.

Components

The Networking-Ansible library consists of the following components:

ML2 Mechanism Driver

Invoked by neutron to configure L2 networking for OpenStack tenant networks.

Python API

Imported directly by python.

Use Cases

OpenStack Ironic Baremetal Guest Deployment

Ironic uses Networking-Ansible to configure the switch ports for the baremetal guests. Ironic needs to swap the port a baremetal guest is connected to between the Ironic provisioning network and the tenant VLAN that the guest is assigned.

Python API

Any python application could need the ability to communicate with a switch to perform a task that networking-ansible is able to complete. The interaction with ansible is designed in a library style that will allow direct import and invocation in python independant of a running OpenStack deployment.

API Features

The following matrix indicates which features have been implmented.

openvswitch junos nxos eos cumulus dellos10
Create VLAN

N/A

Y

Y

Y

Y

Y

Delete VLAN

N/A

Y

Y

Y

Y

Y

Delete Port

Y

Y

Y

Y

Y

Y

Config Access Port

Y

Y

Y

Y

Y

Y

Config Trunk Port

N

Y

N

N

N

N

ML2 Implimentation Mapping

  • create_network_postcommit: Creates a VLAN
  • delete_network_postcommit: Deletes a VLAN
  • update_port_postcommit: Deletes the old port if bound
  • delete_port_postcommit: Deletes a port
  • bind_port: Configures an access port