initial commit
* Downstream tempest with set of downstream plugins
* Align to upstream openstack upper-constraints.txt
* No-auto-magic things, by default.
* All configs should be **connected** as volumes to container.
* All preconfigured things, like:
-create networks
-create tempest conf
-add\patch plugin
should be done in separate steps.
* Open entrypoint - any customization allowed and could be passed:
- via cmdline for docker run
- via SWITCH env variables + new func in entrypoint
* If needed, any custom scripts could be added, but should be disable by default.
Change-Id: Iec219f3f23f06ee08f7761cf78f478ca0b0ca04f
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..160f399
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,93 @@
+FROM ubuntu:16.04
+
+LABEL maintainer="qa@mirantis.com"
+
+ARG TEMPEST_TAG="mcp/pike"
+# Tempest plugins
+ARG HORIZON_TAG="mcp/pike"
+ARG BARBICAN_TAG="master"
+ARG DESIGNATE_TAG="mcp/pike"
+ARG HEAT_TAG="mcp/pike"
+ARG IRONIC_TAG="master"
+ARG MANILA_TAG="master"
+ARG TELEMETRY_TAG="master"
+# global openstack requirements repo
+ARG UPPER_CONSTRAINTS_TAG="stable/pike"
+#
+ENV DEBIAN_FRONTEND=noninteractive \
+ DEBCONF_NONINTERACTIVE_SEEN=true \
+ LANG=C.UTF-8 \
+ LANGUAGE=$LANG
+SHELL ["/bin/bash", "-xec"]
+USER root
+# pre-update
+RUN cd /etc/apt/ && echo > sources.list \
+ && echo "deb [arch=amd64] http://cz.archive.ubuntu.com/ubuntu xenial main restricted universe multiverse" >> sources.list \
+ && echo "deb [arch=amd64] http://cz.archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse" >> sources.list \
+ && echo "deb [arch=amd64] http://cz.archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse" >> sources.list \
+ && echo 'Acquire::Languages "none";' > apt.conf.d/docker-no-languages \
+ && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > apt.conf.d/docker-gzip-indexes \
+ && echo 'APT::Get::Install-Recommends "false"; APT::Get::Install-Suggests "false";' > apt.conf.d/docker-recommends \
+ && apt-get update && apt-get upgrade -y \
+ && apt-get install -y vim-tiny git-core python-pip libffi-dev libssl-dev python-dev python3-dev
+
+RUN pip install -U pip
+WORKDIR /var/lib/
+# TODO migrate to downstrem mirror?
+RUN git clone https://github.com/openstack/requirements.git openstack_requirements && \
+ pushd openstack_requirements; git checkout $UPPER_CONSTRAINTS_TAG; popd ;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/tempest && \
+ pushd tempest; git checkout $TEMPEST_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/tempest-horizon tempest-horizon-plugin ; \
+ pushd tempest-horizon-plugin ; git checkout $HORIZON_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/barbican-tempest-plugin && \
+ pushd barbican-tempest-plugin; git checkout $BARBICAN_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/designate-tempest-plugin && \
+ pushd designate-tempest-plugin; git checkout $DESIGNATE_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/heat-tempest-plugin && \
+ pushd heat-tempest-plugin; git checkout $HEAT_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/ironic-tempest-plugin && \
+ pushd ironic-tempest-plugin; git checkout $IRONIC_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/manila-tempest-plugin && \
+ pushd manila-tempest-plugin; git checkout $MANILA_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+RUN git clone https://gerrit.mcp.mirantis.net/packaging/sources/telemetry-tempest-plugin && \
+ pushd telemetry-tempest-plugin; git checkout $TELEMETRY_TAG; \
+ pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt ; \
+ pip install . ; popd;
+
+# Cleanup.
+RUN apt-get -y purge libx11-data xauth libxmuu1 libxcb1 libx11-6 libxext6 \
+ ppp pppconfig pppoeconf popularity-contest cpp gcc g++ libssl-doc
+RUN apt-get -y autoremove; apt-get -y clean;
+RUN rm -rf /root/.cache
+RUN rm -rf /var/lib/apt/lists/*
+#
+COPY bin/entrypoint.sh /usr/bin/entrypoint.sh
+
+WORKDIR /var/lib/tempest/
+ENTRYPOINT ["/usr/bin/entrypoint.sh"]
+
+# Build
+# docker build -t docker-ci-tempest:$(date "+%Y_%m_%d_%H_%M_%S") .