From bbd5f14bed6844250b80a7def70ced40cdf8a884 Mon Sep 17 00:00:00 2001 From: "jose.lausuch" Date: Thu, 29 Sep 2016 17:37:15 +0200 Subject: Propose common directory for Docker related files Proposal 3 from this wiki: https://wiki.opnfv.org/display/INF/Docker+handling+in+CI#DockerhandlinginCI-3Dockerfilelocation Do not merge before this: https://gerrit.opnfv.org/gerrit/#/c/22565/ JIRA: RELENG-148 Change-Id: I6fc236688389879fd7f62788eaf77d75dc4730cd Signed-off-by: jose.lausuch (cherry picked from commit 7a99ea3daf7e01936612e1c205ec612a92732ed9) --- Dockerfile | 50 ---------------------- docker/Dockerfile | 66 ++++++++++++++++++++++++++++++ docker/Makefile | 36 ++++++++++++++++ docker/exec_tests.sh | 55 +++++++++++++++++++++++++ tests/ci/docker/Makefile | 36 ---------------- tests/ci/docker/yardstick-ci/Dockerfile | 66 ------------------------------ tests/ci/docker/yardstick-ci/exec_tests.sh | 55 ------------------------- 7 files changed, 157 insertions(+), 207 deletions(-) delete mode 100644 Dockerfile create mode 100644 docker/Dockerfile create mode 100644 docker/Makefile create mode 100755 docker/exec_tests.sh delete mode 100644 tests/ci/docker/Makefile delete mode 100644 tests/ci/docker/yardstick-ci/Dockerfile delete mode 100755 tests/ci/docker/yardstick-ci/exec_tests.sh diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 59dbef0ba..000000000 --- a/Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -FROM ubuntu:14.04 -MAINTAINER Hans Feldt - -# TODO: Is there some easy way to get the fastest/closest mirror? -#RUN sed -i 's/archive.ubuntu.com/ftp.acc.umu.se/g' /etc/apt/sources.list - -RUN apt-get update && apt-get install -y \ - libffi-dev \ - libssl-dev \ - libxml2-dev \ - libxslt1-dev \ - python \ - python-dev \ - python-setuptools && \ - easy_install -U setuptools - -COPY . /tmp/yardstick - -RUN cd /tmp/yardstick && \ - python setup.py install && \ - apt-get -y remove \ - binutils \ - cpp \ - gcc \ - libffi-dev \ - libssl-dev \ - python3 \ - python-dev && \ - apt-get -y autoremove && \ - apt-get clean && \ - useradd -u 65500 -m yardstick && \ - cp -a samples /home/yardstick && \ - chown -R yardstick /home/yardstick/samples && \ - chgrp -R yardstick /home/yardstick/samples && \ - rm -rf /tmp/* && \ - rm -rf /var/lib/apt/lists/* - -USER yardstick -CMD bash --login -ENV HOME /home/yardstick -WORKDIR /home/yardstick diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 000000000..5387babff --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,66 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +FROM ubuntu:14.04 + +LABEL image=opnfv/yardstick + +# GIT repo directory +ENV REPOS_DIR /home/opnfv/repos + +# Yardstick repo +ENV YARDSTICK_REPO_DIR ${REPOS_DIR}/yardstick +ENV RELENG_REPO_DIR ${REPOS_DIR}/releng +RUN sed -i -e 's/^deb /deb [arch=amd64] /g' /etc/apt/sources.list +RUN sed -i -e 's/^deb-src /# deb-src /g' /etc/apt/sources.list +RUN echo "\n\ +deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main universe multiverse restricted \n\ +deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main universe multiverse restricted \n\ +deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-security main universe multiverse restricted \n\ +deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed main universe multiverse restricted" >> /etc/apt/sources.list +RUN echo "vm.mmap_min_addr = 0" > /etc/sysctl.d/mmap_min_addr.conf +RUN dpkg --add-architecture arm64 + +RUN apt-get update && apt-get install -y \ + qemu-user-static \ + libc6:arm64 \ + wget \ + expect \ + curl \ + git \ + sshpass \ + qemu-utils \ + kpartx \ + libffi-dev \ + libssl-dev \ + python \ + python-dev \ + libxml2-dev \ + libxslt1-dev \ + python-setuptools && \ + easy_install -U setuptools + +RUN apt-get -y autoremove && \ + apt-get clean + +RUN mkdir -p ${REPOS_DIR} + +RUN git config --global http.sslVerify false +RUN git clone https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR} +RUN git clone https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR} + +# install yardstick + dependencies +RUN cd ${YARDSTICK_REPO_DIR} && easy_install -U pip +RUN cd ${YARDSTICK_REPO_DIR} && pip install -r tests/ci/requirements.txt +RUN cd ${YARDSTICK_REPO_DIR} && pip install . + +ADD http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img /home/opnfv/images/ +ADD http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img /home/opnfv/images/ + +COPY ./exec_tests.sh /usr/local/bin/ diff --git a/docker/Makefile b/docker/Makefile new file mode 100644 index 000000000..036d67db3 --- /dev/null +++ b/docker/Makefile @@ -0,0 +1,36 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +SHELL = /bin/bash + +IMAGE = opnfv/yardstick + +DOCKER_TAG = brahmaputra.0 + +.PHONY: all +all: .docker + +.docker: + /usr/bin/docker build --rm=true --no-cache=true -t $(IMAGE):$(DOCKER_TAG) yardstick-ci + /usr/bin/docker tag -f $(IMAGE):$(DOCKER_TAG) $(IMAGE):latest + touch .docker + + +.PHONY: clean +clean: + @docker ps | grep $(IMAGE) | awk '{print $$1}' | xargs -r docker stop + @docker ps -a | grep $(IMAGE) | awk '{print $$1}' | xargs -r docker rm + @echo "Docker images to remove:" + @docker images | head -1 && docker images | grep $(IMAGE) || true + @image_tags=($$(docker images | grep $(IMAGE) | awk '{print $$2}')) ; \ + for tag in "$${image_tags[@]}"; do \ + echo "Removing docker image $(IMAGE):$$tag..." ; \ + docker rmi $(IMAGE):$$tag ; \ + done + rm -f .docker diff --git a/docker/exec_tests.sh b/docker/exec_tests.sh new file mode 100755 index 000000000..9aee240da --- /dev/null +++ b/docker/exec_tests.sh @@ -0,0 +1,55 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +set -e + +: ${YARDSTICK_REPO:='https://gerrit.opnfv.org/gerrit/yardstick'} +: ${YARDSTICK_REPO_DIR:='/home/opnfv/repos/yardstick'} +: ${YARDSTICK_BRANCH:='master'} # branch, tag, sha1 or refspec + +: ${RELENG_REPO:='https://gerrit.opnfv.org/gerrit/releng'} +: ${RELENG_REPO_DIR:='/home/opnfv/repos/releng'} +: ${RELENG_BRANCH:='master'} # branch, tag, sha1 or refspec + +git_checkout() +{ + if git cat-file -e $1^{commit} 2>/dev/null; then + # branch, tag or sha1 object + git checkout $1 + else + # refspec / changeset + git fetch --tags --progress $2 $1 + git checkout FETCH_HEAD + fi +} + +echo +echo "INFO: Updating releng -> $RELENG_BRANCH" +if [ ! -d $RELENG_REPO_DIR ]; then + git clone $RELENG_REPO $RELENG_REPO_DIR +fi +cd $RELENG_REPO_DIR +git checkout master && git pull +git_checkout $RELENG_BRANCH $RELENG_REPO + +echo +echo "INFO: Updating yardstick -> $YARDSTICK_BRANCH" +if [ ! -d $YARDSTICK_REPO_DIR ]; then + git clone $YARDSTICK_REPO $YARDSTICK_REPO_DIR +fi +cd $YARDSTICK_REPO_DIR +git checkout master && git pull +git_checkout $YARDSTICK_BRANCH $YARDSTICK_REPO + +# setup the environment +source $YARDSTICK_REPO_DIR/tests/ci/prepare_env.sh + +# execute tests +$YARDSTICK_REPO_DIR/tests/ci/yardstick-verify $@ diff --git a/tests/ci/docker/Makefile b/tests/ci/docker/Makefile deleted file mode 100644 index 036d67db3..000000000 --- a/tests/ci/docker/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -SHELL = /bin/bash - -IMAGE = opnfv/yardstick - -DOCKER_TAG = brahmaputra.0 - -.PHONY: all -all: .docker - -.docker: - /usr/bin/docker build --rm=true --no-cache=true -t $(IMAGE):$(DOCKER_TAG) yardstick-ci - /usr/bin/docker tag -f $(IMAGE):$(DOCKER_TAG) $(IMAGE):latest - touch .docker - - -.PHONY: clean -clean: - @docker ps | grep $(IMAGE) | awk '{print $$1}' | xargs -r docker stop - @docker ps -a | grep $(IMAGE) | awk '{print $$1}' | xargs -r docker rm - @echo "Docker images to remove:" - @docker images | head -1 && docker images | grep $(IMAGE) || true - @image_tags=($$(docker images | grep $(IMAGE) | awk '{print $$2}')) ; \ - for tag in "$${image_tags[@]}"; do \ - echo "Removing docker image $(IMAGE):$$tag..." ; \ - docker rmi $(IMAGE):$$tag ; \ - done - rm -f .docker diff --git a/tests/ci/docker/yardstick-ci/Dockerfile b/tests/ci/docker/yardstick-ci/Dockerfile deleted file mode 100644 index 5387babff..000000000 --- a/tests/ci/docker/yardstick-ci/Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -FROM ubuntu:14.04 - -LABEL image=opnfv/yardstick - -# GIT repo directory -ENV REPOS_DIR /home/opnfv/repos - -# Yardstick repo -ENV YARDSTICK_REPO_DIR ${REPOS_DIR}/yardstick -ENV RELENG_REPO_DIR ${REPOS_DIR}/releng -RUN sed -i -e 's/^deb /deb [arch=amd64] /g' /etc/apt/sources.list -RUN sed -i -e 's/^deb-src /# deb-src /g' /etc/apt/sources.list -RUN echo "\n\ -deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main universe multiverse restricted \n\ -deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main universe multiverse restricted \n\ -deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-security main universe multiverse restricted \n\ -deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed main universe multiverse restricted" >> /etc/apt/sources.list -RUN echo "vm.mmap_min_addr = 0" > /etc/sysctl.d/mmap_min_addr.conf -RUN dpkg --add-architecture arm64 - -RUN apt-get update && apt-get install -y \ - qemu-user-static \ - libc6:arm64 \ - wget \ - expect \ - curl \ - git \ - sshpass \ - qemu-utils \ - kpartx \ - libffi-dev \ - libssl-dev \ - python \ - python-dev \ - libxml2-dev \ - libxslt1-dev \ - python-setuptools && \ - easy_install -U setuptools - -RUN apt-get -y autoremove && \ - apt-get clean - -RUN mkdir -p ${REPOS_DIR} - -RUN git config --global http.sslVerify false -RUN git clone https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR} -RUN git clone https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR} - -# install yardstick + dependencies -RUN cd ${YARDSTICK_REPO_DIR} && easy_install -U pip -RUN cd ${YARDSTICK_REPO_DIR} && pip install -r tests/ci/requirements.txt -RUN cd ${YARDSTICK_REPO_DIR} && pip install . - -ADD http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img /home/opnfv/images/ -ADD http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img /home/opnfv/images/ - -COPY ./exec_tests.sh /usr/local/bin/ diff --git a/tests/ci/docker/yardstick-ci/exec_tests.sh b/tests/ci/docker/yardstick-ci/exec_tests.sh deleted file mode 100755 index 9aee240da..000000000 --- a/tests/ci/docker/yardstick-ci/exec_tests.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -set -e - -: ${YARDSTICK_REPO:='https://gerrit.opnfv.org/gerrit/yardstick'} -: ${YARDSTICK_REPO_DIR:='/home/opnfv/repos/yardstick'} -: ${YARDSTICK_BRANCH:='master'} # branch, tag, sha1 or refspec - -: ${RELENG_REPO:='https://gerrit.opnfv.org/gerrit/releng'} -: ${RELENG_REPO_DIR:='/home/opnfv/repos/releng'} -: ${RELENG_BRANCH:='master'} # branch, tag, sha1 or refspec - -git_checkout() -{ - if git cat-file -e $1^{commit} 2>/dev/null; then - # branch, tag or sha1 object - git checkout $1 - else - # refspec / changeset - git fetch --tags --progress $2 $1 - git checkout FETCH_HEAD - fi -} - -echo -echo "INFO: Updating releng -> $RELENG_BRANCH" -if [ ! -d $RELENG_REPO_DIR ]; then - git clone $RELENG_REPO $RELENG_REPO_DIR -fi -cd $RELENG_REPO_DIR -git checkout master && git pull -git_checkout $RELENG_BRANCH $RELENG_REPO - -echo -echo "INFO: Updating yardstick -> $YARDSTICK_BRANCH" -if [ ! -d $YARDSTICK_REPO_DIR ]; then - git clone $YARDSTICK_REPO $YARDSTICK_REPO_DIR -fi -cd $YARDSTICK_REPO_DIR -git checkout master && git pull -git_checkout $YARDSTICK_BRANCH $YARDSTICK_REPO - -# setup the environment -source $YARDSTICK_REPO_DIR/tests/ci/prepare_env.sh - -# execute tests -$YARDSTICK_REPO_DIR/tests/ci/yardstick-verify $@ -- cgit 1.2.3-korg