# RDO Introduction For Contributors Alan Pevec, Red Hat, OpenStack Engineering Kilo Summit, Paris, November 2014 --- # RDO Introduction For Contributors ## 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 will include OpenStack Icehouse Fedora 22 will include OpenStack Juno [1]: http://pkgs.fedoraproject.org/cgit/openstack-nova.git/commit/?id=430fcdb4f519438525bc3bbccc6480dcbce8bfd8 [2]: https://fedoraproject.org/wiki/OpenStack#OpenStack --- # RDO Introduction For Contributors ## History - OpenStack in EPEL * 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 [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/ --- # RDO Introduction For Contributors ## Previous Repository Setup EPEL update policy does not allow incompatbile upgrades, so we had to keep OpenStack Folsom in EPEL6. Inofficial branches el6-* in pkgs.fedoraproject.org were created: * el6-grizzly from f19 * el6-havana from f20 * el6-icehouse from f21 --- # RDO Introduction For Contributors ## Current Repository Setup OpenStack Folsom was retired from EPEL6 and all el6* branches are now blocked. In order to keep packaging in pkgs.fedoraproject.org EL6 changes were merged to the corresponding Fedora branch, f20 for Havana, f21 for Icehouse: %if 0%{?rhel} == 6 Requires(post): chkconfig Requires(postun): initscripts ... %else Requires(post): systemd ... %endif --- # RDO Introduction For Contributors ## Current Buildsystem Setup * RDO Fedora is built in Koji, Fedora N+1 builds are made available for Fedora N e.g. RDO Icehouse for Fedora 20 are Fedora 21 builds * RDO EL is currently built in Copr, example for Icehouse EL7 [1] RDO EL depends on EPEL. [1]: https://copr.fedoraproject.org/coprs/jruzicka/rdo-icehouse-epel-7/ --- # RDO Introduction For Contributors ## rdopkg update YAML RDO package builds are grouped into updates and described in YAML files. Example https://github.com/redhat-openstack/rdo-update/blob/master/updates/00fz.yml --- notes: | Tighten permissions for /var/log/neutron and /var/lib/neutron/ Added conntrack-tools to dependencies builds: - id: openstack-neutron-2014.2-5.fc22 repo: juno source: koji dist: fedora-21 - id: openstack-neutron-2014.2-5.el7 source: copr-jruzicka repo: juno dist: epel-7 --- # RDO Introduction For Contributors ## rdopkg CI Updates are pushed as Gerrit updates which trigger a series of CI jobs. * Phase1 Install packages from update YAML on the snapshot image with the all-in-one OpenStack installation, starts services and runs Tempest smoketest. Tests basic package sanity and upgrade. * Phase2 Runs from-the-scratch all-in-one installation with all the packages which passed Phase1. Tests package interaction among queued updates. * stage daily jobs and on-demand before pushing queued updates list * production daily job to catch regressions in dependency changes --- # RDO Introduction For Contributors ## Delorean https://etherpad.openstack.org/p/delorean-packages Tracks upstream trunk i.e. currently Kilo. Breaks when upstream change requires packaging changes and alerts the package owner as defined in https://github.com/redhat-openstack/rdoinfo Going forward, all packaging changes will be done in Delorean packages first, and merged to Fedora Rawhide around milestone times. --- # RDO Introduction For Contributors ## Next Steps * rdopkg on github * rdo-update on gerrithub * rdopkg CI on a public Jenkins instance