Deployment of containerised OpenStack to bare metal using kolla and bifrost
Go to file
Mark Goddard 3bbf736d8d Ubuntu: support systemd-networkd
This change adds support for network configuration via systemd-networkd
on Ubuntu systems.

This is implemented via an Ansible Galaxy role,
stackhpc.systemd_networkd which was forked from
aruhier.systemd_networkd. Several improvements were made in
https://github.com/stackhpc/ansible-role-systemd-networkd/pull/1,
including:

* Add support for removing unexpected config files
* Use become where necessary
* Refactor config generation into a single task to improve performance

The systemd_networkd role does not add much abstraction on top of the
systemd-networkd configuration file format, which provides a lot of
flexibility at the expense of additional code in Kayobe. This code is
implemented as filter plugins, similarly to the existing
MichaelRigart.interfaces role.

This patch includes support for:

* Ethernet interfaces
* bridges
* bonds
* VLANs
* virtual Ethernet pairs (to connect Linux bridges and OVS bridges)
* static IP addresses
* static routes
* MTU

Some network attributes are currently not supported for
systemd-networkd:

* rules
* route options
* ethtool_opts
* zone
* allowed addresses

Story: 2004960
Task: 41881

Change-Id: I248b5bb9ce5a80a07a2a311cb3aca6daca920720
2021-04-21 08:23:44 +00:00
.github Add an issue template. 2017-12-14 20:39:55 +00:00
ansible Ubuntu: support systemd-networkd 2021-04-21 08:23:44 +00:00
dev Merge "CI: display VM console log on ping or SSH failure" 2021-03-10 14:08:25 +00:00
doc Ubuntu: support systemd-networkd 2021-04-21 08:23:44 +00:00
etc/kayobe Merge "Ubuntu: update Apt cache before package installation" 2021-03-04 18:21:59 +00:00
kayobe Ubuntu: support systemd-networkd 2021-04-21 08:23:44 +00:00
playbooks Ubuntu: support systemd-networkd 2021-04-21 08:23:44 +00:00
releasenotes Merge "Bump Ansible version range to 2.9 - 2.9" 2021-03-10 14:09:40 +00:00
roles Ubuntu: support systemd-networkd 2021-04-21 08:23:44 +00:00
tools Update shebang for Python 3 script 2020-09-16 15:54:13 +02:00
zuul.d Merge "CI: Add Ubuntu seed job" 2021-03-10 16:07:51 +00:00
.coveragerc Use stestr for running unit tests, add a coverage environment 2018-03-08 16:37:08 +00:00
.gitignore Add 'venvs' to list of things which we don't want git to track 2018-07-02 14:17:18 +01:00
.gitreview Fix after x/kayobe rename 2019-09-16 16:26:27 +02:00
.stestr.conf Use stestr for running unit tests, add a coverage environment 2018-03-08 16:37:08 +00:00
.yamllint Run yamllint on etc/kayobe during pep8 tox env 2019-02-14 12:17:19 +00:00
bindep.txt Update hacking for Python3 2020-09-11 15:44:17 +02:00
CONTRIBUTING.rst [Community goal] Update the contributor guide 2020-06-05 15:58:35 +02:00
HACKING.rst Sync Sphinx requirement 2019-06-25 02:24:45 +00:00
LICENSE License kayobe project under Apache2 2017-04-06 10:15:29 +01:00
README.rst [docs] Update main documentation page 2021-01-29 22:00:08 +01:00
requirements.txt Bump Ansible version range to 2.9 - 2.9 2020-10-01 09:49:41 +00:00
requirements.yml Ubuntu: support systemd-networkd 2021-04-21 08:23:44 +00:00
setup.cfg Fix implementation of kayobe seed hypervisor host package update 2020-12-21 10:29:41 +01:00
setup.py Cleanup py27 support 2020-04-20 18:04:19 +00:00
test-requirements.txt Fixes for CentOS 8.3 2020-12-16 11:04:48 +00:00
tox.ini Merge "Fix ansible-lint star expansion" 2020-12-18 15:28:33 +00:00
Vagrantfile Upgrade Vagrant VM to CentOS 8 2020-05-19 10:08:36 +01:00

Kayobe

image

Kayobe enables deployment of containerised OpenStack to bare metal.

Containers offer a compelling solution for isolating OpenStack services, but running the control plane on an orchestrator such as Kubernetes or Docker Swarm adds significant complexity and operational overheads.

The hosts in an OpenStack control plane must somehow be provisioned, but deploying a secondary OpenStack cloud to do this seems like overkill.

Kayobe stands on the shoulders of giants:

  • OpenStack bifrost discovers and provisions the cloud
  • OpenStack kolla builds container images for OpenStack services
  • OpenStack kolla-ansible delivers painless deployment and upgrade of containerised OpenStack services

To this solid base, kayobe adds:

  • Configuration of cloud host OS & flexible networking
  • Management of physical network devices
  • A friendly openstack-like CLI

All this and more, automated from top to bottom using Ansible.

Features

  • Heavily automated using Ansible
  • kayobe Command Line Interface (CLI) for cloud operators
  • Deployment of a seed VM used to manage the OpenStack control plane
  • Configuration of physical network infrastructure
  • Discovery, introspection and provisioning of control plane hardware using OpenStack bifrost
  • Deployment of an OpenStack control plane using OpenStack kolla-ansible
  • Discovery, introspection and provisioning of bare metal compute hosts using OpenStack ironic and ironic inspector
  • Virtualised compute using OpenStack nova
  • Containerised workloads on bare metal using OpenStack magnum
  • Big data on bare metal using OpenStack sahara
  • Control plane and workload monitoring and log aggregation using OpenStack monasca

Documentation

https://docs.openstack.org/kayobe/latest/

Release Notes

https://docs.openstack.org/releasenotes/kayobe/

Bugs

https://storyboard.openstack.org/#!/project/openstack/kayobe

Community

Freenode's IRC channel: #openstack-kolla

License

Kayobe is distributed under the Apache 2.0 License.