Anatomy of an openstack distribution

JAVIER PEÑA

January 2017

$ whoami

 

 

 

 

Javier Peña <jpena@redhat.com>

@fj_pena (Twitter), jpena (Freenode)

Senior Software Engineer @ RDO Team

AGENDA

 

 

 

  1. Why do you need an OpenStack distribution

  2. What is RDO?

  3. Creating RDO: packaging

  4. Creating RDO: CI

  5. Contributing to RDO

Some context

 

  • The OpenStack Newton release included
    • 32 service projects
    • 75 library projects
    • 16 Horizon plug-ins
    • 65 "other" projects
  • 354 libraries  used by the projects
  • More than 200 repositories are active each month (*)

(*) http://activity.openstack.org/dash/browser/scm-repos.html

HOW CAN WE MANAGE THIS?

 

  • Getting everything integrated with your base OS
  • Interactions between different pieces
  • OpenStack vs non-OpenStack components
  • Getting the right versions of everything
    • and getting updates!

Image from https://www.flickr.com/photos/baccharus/5817342671/in/photostream/, licensed with CC BY 2.0

What is RDO?

  • "RDO is a community of people using and deploying OpenStack on CentOS, Fedora, and Red Hat Enterprise Linux." (*)
  • RDO is an OpenStack distribution for RPM-based operating systems
  • Based on vanilla OpenStack code, no "secret sauce" added
  • Integrated and tested on CentOS and Red Hat Enterprise Linux

(*) http://www.rdoproject.org

What makes RDO

  • A set of repositories with RPM packages
    • Tested to integrate with each other
    • Tested to integrate with CentOS / Red Hat Enterprise Linux
  • Installers
    • TripleO
    • Packstack
  • A community of people who develop, deploy and use the distribution

Packaging IN RDO

Text

+ list files and some other metadata

EASY?

  • New dependencies coming often
  • New files created by projects
  • New projects
  • This grows fast!
    • 140 packages in RDO Mitaka
    • 235 packages in RDO Newton

The RDO APPROACH

Continuous packaging

 

  • Allow tools that use packages to evolve during the cycle rather than waiting till  the end
  • Reduce the delta between versions, allowing faster time to market when a release is complete

High level packaging flow

Patch (in OpenStack Gerrit)

RDO Trunk package

RDO Trunk repo

RDO GA repo

Unit tests

Integration tests

(in gate)

Unit tests

(when packaging)

Integration tests

(with installers)

Promotion pipeline

Rebuild

Integration tests

Additional testing coverage

RDO repositories

  • Stable
    • For general consumption
    • Signed packages
  • Testing
    • Future stable packages
    • Non-signed packages
  • Trunk
    • Latest commit from master branch in repo
    • Non-signed packages
    • Bleeding edge!
       

Continuous packaging

WHAT DLRN DOES

  • Fetch the latest upstream commit from Git repos
  • Build an RPM package from that code
  • Create a YUM repo with the latest versions of each package
    • This repo will be used for CI jobs
  • If a package build fails
    • Automatically open a review to fix the spec file

Fixing packages asap

The promotion pipeline

Why test?

Well, it worked on DevStack ¯\_(ツ)_/¯

Deployment projects tested

  • TripleO
    • Minimal and Pacemaker
  • Packstack
  • Puppet-OpenStack-Integration
  • Kolla (future)

Deployment projects tested

  • TripleO
    • Minimal and Pacemaker
  • Packstack
  • Puppet-OpenStack-Integration
  • Kolla (future)

Once all jobs pass, a repo gets the "CI passed" seal of approval

The result of all this

Next step, 1 hour!

Can I contribute to RDO?

OF COURSE!

Ways to contribute

  • RDO Test days: https://www.rdoproject.org/testday/
  • RDO Documentation: https://www.rdoproject.org/documentation/
  • RDO Packaging repos: https://github.com/rdo-packages
  • RDO Gerrit: https://review.rdoproject.org

Adding a new package

  1. Open review at bugzilla.redhat.com
  2. Add project to rdoinfo
  3. Review spec file
  4. Enable package builds
  5. Package built and tested in RDO Trunk
  6. Package available on the next RDO GA

Detailed process at https://www.rdoproject.org/documentation/rdo-packaging/#how-to-add-a-new-package-to-rdo-trunk

QA for package reviews

Q&A TIME

THANK YOU!

Visit us:
Chat with us:
Follow us:

https://rdoproject.org
#rdo on freenode
@rdocommunity

IRC

redhat.com