Deployment of containerised OpenStack to bare metal using kolla and bifrost
Go to file
Mark Goddard af3b719b73 Move group_vars to an inventory directory
The group variables originally in ansible/group_vars/ were playbook
group variables, due to being adjacent to the playbooks. Typically they
provided default values for global variables in the all group, as well
as some more specific groups. This has worked fairly well, but results
in (at least) a couple of problems.

1. The default variable precedence rules mean that these playbook group
   variables have a higher precedence than inventory group variables
   (for a given group). This can make it challenging to override
   playbook group variables in the inventory in Kayobe configuration.

2. Any playbook run by Kayobe must be in the same directory as the
   playbook group variables in order to use them. Given that they
   include variables required for connectivity such as ansible_host and
   ansible_user, this is quite critical. For Kayobe custom playbooks, we
   work around this by symlinking to the group_vars directory from the
   directory containing the custom playbook. This is not an elegant
   workaround, and has assumptions about the relative paths of the
   Kayobe configuration and virtual environment in which Kayobe is
   installed.

Story: 2010280
Task: 46233

Change-Id: Ifea5c7e73f6f410f96a7398bfd349d1f631d9fc0
2022-09-08 10:11:23 +01:00
ansible Move group_vars to an inventory directory 2022-09-08 10:11:23 +01:00
dev Use yoga upper constraints in dev scripts 2022-07-05 09:46:33 +02:00
doc Move group_vars to an inventory directory 2022-09-08 10:11:23 +01:00
etc/kayobe Merge "Improve comments in networking config files" 2022-08-26 16:45:39 +00:00
kayobe Move group_vars to an inventory directory 2022-09-08 10:11:23 +01:00
playbooks Merge "Add support for Ubuntu Jammy Jellyfish (22.04) LTS" 2022-08-08 09:29:02 +00:00
releasenotes Move group_vars to an inventory directory 2022-09-08 10:11:23 +01:00
roles ironic: default to ipxe booting 2022-04-12 11:57:21 +00:00
tools Move group_vars to an inventory directory 2022-09-08 10:11:23 +01:00
zuul.d Add support for Ubuntu Jammy Jellyfish (22.04) LTS 2022-07-29 11:26:58 +02: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 Bump max Ansible version to 2.10 2021-03-24 07:25:28 +00:00
bindep.txt Add missing font for PDF generation 2021-07-27 07:33:20 +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
molecule-requirements.txt CI: pin pytest-metadata<2 for molecule 2022-03-22 20:09:21 +00:00
README.rst docs: Update Freenode to OFTC 2021-05-31 10:02:04 +02:00
requirements.txt Add support for dellos10 switch configuration 2022-06-09 21:59:33 +02:00
requirements.yml Support additional build host packages for IPA & overcloud 2022-08-22 15:24:55 +02:00
setup.cfg Update python testing classifier 2022-01-11 22:03:31 +08:00
setup.py Cleanup py27 support 2020-04-20 18:04:19 +00:00
test-requirements.txt CI: Fix multiple failures 2021-09-03 23:10:39 +02:00
tox.ini Revert "[release] Use OpenStack Yoga release" 2022-04-14 08:09:18 +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

OFTC's IRC channel: #openstack-kolla

License

Kayobe is distributed under the Apache 2.0 License.