From 70c27f24d07411103fb63090d17390f5ea249ebc Mon Sep 17 00:00:00 2001 From: Jo¶rgen Karlsson Date: Mon, 7 Dec 2015 18:51:22 +0100 Subject: Docker image cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Renamed docker image 'opnfv/yardstick-ci' -> 'opnfv/yardstick' as recommended by project. - Added cirros image and releng repo to docker image in order to make it more usable in offline mode. - Renamed run_benchmarks to run_tests.sh - Moved some environment setups to a new file prepare_env.sh - Added daily test suites file for ericsson and LF pods. Docker image is now built and pushed by releng script: https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=blob;f=jjb/opnfv/opnfv-docker.sh The ci/docker/Makefile file is not used by releng to build yardstick image but the makefile can still be used to build and test docker images locally. Change-Id: If9d6740b39e91d145c587d8d5e2bd372d09a46a9 Signed-off-by: Jo¶rgen Karlsson --- ci/docker/Makefile | 21 +++++++--- ci/docker/yardstick-ci/Dockerfile | 9 +++- ci/docker/yardstick-ci/run_benchmarks | 79 ----------------------------------- ci/docker/yardstick-ci/run_tests.sh | 55 ++++++++++++++++++++++++ ci/prepare_env.sh | 31 ++++++++++++++ ci/yardstick-verify | 6 +-- 6 files changed, 110 insertions(+), 91 deletions(-) delete mode 100755 ci/docker/yardstick-ci/run_benchmarks create mode 100755 ci/docker/yardstick-ci/run_tests.sh create mode 100755 ci/prepare_env.sh (limited to 'ci') diff --git a/ci/docker/Makefile b/ci/docker/Makefile index 81189960d..036d67db3 100644 --- a/ci/docker/Makefile +++ b/ci/docker/Makefile @@ -9,19 +9,28 @@ SHELL = /bin/bash -IMAGE = opnfv/yardstick-ci +IMAGE = opnfv/yardstick + +DOCKER_TAG = brahmaputra.0 .PHONY: all all: .docker .docker: - /usr/bin/docker build --rm=true --no-cache=true -t $(IMAGE):14.04 yardstick-ci - /usr/bin/docker tag -f $(IMAGE):14.04 $(IMAGE) + /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 - docker images -a | grep $(IMAGE) | awk '{print $$3}' | sort | uniq | xargs -r docker rmi + @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/ci/docker/yardstick-ci/Dockerfile b/ci/docker/yardstick-ci/Dockerfile index 9a1e83262..229b91227 100644 --- a/ci/docker/yardstick-ci/Dockerfile +++ b/ci/docker/yardstick-ci/Dockerfile @@ -9,13 +9,14 @@ FROM ubuntu:14.04 -LABEL image=opnfv/yardstick-ci +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 apt-get update && apt-get install -y \ wget \ @@ -37,5 +38,9 @@ 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} + +ADD http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img /home/opnfv/images/ + +COPY ./run_tests.sh /usr/local/bin/ -COPY ./run_benchmarks /usr/local/bin/ diff --git a/ci/docker/yardstick-ci/run_benchmarks b/ci/docker/yardstick-ci/run_benchmarks deleted file mode 100755 index 501b661be..000000000 --- a/ci/docker/yardstick-ci/run_benchmarks +++ /dev/null @@ -1,79 +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/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 - -: ${INSTALLER_TYPE:='fuel'} -: ${INSTALLER_IP:='10.20.0.2'} - -: ${POD_NAME:='opnfv-jump-2'} -: ${EXTERNAL_NET:='net04_ext'} - -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 - -echo -echo "INFO: Creating openstack credentials .." - -# Create openstack credentials -$RELENG_REPO_DIR/utils/fetch_os_creds.sh \ - -d /tmp/openrc \ - -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} - -source /tmp/openrc - -# FIXME: Temporary OPNFV playground hack -if [ "$INSTALLER_TYPE" == "fuel" ]; then - ssh_opts="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - if sshpass -p r00tme ssh 2>/dev/null $ssh_opts root@${INSTALLER_IP} \ - fuel environment --env 1 | grep opnfv-virt; then - echo "INFO: applying OPNFV playground hack" - export OS_ENDPOINT_TYPE='publicURL' - fi -fi - -export EXTERNAL_NET INSTALLER_TYPE POD_NAME - -$YARDSTICK_REPO_DIR/ci/yardstick-verify $@ diff --git a/ci/docker/yardstick-ci/run_tests.sh b/ci/docker/yardstick-ci/run_tests.sh new file mode 100755 index 000000000..531feacc2 --- /dev/null +++ b/ci/docker/yardstick-ci/run_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/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/ci/prepare_env.sh + +# run tests +$YARDSTICK_REPO_DIR/ci/yardstick-verify $@ diff --git a/ci/prepare_env.sh b/ci/prepare_env.sh new file mode 100755 index 000000000..89d4ca74d --- /dev/null +++ b/ci/prepare_env.sh @@ -0,0 +1,31 @@ +#!/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 +############################################################################## + +# Perepare the environment to run yardstick ci + +: ${INSTALLER_TYPE:='fuel'} +: ${INSTALLER_IP:='10.20.0.2'} + +: ${POD_NAME:='opnfv-jump-2'} +: ${EXTERNAL_NETWORK:='net04_ext'} + +echo +echo "INFO: Creating openstack credentials .." + +# Create openstack credentials +OPENRC=/home/opnfv/openrc +if [ ! -f $OPENRC ]; then + $RELENG_REPO_DIR/utils/fetch_os_creds.sh \ + -d $OPENRC \ + -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} +fi +source $OPENRC + +export EXTERNAL_NETWORK INSTALLER_TYPE POD_NAME diff --git a/ci/yardstick-verify b/ci/yardstick-verify index beb2170d3..be1c1250e 100755 --- a/ci/yardstick-verify +++ b/ci/yardstick-verify @@ -127,15 +127,13 @@ load_cirros_image() echo echo "========== Loading cirros cloud image ==========" - local image_file= - - wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img -O /tmp/cirros.img + local image_file=/home/opnfv/images/cirros-0.3.3-x86_64-disk.img output=$(glance image-create \ --name cirros-0.3.3 \ --disk-format qcow2 \ --container-format bare \ - --file /tmp/cirros.img) + --file $image_file) echo "$output" CIRROS_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}') -- cgit 1.2.3-korg