Ansible Networking drivers for ML2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Guilherme Giacon bb6a2c1174 VM support 2 months ago
devstack Remove ansible source install 12 months ago
doc Minor trunk doc updates 1 year ago
etc/neutron/plugins/ml2 VM support 3 weeks ago
mock updates to unittests and pep8 fixes 9 months ago
networking_ansible VM support 3 weeks ago
playbooks/ci-workarounds updates to upstream CI 2 years ago
releasenotes adding debtcollector messages deprecating the API 2 years ago
tools Correct port detachment 10 months ago
zuul.d pulling upper constraints local for neutron-lib 2 months ago
.coveragerc Initial Cookiecutter Commit. 3 years ago
.gitignore Add vqfx development environment 2 years ago
.gitreview OpenDev Migration Patch 2 years ago
.mailmap Initial Cookiecutter Commit. 3 years ago
.stestr.conf Initial Cookiecutter Commit. 3 years ago
CONTRIBUTING.rst updating storyboard link in the docs 1 year ago
HACKING.rst Initial Cookiecutter Commit. 3 years ago
LICENSE Initial Cookiecutter Commit. 3 years ago
README.rst Move source repo reference to opendev 2 years ago
TESTING.rst Move unittests to unit directory 3 years ago
babel.cfg Initial Cookiecutter Commit. 3 years ago
requirements.txt VM support 3 weeks ago
setup.cfg Add py38 package metadata 1 year ago
setup.py Adding Ansible Roles to abstract ML2 hooks out to ansible networking 3 years ago
test-requirements.txt updates to requirements 5 months ago
tox.ini Updating to network-runner 0.3.0 2 months ago

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