diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2
index 345a1b604e..fda017c0c4 100644
--- a/docker/openstack-base/Dockerfile.j2
+++ b/docker/openstack-base/Dockerfile.j2
@@ -73,10 +73,12 @@ RUN apt-get install -y --no-install-recommends \
 
     {% 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 \
     && rm get-pip.py \
-    && pip --no-cache-dir install -U \
+    && pip --no-cache-dir install -U -c requirements/upper-constraints.txt \
         python-barbicanclient \
         python-ceilometerclient \
         python-congressclient \
diff --git a/etc/kolla/kolla-build.conf b/etc/kolla/kolla-build.conf
index c4281248f2..45940fd2ee 100644
--- a/etc/kolla/kolla-build.conf
+++ b/etc/kolla/kolla-build.conf
@@ -56,6 +56,11 @@
 # reference: stable  # git reference to pull, commit sha, tag or branch name
 #                    # pulls from master branch unless specified otherwise
 
+[openstack-base]
+type = git
+location = https://github.com/openstack/requirements.git
+reference = master
+
 [ceilometer-base]
 type = url
 location = http://tarballs.openstack.org/ceilometer/ceilometer-master.tar.gz