charm-ovn-central/src
Martin Kalcok 34a82bc763 Implementation of ovn-central downscaling.
This change includes:
* attempt to leave cluster gracefully when removing unit
* cluster-status action that shows status of SB and NB clusters
* cluster-kick action that allows user to remove cluster members

Associated spec: https://opendev.org/openstack/charm-specs/src/branch/master/specs/yoga/approved/ovn-central-downscaling.rst

Closes-Bug: #1948680
func-test-pr: https://github.com/openstack-charmers/zaza-openstack-tests/pull/933
Change-Id: I40ae08669d00b3b1fa567a45db2ce51425e6d1cb
2022-10-21 14:33:59 +02:00
..
actions Implementation of ovn-central downscaling. 2022-10-21 14:33:59 +02:00
files Release sync for 20.08 2020-07-27 20:57:55 +01:00
lib Implementation of ovn-central downscaling. 2022-10-21 14:33:59 +02:00
reactive Implementation of ovn-central downscaling. 2022-10-21 14:33:59 +02:00
templates Do not render cluster remote address on charm leader 2020-12-07 12:48:27 +01:00
tests Implementation of ovn-central downscaling. 2022-10-21 14:33:59 +02:00
HACKING.md Initial commit of charm skeleton 2019-08-21 11:02:42 +02:00
README.md Mention deferred service events in README 2021-07-09 13:52:08 -04:00
actions.yaml Implementation of ovn-central downscaling. 2022-10-21 14:33:59 +02:00
config.yaml Add prometheus-scrape interface 2022-10-17 14:00:29 +03:00
copyright Initial commit of charm skeleton 2019-08-21 11:02:42 +02:00
icon.svg Initial commit of charm skeleton 2019-08-21 11:02:42 +02:00
layer.yaml Add prometheus-scrape interface 2022-10-17 14:00:29 +03:00
lxd-profile.yaml Remove dependency on openvswitch-switch daemons 2019-11-08 20:18:50 +01:00
metadata.yaml Add prometheus-scrape interface 2022-10-17 14:00:29 +03:00
test-requirements.txt Update to build using charmcraft 2022-02-15 14:51:59 +00:00
tox.ini Add xena bundles 2021-09-29 09:30:58 +00:00
wheelhouse.txt Add Kinetic and Zed support 2022-09-21 16:49:58 +00:00

README.md

Overview

The ovn-central charm provides the Northbound and Southbound OVSDB Databases and the Open Virtual Network (OVN) central control daemon (ovn-northd). It is used in conjunction with either the ovn-chassis subordinate charm or the ovn-dedicated-chassis principle charm.

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.

Note: The ovn-central charm requires a minimum of three units to operate.

Network spaces

This charm supports the use of Juju network spaces.

By binding the ovsdb, ovsdb-cms and ovsdb-peer endpoints you can influence which interface will be used for communication with consumers of the Southbound DB, Cloud Management Systems (CMS) and cluster internal communication.

juju deploy -n 3 --series focal \
    --bind "''=oam-space ovsdb=data-space" \
    ovn-central

OVN RBAC and securing the OVN services

The charm enables RBAC in the OVN Southbound database by default. The RBAC feature enforces authorization of individual chassis connecting to the database, and also restricts database operations.

In the event of an individual chassis being compromised, RBAC will make it more difficult to leverage database access for compromising other parts of the network.

Note: Due to how RBAC is implemented in ovsdb-server the charm opens up a separate listener at port 16642 for connections from ovn-northd.

The charm automatically enables the firewall and will allow traffic from its cluster peers to port 6641, 6643, 6644 and 16642. CMS clients will be allowed to talk to port 6641.

Anyone will be allowed to connect to port 6642.

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.