Adding the first spec: docker-image-generation

Removing the placeholder which was only present until a spec
was uploaded.

Including the spec for generating docker images to be
used by containerization

Change-Id: Ib39ccbc893bb4078b4b1cbf5d505b489ced5ed01
Authored-By: Don.Penney@windriver.com
Co-Authored-By: Al.Bailey@windriver.com
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
This commit is contained in:
Al Bailey 2018-10-10 10:37:44 -05:00
parent 1ed5fe0440
commit 415b3486f5
2 changed files with 163 additions and 8 deletions

View File

@ -1,8 +0,0 @@
.. placeholder:
===========
Placeholder
===========
This file is a placeholder and should be deleted when the first spec is moved
to this directory.

View File

@ -0,0 +1,163 @@
.. This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==================================
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
=======
.. list-table:: Revisions
:header-rows: 1
* - Release Name
- Description
* - 2019.03
- Introduced