Juju Charm - Open Virtual Network - Chassis components
Go to file
Corey Bryant f40612da1d
Add Kinetic and Zed support
* sync charm-helpers to classic charms
* change openstack-origin/source default to zed
* align testing with zed
* add new zed bundles
* add zed bundles to tests.yaml
* add zed tests to osci.yaml and .zuul.yaml
* update build-on and run-on bases
* add bindep.txt for py310
* sync tox.ini and requirements.txt for ruamel
* use charmcraft_channel 2.0/stable
* drop reactive plugin overrides
* move interface/layer env vars to charmcraft.yaml

Change-Id: I2cb698f719106e54b06009f24ea47259419e9cad
2022-09-14 11:46:02 +02:00
src Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00
unit_tests Implementation of deferred restarts 2021-04-09 13:15:04 +00:00
.gitignore Use Netplan to configure SR-IOV and HWOL 2022-04-04 07:59:08 +02:00
.gitreview Add gerrit and zuul bits 2019-10-18 07:10:32 +02:00
.stestr.conf Initial commit 2019-10-07 13:32:04 +02:00
.travis.yml Add functional tests 2019-10-11 16:07:16 +02:00
.zuul.yaml Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00
README.md Update charm documentation 2019-10-21 10:13:07 +02:00
bindep.txt Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00
build-requirements.txt Update to build using charmcraft 2022-02-01 21:02:09 +00:00
charmcraft.yaml Build separately for each supported series and use binary builds 2022-09-13 20:30:31 +03:00
metadata.yaml Update to build using charmcraft 2022-02-01 21:02:09 +00:00
osci.yaml Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00
pip.sh Add xena bundles 2021-09-29 11:21:22 +01:00
rebuild Rebuild in order to fix `debug` config option 2021-12-03 13:49:11 +01:00
rename.sh Update to build using charmcraft 2022-02-01 21:02:09 +00:00
requirements.txt Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00
test-requirements.txt Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00
tox.ini Add Kinetic and Zed support 2022-09-14 11:46:02 +02:00

README.md

Overview

The ovn-chassis charm provides the Open Virtual Network (OVN) local controller, Open vSwitch Database and Switch. It is used in conjunction with the ovn-central charm.

Open vSwitch bridges for integration, external Layer2 and Layer3 connectivity is managed by the charm.

On successful deployment the unit will be enlisted as a Chassis in the OVN network.

The ovn-chassis charm is a subordinate charm. Alternatively, the principle ovn-dedicated-chassis charm can be used, resulting in a dedicated software gateway.

Note: The OVN charms are supported starting with OpenStack Train.

Usage

The OpenStack Base bundle gives an example of how you can deploy OpenStack and OVN with Vault to automate certificate lifecycle management.

OVN makes use of Public Key Infrastructure (PKI) to authenticate and authorize control plane communication. The charm therefore requires a Certificate Authority to be present in the model as represented by the certificates relation.

Refer to Open Virtual Network (OVN) in the OpenStack Charms Deployment Guide for details, including deployment steps.

OpenStack support

When related to the nova-compute charm the ovn-chassis charm will enable services that provide Nova metadata to instances.

DPDK, SR-IOV and hardware offload support

It is possible to configure chassis to prepare network interface cards (NICs) for use with DPDK, SR-IOV and hardware offload support.

Please refer to the OVN Configuration in the OpenStack Charms Deployment Guide for details.

Network spaces

This charm supports the use of Juju network spaces.

By binding the ovsdb endpoint you can influence which interface will be used for communication with the OVN Southbound DB as well as overlay traffic.

juju deploy ovn-chassis --bind "ovsdb=internal-space"

By binding the data extra-binding you can influence which interface will be used for overlay traffic.

juju deploy ovn-chassis --bind "data=overlay-space"

Port configuration

Chassis port configuration is composed of a mapping between physical network names to bridge names (ovn-bridge-mappings) and individual interface to bridge names (bridge-interface-mappings). There must be a match in both configuration options before the charm will configure bridge and interfaces on a unit.

The physical network name can be referenced when the administrator programs the OVN logical flows, either by talking directly to the Northbound database, or by interfacing with a Cloud Management System (CMS).

Networks for use with external Layer3 connectivity should have mappings on chassis located in the vicinity of the datacenter border gateways. Having two or more chassis with mappings for a Layer3 network will have OVN automatically configure highly available routers with liveness detection provided by the Bidirectional Forwarding Detection (BFD) protocol.

Chassis without direct external mapping to a external Layer3 network will forward traffic through a tunnel to one of the chassis acting as a gateway for that network.

Note: It is not necessary, nor recommended, to add mapping for external Layer3 networks to all chassis. Doing so will create a scaling problem at the physical network layer that needs to be resolved with globally shared Layer2 (does not scale) or tunneling at the top-of-rack switch layer (adds complexity) and is generally not a recommended configuration.

Networks for use with external Layer2 connectivity should have mappings present on all chassis with potential to host the consuming payload.

Deferred service events

Operational or maintenance procedures applied to a cloud often lead to the restarting of various OpenStack services and/or the calling of certain charm hooks. Although normal, such events can be undesirable due to the service interruptions they can cause.

The deferred service events feature provides the operator the choice of preventing these service restarts and hook calls from occurring, which can then be resolved at a more opportune time.

See the Deferred service events page in the OpenStack Charms Deployment Guide for an in-depth treatment of this feature.

Bugs

Please report bugs on Launchpad.

For general questions please refer to the OpenStack Charm Guide.