Deployment of containerised OpenStack to bare metal using kolla and bifrost
Go to file
Mark Goddard b12f9e35e5 Performance: Parallelise Kolla Ansible host vars generation
Kayobe generates a host_vars file for each host in the Kolla Ansible
inventory. These contain network interfaces and other host-specific
things. Currently this is done by iterating over all hosts, which does
not scale well with a large number of hosts.

This change extracts the host vars generation into a separate role, and
executes it in a play targeted at all hosts, with delegate_to:
localhost. This ensures that host variable files are generated in
parallel.

Story: 2007993
Task: 40629

Change-Id: Iae75e17024adee9c2874c14d3ed36f4c87ba48d7
2020-09-22 17:06:04 +01:00
.github Add an issue template. 2017-12-14 20:39:55 +00:00
ansible Performance: Parallelise Kolla Ansible host vars generation 2020-09-22 17:06:04 +01:00
dev Merge "CI: Update IPA images during upgrade" 2020-06-17 19:08:41 +00:00
doc Performance: Parallelise Kolla Ansible host vars generation 2020-09-22 17:06:04 +01:00
etc/kayobe Performance: Parallelise Kolla Ansible host vars generation 2020-09-22 17:06:04 +01:00
kayobe Move dnf.yml earlier in host configure workflow 2020-09-11 19:59:02 +00:00
playbooks Merge "IPA: Switch to IPA builder and CentOS 8" 2020-06-17 19:03:01 +00:00
releasenotes Merge "Support neutron-mlnx-agent" 2020-09-17 22:25:10 +00:00
roles Remove support for CentOS 7 and Python 2 2020-05-28 10:25:51 +01:00
tools Update shebang for Python 3 script 2020-09-16 15:54:13 +02:00
zuul.d Add seed VM provisioning CI job 2020-06-16 17:19:47 +01: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 Update docs after repo rename x/ to openstack/ 2019-09-16 17:39:29 +01:00
requirements.txt Block Ansible 2.9.12 2020-08-13 20:30:30 +00:00
requirements.yml Support setting ethtool options on network interfaces 2020-08-17 16:35:11 +02:00
setup.cfg Add py38 package metadata 2020-07-15 17:32:50 +08:00
setup.py Cleanup py27 support 2020-04-20 18:04:19 +00:00
test-requirements.txt Bump hacking min version to 3.0.1 2020-09-22 15:46:48 +08:00
tox.ini Remove unnecessary requirements from tox.ini 2020-09-18 13:10:43 +00:00
Vagrantfile Upgrade Vagrant VM to CentOS 8 2020-05-19 10:08:36 +01:00

Kayobe

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