Kitchen is a no-fuss, no BS way to get a Chef OpenStack build for:
Kitchen builds are not recommended for production deployments, but they can work in a pinch when you just need OpenStack.
At an absolute minimum, you should use the following resources. What is listed is currently used in CI for the gate checks, as well as the tested minimum:
Recommended server resources:
It is possible to perform builds within a virtual machine for demonstration and evaluation, but your virtual machines will perform poorly. For production workloads, multiple nodes for specific roles are recommended.
There are three basic steps to building OpenStack with Test Kitchen, with an optional first step should you need to customize your build:
When building on a new server, it is recommended that all system packages are updated and then rebooted into the new kernel:
Note
Execute the following commands and scripts as the root user.
## Ubuntu
# apt-get update
# apt-get dist-upgrade
# reboot
## CentOS
# yum upgrade
# reboot
Start by cloning the OpenStack Chef repository and changing into the root directory:
# git clone https://opendev.org/openstack/openstack-chef \
/opt/openstack-chef
# cd /opt/openstack-chef
Next, switch to the applicable branch/tag to be deployed. Note that deploying from the head of a branch may result in an unstable build due to changes in flight and upstream OpenStack changes. For a test (not a development) build, it is usually best to checkout the latest tagged version.
## List all existing branches.
# git branch -av
## Checkout some stable branch
# git checkout stable/queens
Note
The current master release is compatible with Ubuntu 18.04 (Bionic Beaver) and CentOS 7
By default the cookbooks deploy all OpenStack services with sensible defaults for the purpose of a gate check, development or testing system.
Deployers have the option to change how the build is configured by overriding in the respective kitchen YAML file. This can be useful when you want to make use of different services or test new cookbooks.
To use a different driver for Test Kitchen, such as for a multi-node
development environment, pass the KITCHEN_YAML
environment variable as an
additional option to the kitchen
command. For example, if you want to
deploy a containerized development environment, instead of a Vagrant AIO, then execute:
# KITCHEN_YAML=.kitchen.dokken.yml kitchen verify [centos|ubuntu|all]
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.