Visit the OpenStack Summit page for the latest news, registration and hotels.
Back To Schedule
Tuesday, November 4 • 14:00 - 14:40
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

In our role administering an OpenStack IaaS Cloud, we ve developed a release train allowing local development and testing of configuration management, testing in virtualised environments and automated deployment to staging and production, for the building and maintenance of an IaaS Cloud using upstream vendor OpenStack packages.

We will discuss the high-level concepts then review the details of our implementation and the tools we use, and created, to enable this pipeline.

We encourage software programming discipline to the administration of the Cloud infrastructure, with peer review, source code management and thorough testing before packaged releases.

Similarly, we encourage system administration discipline to configuration management code development, with deployments from scratch to volatile environments and upgrade deployments to stable environments.


Key elements of our approach are the use of upstream vendor packages for OpenStack (Ubuntu); configuration management (SaltStack); unit testing of configuration management (Test Kitchen with Kitchen-salt); Git, Gerrit and Gitshelf for source control management, peer review and packaging from git repos; volatile local development and remote test environments, using Vagrant and salt-cloud; and automated testing, packaging and deployment with the aid of Jenkins.


We will outline the CI/CD pipeline:

  1. Provision a multi-node, multi-network OpenStack development environment using Vagrant with Virtualbox (nova-qemu) with virtualised nodes representing a minimal region, and a salt-master with a file_roots tree built as per production.

  2. Develop salt configuration management code within this development environment. All installation and administration is managed with SaltStack, with both incremental upgrade and full bootstrap deployment testing.

  3. Push changes to Gerrit for both peer review and testing in discrete development environment instances, and unit testing with Test Kitchen via Jenkins.

  4. Automatically package a new release in a specific deploy-kit repo, using Gitshelf to build release tarball artifacts from a YAML file of code repo SHA1s.

  5. Automatically deploy to test environments in Public Cloud.

  6. Automatically deploy to real hardware in staging and production.


avatar for Simon McCartney

Simon McCartney

Technical Lead, HPE
Simon works for HP Cloud Services, having worked in both development & operations in companies large and small of the last 20 years in IT. Simon's current role in HP Cloud Services is as the Technical Lead for a private OpenStack cloud used to host public services. He lives in Northern... Read More →

Tuesday November 4, 2014 14:00 - 14:40 CET
Room 252 AB

Attendees (0)