Factor out build script for clearwater-docker etc 35/48135/1
authorBryan Sullivan <bryan.sullivan@att.com>
Thu, 30 Nov 2017 22:34:45 +0000 (14:34 -0800)
committerBryan Sullivan <bryan.sullivan@att.com>
Thu, 30 Nov 2017 22:34:45 +0000 (14:34 -0800)
JIRA: MODELS-2

Change-Id: I36f1f7c7b1a37bb34ad4e31240b2b27512348b52
Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
.gitignore
build/clearwater-docker.sh [new file with mode: 0644]
tools/cloudify/k8s-cloudify-clearwater.sh
tools/kubernetes/ceph-helm.sh

index 2f5ddf9..33a0451 100644 (file)
@@ -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 (file)
index 0000000..a8228ca
--- /dev/null
@@ -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 <hub-user>
+#.
+#. Usage:
+#.   bash clearwater-docker.sh <hub-user>
+#.     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
index 800d357..430d31a 100644 (file)
 #. 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 
+#.   <hub-user> account as <hub-user>/clearwater-<vnfc> 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 <start|stop> <hub-user> <manager>
+#.
 #. 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
index ea5dccf..a1be588 100644 (file)
@@ -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"