diff --git a/upper-constraints.txt b/upper-constraints.txt
new file mode 100644
index 0000000000..5cc32580d4
--- /dev/null
+++ b/upper-constraints.txt
@@ -0,0 +1,312 @@
+Babel===1.3
+Django===1.7.8
+Flask===0.10.1
+Jinja2===2.7.3
+Mako===1.0.1
+MarkupSafe===0.23
+MySQL-python===1.2.5;python_version=='2.7'
+Parsley===1.2
+Paste===2.0.2
+PasteDeploy===1.5.2
+Pillow===2.8.2
+Pint===0.6
+PuLP===1.6.0
+PyECLib===1.0.7
+PyKMIP===0.3.2
+PyMySQL===0.6.6
+PyYAML===3.11
+Pygments===2.0.2
+Routes===2.1
+SQLAlchemy===1.0.5
+SQLAlchemy-Utils===0.30.11
+Sphinx===1.2.3
+Tempita===0.5.2
+WSME===0.7.0
+WebOb===1.4.1
+WebTest===2.0.18
+Werkzeug===0.10.4
+XStatic===1.0.1
+XStatic-Angular===1.3.7.0
+XStatic-Angular-Bootstrap===0.11.0.2
+XStatic-Angular-FileUpload===1.4.0.1
+XStatic-Angular-lrdragndrop===1.0.2.2
+XStatic-Bootstrap-Datepicker===1.3.1.0
+XStatic-Bootstrap-SCSS===3.2.0.0
+XStatic-D3===3.1.6.2
+XStatic-Font-Awesome===4.3.0.0
+XStatic-Hogan===2.0.0.2
+XStatic-JQuery-Migrate===1.2.1.1
+XStatic-JQuery.Bootstrap.Wizard===1.0.0.1
+XStatic-JQuery.TableSorter===2.14.5.1
+XStatic-JQuery.quicksearch===2.0.3.1
+XStatic-JSEncrypt===2.0.0.2
+XStatic-Jasmine===2.1.2.0
+XStatic-Magic-Search===0.2.0.1
+XStatic-QUnit===1.14.0.2
+XStatic-Rickshaw===1.5.0.0
+XStatic-Spin===1.2.5.2
+XStatic-jQuery===1.10.2.1
+XStatic-jquery-ui===1.11.0.1
+XStatic-smart-table===1.4.5.3
+XStatic-term.js===0.0.4.2
+XenAPI===1.2
+aioeventlet===0.4
+alembic===0.7.6
+amqp===1.4.6
+anyjson===0.3.3
+appdirs===1.4.0
+argcomplete===0.8.9
+astroid===1.3.6
+autobahn===0.10.4
+automaton===0.2.0
+backports.ssl-match-hostname===3.4.0.2;python_version=='2.7'
+bandit===0.11.0
+bashate===0.3.1
+beautifulsoup4===4.3.2
+blockdiag===1.5.2
+boto===2.38.0
+cachetools===1.0.2
+cassandra-driver===2.5.1
+ceilometermiddleware===0.2.0
+certifi===2015.4.28;python_version=='2.7'
+cffi===1.1.2
+chardet===2.3.0
+cliff===1.13.0
+cliff-tablib===1.1
+cmd2===0.6.8
+colorama===0.3.3
+contextlib2===0.4.0
+coverage===3.7.1
+croniter===0.3.8
+cryptography===0.9.1
+ddt===1.0.0
+debtcollector===0.5.0
+decorator===3.4.2
+demjson===2.2.2
+dib-utils===0.0.8
+discover===0.4.0
+diskimage-builder===0.1.46
+django-appconf===1.0.1
+django-babel===0.4.0
+django-bootstrap-form===3.2
+django-compressor===1.5
+django-nose===1.4
+django-openstack-auth===1.3.1
+django-pyscss===2.0.2
+dnspython===1.12.0
+doc8===0.6.0
+docker-py===1.2.3
+docutils===0.12
+dogpile.cache===0.5.6
+dogpile.core===0.4.1
+ecdsa===0.13
+elasticsearch===1.6.0
+enum34===1.0.4
+eventlet===0.17.4
+extras===0.0.3
+falcon===0.1.10
+fasteners===0.12.0
+feedparser===5.2.0
+fixtures===1.2.0
+funcparserlib===0.3.6
+functools32===3.2.3.post1;python_version=='2.7'
+futures===3.0.3
+gabbi===0.101.0
+glance-store===0.6.0
+greenlet===0.4.7
+happybase===0.9;python_version=='2.7'
+hgtools===6.3
+httplib2===0.9.1
+httpretty===0.8.6
+idna===2.0
+influxdb===2.6.0
+ipaddress===1.0.7;python_version=='2.7'
+ironic-discoverd===1.1.0
+iso8601===0.1.10
+itsdangerous===0.24
+jsonpatch===1.11
+jsonpath-rw===1.4.0
+jsonpointer===1.9
+jsonrpclib===0.1.3
+jsonschema===2.5.1
+kafka-python===0.9.4
+kazoo===2.2.1
+kerberos===1.1.1;python_version=='2.7'
+keyring===5.3
+keystonemiddleware===2.0.0
+kombu===3.0.26
+ldappool===1.0
+libvirt-python===1.2.16
+linecache2===1.0.0
+logilab-common===0.63.2
+logutils===0.3.3
+lxml===3.4.4
+mock===1.0.1
+monotonic===0.2
+mox===0.5.3
+mox3===0.8.0
+msgpack-python===0.4.6
+netaddr===0.7.14
+netifaces===0.10.4
+networkx===1.9.1
+nodeenv===0.13.2
+nose===1.3.7
+nose-exclude===0.2.0
+nosehtmloutput===0.0.5
+nosexcover===1.0.10
+numpy===1.9.2
+oauthlib===0.7.2
+openstack-doc-tools===0.29.1
+openstack.nose-plugin===0.11
+openstackdocstheme===1.0.8
+ordereddict===1.1
+os-apply-config===0.1.31
+os-brick===0.2.0
+os-client-config===1.4.0
+os-cloud-config===0.2.9
+os-collect-config===0.1.35
+os-net-config===0.1.4
+os-refresh-config===0.1.10
+os-testr===0.1.0
+oslo.concurrency===2.1.0
+oslo.config===1.12.1
+oslo.context===0.4.0
+oslo.db===1.12.0
+oslo.i18n===2.0.0
+oslo.log===1.5.0
+oslo.messaging===1.15.0
+oslo.middleware===2.2.0
+oslo.policy===0.6.0
+oslo.rootwrap===2.0.0
+oslo.serialization===1.6.0
+oslo.service===0.1.0
+oslo.utils===1.6.0
+oslo.versionedobjects===0.4.0
+oslo.vmware===0.14.0
+oslosphinx===3.0.0
+oslotest===1.8.0
+osprofiler===0.3.0
+ovs===2.4.0.dev0;python_version=='2.7'
+paramiko===1.15.2
+passlib===1.6.2
+pathlib===1.0.1;python_version=='2.7'
+pbr===1.2.0
+pecan===0.9.0
+pexpect===3.2
+ply===3.6
+posix-ipc===1.0.0
+prettytable===0.7.2
+proboscis===1.2.6.0
+psutil===1.2.1
+psycopg2===2.6.1
+pyOpenSSL===0.15.1
+pyScss===1.3.4
+pyasn1===0.1.8
+pyasn1-modules===0.0.6
+pycadf===1.0.0
+pycparser===2.14
+pycrypto===2.6.1
+pyghmi===0.8.0
+pymemcache===1.2.9
+pymongo===3.0.2
+pyngus===1.3.1;python_version=='2.7'
+pyparsing===2.0.3
+pysaml2===2.4.0
+pysendfile===2.0.1
+pysnmp===4.2.5
+pysqlite===2.6.3;python_version=='2.7'
+pystache===0.5.4
+python-barbicanclient===3.2.0
+python-ceilometerclient===1.2.0
+python-cinderclient===1.2.2
+python-congressclient===2015.1.0
+python-dateutil===2.4.2
+python-designateclient===1.2.0
+python-glanceclient===0.19.0
+python-heatclient===0.6.0
+python-ironic-inspector-client===1.0.1
+python-ironicclient===0.7.0
+python-keystoneclient===1.6.0
+python-ldap===2.4.19;python_version=='2.7'
+python-manilaclient===1.2.0
+python-marconiclient===0.0.2
+python-memcached===1.54
+python-mimeparse===0.1.4
+python-muranoclient===0.6.0
+python-neutronclient===2.6.0
+python-novaclient===2.26.0
+python-openstackclient===1.5.0
+python-openstacksdk===0.5.0
+python-qpid-proton===0.9.1;python_version=='2.7'
+python-saharaclient===0.9.1
+python-subunit===1.1.0
+python-swiftclient===2.4.0
+python-troveclient===1.2.0
+python-tuskarclient===0.1.18
+python-zaqarclient===0.1.1
+pytidylib6===0.2.2
+pytz===2015.4
+pyudev===0.16.1
+pyzmq===14.7.0
+qpid-python===0.26;python_version=='2.7'
+redis===2.10.3
+repoze.lru===0.6
+repoze.who===2.2
+requests===2.7.0
+requests-aws===0.1.6
+requests-kerberos===0.7.0;python_version=='2.7'
+requests-mock===0.6.0
+restructuredtext-lint===0.12.2
+retrying===1.3.3
+rfc3986===0.2.2
+rtslib-fb===2.1.57
+selenium===2.46.0
+semantic-version===2.4.1
+seqdiag===0.9.5
+simplegeneric===0.8.1
+simplejson===3.7.3
+singledispatch===3.4.0.3;python_version=='2.7'
+six===1.9.0
+sockjs-tornado===1.0.1
+sphinxcontrib-blockdiag===1.5.3
+sphinxcontrib-docbookrestapi===0.2.1
+sphinxcontrib-httpdomain===1.3.0
+sphinxcontrib-pecanwsme===0.8.0
+sphinxcontrib-seqdiag===0.8.3
+sqlalchemy-migrate===0.9.6
+sqlparse===0.1.15
+stevedore===1.5.0
+suds-jurko===0.6
+swift===1.0.2
+sysv-ipc===0.6.8
+tablib===0.10.0
+taskflow===0.12.0
+tempest-lib===0.6.0
+termcolor===1.1.0
+testrepository===0.0.20
+testresources===0.2.7
+testscenarios===0.5.0
+testtools===1.8.0
+thrift===0.9.2;python_version=='2.7'
+tooz===0.16.0
+tornado===4.2
+traceback2===1.4.0
+tripleo-image-elements===0.8.10
+trollius===1.0.4
+txaio===1.0.0
+unittest2===1.0.1
+urllib3===1.10.4
+virtualenv===13.0.3
+waitress===0.8.9
+warlock===1.1.0
+webcolors===1.5
+websocket-client===0.32.0;python_version=='2.7'
+websockify===0.6.1
+wheel===0.24.0
+wrapt===1.10.4
+wsgi-intercept===0.10.0
+xattr===0.7.7
+xvfbwrapper===0.2.4
+yaql===0.2.6
+zake===0.2.2
+zope.interface===4.1.2