Use openstack/requirements for repeatable builds

Add this repo to the openstack-base image, and use the upper-constraints
to install the client packages. Will follow up with dependant patches
for the child images to reduce the risk of breaking everything at once.

--

Background:

Many dependencies in the requirements.txt of OpenStack components have
quite loose version requirements, in many cases they will just specify a
minimum version (e.g. WebOb>=1.2.3).

The result of this is that given a Kolla image for Keystone built today,
another build of the exact same ref of Keystone could be broken
tomorrow, due to it picking up a later unsupported dependency.

The https://github.com/openstack/requirements repo exists to bring some
sanity to this situation. (It also outlines other problems it solves in
it's readme).

We also may like to checkout the stable/liberty branch of this project
in our liberty branch, once it appears.

Change-Id: Iccb4e99f8e4b6659a19c1817d0f4c697824af25c
Partial-Bug: #1505306
This commit is contained in:
Paul Bourke 2015-10-12 18:09:04 +00:00
parent e47d4b8506
commit 72a8f5aabd
2 changed files with 9 additions and 2 deletions

View File

@ -73,10 +73,12 @@ RUN apt-get install -y --no-install-recommends \
{% endif %} {% endif %}
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ ADD openstack-base-archive /openstack-base-source
RUN ln -s openstack-base-source/* /requirements \
&& curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
&& python get-pip.py \ && python get-pip.py \
&& rm get-pip.py \ && rm get-pip.py \
&& pip --no-cache-dir install -U \ && pip --no-cache-dir install -U -c requirements/upper-constraints.txt \
python-barbicanclient \ python-barbicanclient \
python-ceilometerclient \ python-ceilometerclient \
python-congressclient \ python-congressclient \

View File

@ -56,6 +56,11 @@
# reference: stable # git reference to pull, commit sha, tag or branch name # reference: stable # git reference to pull, commit sha, tag or branch name
# # pulls from master branch unless specified otherwise # # pulls from master branch unless specified otherwise
[openstack-base]
type = git
location = https://github.com/openstack/requirements.git
reference = master
[ceilometer-base] [ceilometer-base]
type = url type = url
location = http://tarballs.openstack.org/ceilometer/ceilometer-master.tar.gz location = http://tarballs.openstack.org/ceilometer/ceilometer-master.tar.gz