by Nicolas Hicher, Senior Software Engineer - Continuous Integration and Delivery
Software-Factory is a collection of services that provides a powerful platform to build software. It enables the same workflow used to develop OpenStack: using Gerrit for code reviews, Zuul/Nodepool/Jenkins as a CI system, and Storyboard for stories and issues tracker. Also, it ensures a reproducible test environment with ephemeral Jenkins slaves.
In this video, Nicolas Hicher will demonstrate how to use Software-Factory to manage a Red Hat OpenStack Platform 9 lifecycle. We will do a deployment and an update on a virtual environment (within an OpenStack tenant).
For this demo, we will do a deployment within an OpenStack tenant. Using a tool, developed by the engineering team that builds DCI, called python-tripleo-helper. With this tool, we can do a deployment within an OpenStack tenant using the same steps of a full deployment (boot server via IPMI, discover nodes, introspection and deployment). We also patched python-tripleo-helper to add an update command to update the OpenStack (changing parameters, not doing a major upgrade).
The workflow is simple and robust:
- Submit a review with the templates, the installation script and the tests scripts. A CI job validates the templates.
- When the review is approved, the gate jobs are executed (installation or update).
- After the deployment/update is completed, the review is merged.
For this demo, we will do a simple deployment (1 controller and 1 compute nodes) with Red Hat OpenStack 9.0
Since we do the deployment in a virtual environment, we can't test some advanced features, especially for networking and storage. But other features of the deployed cloud can be validated using the appropriate environments.
We plan to continue to improve this workflow to be able to:
- Do a major upgrade from Red Hat OpenStack Platform (X to X+1).
- Manage a bare metal deployment.
- Improve the Ceph deployment to be able to use more than one object storage device (OSD).
- Use smoke jobs like tempest to validate the deployment before merging the review.
Also, it should be possible to manage pre-production and production environments within a single git repository, the check job will do the tasks on pre production and after receiving a peer’s validation, the same actions will be applied on production.