Install openstack from upstream source repositories

https://blueprints.launchpad.net/fuel/+spec/openstack-from-master

Be able to deploy the very latest distribution of OpenStack from upstream master. This is to provide community developers a way to deploy their own additional changes through an easy to use deployment technology (i.e. Fuel).

Problem description

  • The idea behind that feature is to allow customers to compile OpenStack packages during a Fuel ISO build on the fly, both RPM and DEB versions.
  • Customers may use spec files either from our public Gerrit, or from their own local/remote git repos.

Proposed change

Changes will include:

  • New configuration entries to fuel-main/config.mk
  • New subroutines for our make system that will build RPM and DEB packages by using configuration entries from fuel-main/config.mk

Alternatives

None

Data model impact

None

REST API impact

None

Upgrade impact

None

Security impact

None

Notifications impact

None

Other end user impact

  • Additional options to the “make iso” command allow user to customize external sources to build OpenStack components from.

Performance Impact

By using this feature to build multiple custom OpenStack components, the total ISO build time could be significantly higher than “vanilla” Fuel ISO one.

Other deployer impact

The fuel-main/config.mk will contain the following new parameters:

  • BUILD_OPENSTACK_PACKAGES - contains comma-separated list of OpenStack components to build, or “0” otherwise

Per each of OpenStack components, the following list of parameters is defined (using Neutron as an example):

  • NEUTRON_REPO
  • NEUTRON_COMMIT
  • NEUTRON_SPEC_REPO
  • NEUTRON_SPEC_COMMIT
  • NEUTRON_GERRIT_URL
  • NEUTRON_SPEC_GERRIT_URL

These values will take effect only if BUILD_OPENSTACK_PACKAGES parameter contains a name of respective OpenStack component, i.e.:

BUILD_OPENSTACK_PACKAGES:=neutron

It is possible to build specific OpenStack components only, by using make command with the target component parameter, i.e.:

make neutron

Developer impact

None

Implementation

Assignee(s)

Primary assignee:
Vitaly Parakhin

Work Items

Initial phase:

  • Implement building RPM packages from master
  • Produce the specs for building RPM from master

Second phase:

  • Implement building DEB packages from master
  • Produce the specs for building DEB from master

Testing

The following tests should be performed:

  • Building all OpenStack components from master using our specs
  • Deployment tests for an ISO with customized OpenStack components

The existing deployment tests are adequate for testing customized ISO.

Acceptance criteria:

  • Each of OpenStack components could be built from master using our specs
  • Deployment of simple multinode OpenStack succeeds
  • Diagnostic snapshot works
  • Health Check works

Documentation Impact

A note should be added to Fuel User Guide to describe the possibility to build custom OpenStack components from upstream source repositories during ISO build.

References

None