From 6cdbe0e89cc275fab34afb0e3c9cb640bb1de26f Mon Sep 17 00:00:00 2001 From: Bryan Sullivan Date: Thu, 30 Nov 2017 14:34:45 -0800 Subject: Factor out build script for clearwater-docker etc JIRA: MODELS-2 Change-Id: I36f1f7c7b1a37bb34ad4e31240b2b27512348b52 Signed-off-by: Bryan Sullivan --- .gitignore | 1 - build/clearwater-docker.sh | 61 +++++++++++++++++++++++++++++++ tools/cloudify/k8s-cloudify-clearwater.sh | 45 ++++++++++++++++------- tools/kubernetes/ceph-helm.sh | 2 +- 4 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 build/clearwater-docker.sh diff --git a/.gitignore b/.gitignore index 2f5ddf9..33a0451 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ *~ .*.sw? -/build/ /docs_build/ /docs_output/ /releng/ diff --git a/build/clearwater-docker.sh b/build/clearwater-docker.sh new file mode 100644 index 0000000..a8228ca --- /dev/null +++ b/build/clearwater-docker.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# Copyright 2017 AT&T Intellectual Property, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#. What this is: Build script for the github clearwater-docker project +#. https://github.com/Metaswitch/clearwater-docker +#. +#. Prerequisites: +#. Docker hub user logged on so images can be pushed to docker hub, i.e. via +#. $ docker login -u +#. +#. Usage: +#. bash clearwater-docker.sh +#. hub-user: username for dockerhub +#. +#. Status: this is a work in progress, under test. + +dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` + +echo; echo "$0 $(date): Update package repos" +if [ "$dist" == "Ubuntu" ]; then + sudo apt-get update +else + sudo yum update -y +fi + +echo; echo "$0 $(date): Starting VES agent build process" +if [[ -d /tmp/clearwater-docker ]]; then rm -rf /tmp/clearwater-docker; fi + +echo; echo "$0 $(date): Cloning clearwater-docker repo to /tmp/clearwater-docker" + git clone https://github.com/Metaswitch/clearwater-docker.git \ + /tmp/clearwater-docker + +echo; echo "$0 $(date): Building the images" +cd /tmp/clearwater-docker +vnfc="base astaire cassandra chronos bono ellis homer homestead homestead-prov ralf sprout" +for i in $vnfc ; do + sudo docker build -t clearwater/$i $i +done + +echo; echo "$0 $(date): push images to docker hub" +for i in $vnfc ; do + echo; echo "$0 $(date): Tagging the image as $1/clearwater-$i:latest" + id=$(sudo docker images | grep clearwater/$i | awk '{print $3}') + id=$(echo $id | cut -d ' ' -f 1) + sudo docker tag $id $1/clearwater-$i:latest + + echo; echo "$0 $(date): Pushing the image to dockerhub as $1/clearwater-$i" + sudo docker push $1/clearwater-$i +done diff --git a/tools/cloudify/k8s-cloudify-clearwater.sh b/tools/cloudify/k8s-cloudify-clearwater.sh index 800d357..430d31a 100644 --- a/tools/cloudify/k8s-cloudify-clearwater.sh +++ b/tools/cloudify/k8s-cloudify-clearwater.sh @@ -16,13 +16,20 @@ #. What this is: Setup script for clearwater-docker as deployed by Cloudify #. with Kubernetes. See https://github.com/Metaswitch/clearwater-docker #. for more info. +#. #. Prerequisites: #. - Kubernetes cluster installed per k8s-cluster.sh (in this repo) #. - user (running this script) added to the "docker" group +#. - clearwater-docker images created and uploaded to docker hub under the +#. account as /clearwater- where vnfc is the name +#. of the specific containers as built by build/clearwater-docker.sh +#. #. Usage: #. From a server with access to the kubernetes master node: #. $ git clone https://gerrit.opnfv.org/gerrit/models ~/models - +#. $ cd ~/models/tools/cloudify/ +#. $ bash k8s-cloudify-clearwater.sh +#. #. Status: this is a work in progress, under test. function fail() { @@ -37,7 +44,7 @@ function log() { echo "$f:$l ($(date)) $1" } -function setup() { +function build_local() { master=$1 log "deploy local docker registry on k8s master" # Per https://docs.docker.com/registry/deploying/ @@ -57,6 +64,27 @@ function setup() { docker build -t clearwater/$i $i done + # workaround for https://www.bountysource.com/issues/37326551-server-gave-http-response-to-https-client-error + # May not need both... + if [[ "$dist" == "ubuntu" ]]; then + check=$(grep -c $master /etc/default/docker) + if [[ $check -eq 0 ]]; then + echo "DOCKER_OPTS=\"--insecure-registry $master:5000\"" | sudo tee -a /etc/default/docker + sudo systemctl daemon-reload + sudo service docker restart + fi + fi + check=$(grep -c insecure-registry /lib/systemd/system/docker.service) + if [[ $check -eq 0 ]]; then + sudo sed -i -- "s~ExecStart=/usr/bin/dockerd -H fd://~ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry $master:5000~" /lib/systemd/system/docker.service + sudo systemctl daemon-reload + sudo service docker restart + fi + + log "deploy local docker registry on k8s master" + # Per https://docs.docker.com/registry/deploying/ + # sudo docker run -d -p 5000:5000 --restart=always --name registry registry:2 + log "push images to local docker repo on k8s master" for i in $vnfc ; do docker tag clearwater/$i:latest $master:5000/clearwater/$i:latest @@ -64,6 +92,7 @@ function setup() { done } + function start() { master=$1 } @@ -72,24 +101,14 @@ function stop() { master=$1 } -function clean() { - master=$1 -} - -dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` +dist=$(grep --m 1 ID /etc/os-release | awk -F '=' '{print $2}') case "$1" in - "setup") - setup $2 - ;; "start") start $2 ;; "stop") stop $2 ;; - "clean") - clean - ;; *) grep '#. ' $0 esac diff --git a/tools/kubernetes/ceph-helm.sh b/tools/kubernetes/ceph-helm.sh index ea5dccf..a1be588 100644 --- a/tools/kubernetes/ceph-helm.sh +++ b/tools/kubernetes/ceph-helm.sh @@ -65,7 +65,7 @@ search ceph.svc.cluster.local svc.cluster.local cluster.local options ndots:5 EOF - ./helm-install-ceph.sh cephtest $private_net $public_net + ./helm-install-ceph.sh cephtest $public_net $private_net log "Check the pod status of ceph-mon, ceph-mgr, ceph-mon-check, and rbd-provisioner" services="rbd-provisioner ceph-mon-0 ceph-mgr ceph-mon-check" -- cgit 1.2.3-korg