Build fuel library packages from upstream modules
In order to improve Fuel development and OpenStack puppet community experience, in order to reduce the cost of maintaining forks of upstream puppet modules for OpenStack, the Fuel build system should be switched on upstream puppet modules plus custom Fuel library patches bundled as packages. The upstream modules like puppet-nova, puppet-neutron and so on, should be bundled as fuel-puppet-nova, fuel-puppet-neutron etc. packages. All custom changes in Fuel library should be applied atop of these builds and maintained (rebase, if build failed) by dev team until got contributed upstream and removed from custom patches.
This will allow the Fuel dev team to be auto-notified on upstream changes related to custom patches and will motivate them to contribute custom patches upstream to reduce the maintenance burden.
Acceptance criteria:
- As a first part, make packages for fuel-puppet-nova, *keystone, *cinder, *glance, *neutron, *swift, *ceilometer, * horizon to be build from upstream puppet modules plus custom patches for Fuel library:
- As a second step, set up CI to track upstream master branch and post non-voting Fuel CI
test results to upstream gerrit.
Mandatory design review: Vladimir Kuklin, Dmitry Borodaenko
Blueprint information
- Status:
- Not started
- Approver:
- Vladimir Kuklin
- Priority:
- Undefined
- Drafter:
- Bogdan Dobrelya
- Direction:
- Needs approval
- Assignee:
- Fuel Library (Deprecated)
- Definition:
- Discussion
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- next
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
http://
All we need is to package fuel-library core into a set of binary
packages (rpm or deb), one per Puppet module.
Start with a single git repo used as source package for all such binary
packages, with primary fuel-library package depending on module
packages.
Then, one at a time, extract a module into its own git-buildpackage [0]
repo and use gbp-pq [1] to convert Fuel specific patches into a quilt
patch queue (tell me if there are better ways to do that for RPMs).
[0] http://
[1] http://
After that:
1. Fix fuel-library dependency to the first post-split revision of the
module (which matches the pre-split code).
2. Set up CI to track upstream master branch and post non-voting Fuel CI
test results to upstream gerrit.
3. Commit changes to Fuel core and upstream to get the Fuel test results
to pass.
4. Turn on voting for Fuel CI tests in upstream.
5. Relax fuel-library dependency to unversioned, so that it takes the
latest available revision of the module.
At that point, transition to full upstream integration is completed, for
that particular module.