class: center, middle, inverse
# OpenStack Packaging for Fedora & CentOS ##
-
--- ## whoami .right-column[
] .left-column[
] --- class: center, middle, inverse # Introduction --- class: middle ## What's OpenStack ? OpenStack is an open source platform that lets you build an Infrastructure as a Service (IaaS) cloud that runs on commodity hardware ![overview](img/openstack-software-diagram.png) http://openstack.org --- class: middle ## OpenStack is really ...
--- class: middle ## Some statistics * Over 400 projects * Over 2,000 contributors from more than 100 companies * 8 different installers (Puppet, Kolla, Packstack, TripleO, Ansible) * 11 supported hypervisors * 13 networking backends (Neutron) * 13 storage backends (Cinder) --- class: middle ## What's RDO RDO is a freely-available and community supported distribution of OpenStack packaged and integrated for RHEL, CentOS and Fedora.
http://rdoproject.org --- class: middle ## What's RDO * OpenStack packages * An installer: packstack * A deployment & management tool: TripleO * __MOST IMPORTANT: A COMMUNITY__ --- class: middle ## Packstack * Fast & simple deployment tool of OpenStack * Handle single-node/multi-nodes configuration * Aims at small PoCs * Built on Puppet
--- class: middle ## TripleO * Deployment & management console * Built upon Puppet, Heat, Ironic * Leverage OpenStack API * Formerly known downstream as RDO Manager
[TripleO documentation](https://repos.fedorapeople.org/repos/openstack-m/docs/master/) [RDO Manager at Vancouver Summit](http://youtu.be/731INn1GDmk) --- class: middle ## What's TripleO ? * Undercloud (management node) * Overcloud (deployed cloud) ![](img/tripleo.svg) --- class: middle ## History - OpenStack in Fedora * openstack-nova Diablo imported to Fedora 16 in August 2011 [1] * Until now we were able to keep Fedora/OpenStack release 1:1 [2] + Fedora 16 includes OpenStack Diablo + Fedora 17 includes OpenStack Essex + Fedora 18 includes OpenStack Folsom + Fedora 19 includes OpenStack Grizzly + Fedora 20 includes OpenStack Havana + Fedora 21 includes OpenStack Icehouse + Fedora 22 includes OpenStack Juno + Fedora 23 includes OpenStack Kilo + Starting Fedora 24/Liberty, we only support DLRN builds for Fedora [1]: http://pkgs.fedoraproject.org/cgit/openstack-nova.git/commit/?id=430fcdb4f519438525bc3bbccc6480dcbce8bfd8 [2]: https://fedoraproject.org/wiki/OpenStack#OpenStack [3]: http://trunk.rdoproject.org/ --- class: middle ## History - OpenStack in RHEL/CentOS * Nova added to EPEL6 in November 2011 * complete Essex update in April 2012 [1] * incompatible Folsom update in October 2012 [2] sparked conversations leading to the creation of RDO [3] * RDO started with Grizzly in April 2013 * Since september, 2014 RDO is part of the CentOS Cloud SIG [1]: https://admin.fedoraproject.org/updates/FEDORA-EPEL-2012-5719 [2]: https://admin.fedoraproject.org/updates/FEDORA-EPEL-2012-13088 [3]: https://openstack.redhat.com/ --- class: middle, inverse, center # OpenStack Packaging Challenges --- class: middle ## Targets * Focusing on RHEL/CentOS 7 (starting Kilo) * Fedora supported through DLRN --- class: middle ## Multiple Releases * Kilo (soon to be EOL) => may 2015 * Liberty (previous stable) => october 2015 * Mitaka (current stable) => april 2016 * Newton (master) --- class: middle ## Many packages For instance CentOS 7 Mitaka RC3 OpenStack: * 353 binary packages * 127 source packages + 41 for services & Horizon plugins + 24 for clients Dependencies: * 5607 binary packages (5044 being texlive modules from a single source package) * 311 source packages (234 being python modules) --- class: middle, inverse, center # RDO Infrastructure --- class: middle ## Git * Currently hosted on @openstack-packages github organization * A single spec per release on one branch + rpm-master => DLRN (Newton) + rpm-mitaka => DLRN (Mitaka) + rpm-liberty => DLRN (Liberty) + rdo-mitaka => CentOS/RHEL (Mitaka) + rdo-liberty => CentOS/RHEL (Liberty) * Same spec is used to be built on multiple targets --- class: middle ## Buildsystem Setup * RDO trunk builds are available for Fedora and EL7 through DLRN * RDO for Enterprise Linux is built in Centos Community Build System and is self-contained --- class: middle ## Packaging/Patches review * Using gerrit like OpenStack upstream * Patches and packaging changes runs through a review * [Hosted on gerrithub](https://review.gerrithub.io/#/q/project:openstack-packages) * Trigger a serie of CI jobs --- class: middle ## DLRN DLRN is a Continuous Delivery platform that take every upstream commit and build it as a consumable package for CI purpose. ```bash +------------+ +---------+ +------------+ +-------------------+ | | | | | | | | | New commit +----> current +----> consistent +----> current+passed+ci | | | | | | | | | +------------+ +---------+ +-----^------+ +---------^---------+ | | | | +-----+------+ +---------+---------+ | RDO CI | | Upstream CI | +------------+ +-------------------+ ``` --- class: middle ## DLRN CI ```bash +------------+ +---------+ +------------+ +-------------------+ | | | | | | | | | New commit +----> current +----> consistent +----> current+passed+ci | | | | | | | | | +------------+ +---------+ +-----^------+ +---------^---------+ | | | | +-----+------+ +---------+---------+ | RDO CI | | Upstream CI | +------------+ +-------------------+ ``` * master: every commit or almost is built * consistent: set of packages without build failures * current-passed-ci: snapshot that passed CI * stable releases: packages from upstream tagged tarballs + sanity checks * RDO CI targets consistent snapshots * Upstream CI projects targets current-passed-ci (e.g. packstack, tripleO, kolla, puppet) --- class: middle ## WeiRDO * Ansible-based framework using gate jobs and make them usable outside upstream gates * Goal is to improve coverage upon what upstream provides. ```bash +------------+ +-----------------------+ +---------------+ | | | | | | WeIRDO | Provision | | Install dependencies | | run_tests.sh | [1] | test node +------> & patch assumptions +---> or tox | | | | | | | +------------+ +-----------------------+ +---------------+ +---------------+ +--------------------+ +----------------+ | | | | | | tox | Install | | Install/Configure | | Test | [2] | dependencies +---> OpenStack +------> (e.g. Tempest) | | | | | | | +---------------+ +--------------------+ +----------------+ +---------------+ +------------+ | | | | WeIRDO | Recover logs | | Destroy | [1] | and results +---> test node | | | | | +---------------+ +------------+ 1. with Ansible 2. or run_tests.sh provided by upstream ``` [WeiRDO documentation](http://weirdo.readthedocs.org/en/latest/) [WeiRDO jobs on ci.centos.org](https://ci.centos.org/view/rdo/) --- class: middle ## rdopkg: swiss army knife for RDO packaging * Automate most of the annoyances * Rebase/Updating patches/Submit updates etc. [Available here](https://copr.fedoraproject.org/coprs/jruzicka/rdopkg/) --- class: middle, center, inverse # RDO Community Status --- class: middle ## Opening up the technical governance * Public infrastructure => reviewing system, CI (ci.centos.org) * Weekly IRC meetings on freenode ([agenda](https://etherpad.openstack.org/p/RDO-Meeting)) * Creation of RDO Eng. team to support and foster contributions (ping apevec or hguemar to get started!) * __RDO Eng. is the only team that has no internal meetings, all in the open!__ * Open roadmap ([RDO public trello](https://trello.com/b/HhXlqdiu/rdo)) --- class: middle ## Why? * RDO has been founded as a self-supporting community distribution of OpenStack for Fedora/RHEL ecosystem * Enable community contributors collaboration * Allow community to choose the direction of the project --- class: middle ## A lot more contributions from non-redhatters Some highlights: * Juno/EL6 builds thanks to Thomas Oulevey (CERN) * Barbican packages thanks to Greg Swift (Rackspace) * GBP packages thanks to Robert Kukura (Cisco) * app-catalog-ui thanks to Kevin Fox * Murano/Congress/Mistral thanks to Marcos Fermin Lobo (CERN) * Networking backends contributed by Cisco, Bigswitch, Midonet --- class: middle ## RDO 💓 CentOS * RDO starting Kilo is fully built on CBS * One of the first usable product by a SIG * Considering moving more bits of RDO infrastructure over CentOS --- class: middle ## RDO mid-cycle meetup * Full day meetup during FOSDEM * Co-located with FOSDEM CentOS dojo * Discussion on planning and future organization --- class: middle ## Big tent plans * A lot of interests in maintaining non-core projects in RDO * RDO Eng. will be supporting community efforts as long as there is commitment * Note that won't impact RHOSP [Projects in RDO list](https://www.rdoproject.org/ProjectsInRDO) --- class: middle ## Packaging as an upstream project * [Proposal cooked up at Vancouver Summit](https://review.openstack.org/#/c/185187/) * We're 100% behind it * Currently discussing with Suse guys on how we could converge RPM packaging * Not a disruptive change to us as we've been working on two releases using a very similar workflow (DLRN + gerrithub) --- class: middle ## No stable point-releases * Upstream will stand behind stable branches ensuring that every commit is production-ready * Allow more frequent bugfix and CVE releases in RDO * Still need to figure out details (tarballs & changelog) --- class: middle ## Operational tools * Bringing mature and advanced operational tools to RDO + Centralised Logging + Performance Monitoring + Availability Monitoring * Led by Graeme Gillies [Discussion on RDO list](https://www.redhat.com/archives/rdo-list/2015-June/msg00051.html) --- class: middle ## OPNFV * CentOS OPNFV SIG * Build a vanilla OPNFV platform based on OpenStack + OpenDaylight (ODL) * First release based w/ RDO and Foreman installer coming soon * CI + functional testing in progress * Ping Dan Radez if you want to get involved --- class: middle ## Trystack * Public RDO cloud available to try out OpenStack (backed by the Foundation) * Kilo migration: WiP * Kilo version will include Manila + Trove * RDO CI runs over Juno * Recruiting more operators to manage this effort! --- class: middle ## New RDO portal
--- class: middle, center, inverse # Contributing to RDO --- class: middle ## RDO packaging documentation [documentation](https://openstack.redhat.com/documentation/packaging) [sources](http://github.com/redhat-openstack) <= Pull Requests are welcome! --- class: middle ## Communication channels * mailing-list: http://www.redhat.com/mailman/listinfo/rdo-list * IRC: #rdo @freenode --- class: middle, center, inverse # Q/A