StarlingX: Docker Image Generation

https://storyboard.openstack.org/#!/story/2003907

This story will update the StarlingX build system to include generation of Docker images for infrastructure services that will run in containers. These services will initially include all OpenStack services supported by StarlingX, nova-api-proxy and fault-management and this story will extend the build system to generate docker images for each.

We will make use of OpenStack LOCI to help build the StarlingX service images. In support of this, we will also build python wheels for required modules to align with the appropriate upper constraints.

Problem description

We need a mechanism to build images for the StarlingX services to support containerization.

Use Cases

Developers need to be able to build images for the StarlingX services.

Automated build tools need to be able to build images.

Proposed change

For building python wheels, we will make use of the python2/3 pip and wheels packages. These allow us to generate the wheels during the regular loadbuild, for python modules we currently build. Additionally, we will provide a mechanism for building wheels for specific versions of a base set of python modules from trusted sources, such as pypi.org. This combined set of wheels will be provided as input to LOCI when building the images.

For building the StarlingX images, we will create a set of image build configuration files and a utility to process these files, using the directives within to provide the appropriate configuration to LOCI to build the necessary images.

Alternatives

We could create our own docker files to generate the StarlingX images, installing the necessary components, but this would be reimplementing the functionality provided by LOCI. As well, LOCI is already being used by OpenStack Helm for building images for the OpenStack services, so it already has support within the community.

Data model impact

None

REST API impact

None

Security impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

Introduction of this feature will add additional steps to a developer build, but these should be optional.

Upgrade impact

None

Implementation

Assignee(s)

Primary assignee:

Don Penney <dpenney>

Other contributors:

Al Bailey <albailey>

Repos Impacted

  • stx-config

  • stx-distcloud

  • stx-fault

  • stx-gui

  • stx-ha

  • stx-integ

  • stx-nfv

  • stx-root

  • stx-update

  • stx-upstream

Work Items

  • Update StarlingX python modules to generate wheels

  • Create mechanism and config for building base python wheels

  • Create mechanism and config for building StarlingX images

Dependencies

None

Testing

StarlingX images will be verified to ensure images can be launched and contain all necessary software.

Documentation Impact

Documentation for the build and developer workflow will need to be updated.

References

https://github.com/openstack/loci

History

Revisions :header-rows: 1

Release Name

Description

2019.03

Introduced