summaryrefslogtreecommitdiffstats
path: root/juju/k8s
diff options
context:
space:
mode:
authorAakashKT <aakash.kt@research.iiit.ac.in>2017-08-02 23:44:30 +0530
committerAakashKT <aakash.kt@research.iiit.ac.in>2017-08-03 00:10:39 +0530
commit611b9de869f9ac9ca9ab055882687f0d9a8b800c (patch)
treedab12639df69e9025e621b4e7697b16451e2cdc5 /juju/k8s
parent18fbcca4ee8ac3add1352a29b4a8c6620e98a912 (diff)
Scripts for deploying clearwater on kubernetes-cluster (with loadbalancer)
Change-Id: I3baca4c8ed73c8154ee2627fc62d81cb694c0726 Signed-off-by: Aakash KT <aakash.kt@research.iiit.ac.in>
Diffstat (limited to 'juju/k8s')
-rw-r--r--juju/k8s/clearwater/deploy_clearwater_k8s.sh73
-rw-r--r--juju/k8s/clearwater/set_depl_files.py62
2 files changed, 135 insertions, 0 deletions
diff --git a/juju/k8s/clearwater/deploy_clearwater_k8s.sh b/juju/k8s/clearwater/deploy_clearwater_k8s.sh
new file mode 100644
index 00000000..695f5083
--- /dev/null
+++ b/juju/k8s/clearwater/deploy_clearwater_k8s.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# Copyright 2017 Aakash KT <aakashkt0@gmail.com> <aakash.kt@research.iiit.ac.in>
+
+# 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.
+
+
+
+function setup_docker() {
+ echo "Installing docker..."
+ sudo apt-get install -y docker.io
+
+ sudo docker login --username="aakashkt" --password="joid123"
+}
+
+function setup_clearwater() {
+ echo "Preparing docker images..."
+
+ git clone --recursive https://github.com/Metaswitch/clearwater-docker.git
+ pushd clearwater-docker
+
+ for i in base astaire cassandra chronos bono ellis homer homestead ralf sprout
+ do
+ sudo docker build -t clearwater/$i $i
+ done
+
+ for i in base astaire cassandra chronos bono ellis homer homestead ralf sprout
+ do
+ sudo docker tag clearwater/$i:latest $1/$i:latest
+ sudo docker push $1/$i:latest
+ done
+
+ popd
+}
+
+function setup_k8s() {
+ echo "Preparing the k8s cluster..."
+ python set_depl_files.py $1 $2
+}
+
+function deploy() {
+ juju run --application kubeapi-load-balancer 'open-port 5060'
+
+ juju run --application kubernetes-master 'open-port 30080'
+ juju run --application kubernetes-worker 'open-port 30080'
+
+ sudo kubectl create -f clearwater-docker/kubernetes
+ echo "Done"
+}
+
+cp set_depl_files.py /tmp/
+pushd /tmp/
+
+juju run --application kubeapi-load-balancer 'unit-get public-address'
+load_balancer_ip=$?
+docker_repo="aakashkt"
+
+setup_docker
+setup_clearwater $docker_repo
+setup_k8s $docker_repo $load_balancer_ip
+deploy
+
+popd \ No newline at end of file
diff --git a/juju/k8s/clearwater/set_depl_files.py b/juju/k8s/clearwater/set_depl_files.py
new file mode 100644
index 00000000..784ad5e3
--- /dev/null
+++ b/juju/k8s/clearwater/set_depl_files.py
@@ -0,0 +1,62 @@
+'''
+Copyright 2017 Aakash KT <aakashkt0@gmail.com> <aakash.kt@research.iiit.ac.in>
+
+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.
+'''
+
+import yaml
+import sys
+import os
+
+files = ["astaire", "bono", "cassandra", "chronos", "ellis", "etcd", "homer", "homestead",
+ "ralf", "sprout"];
+
+try:
+ repo = sys.argv[1];
+ load_balancer_ip = sys.argv[2];
+except:
+ print "Usage : python set_depl_files.py <repository_name> <load_balancer_ip>";
+ sys.exit(0);
+
+for f in files:
+
+ fp = file("clearwater-docker/kubernetes/%s-depl.yaml"%f, "r+");
+ yaml_fp = yaml.load(fp);
+
+ yaml_fp["spec"]["template"]["spec"]["containers"][0]["image"] = "%s/%s:latest" % (repo, f);
+
+ fp.truncate(0);
+ fp.seek(0, 0);
+ fp.write(yaml.dump(yaml_fp));
+ fp.close();
+
+fp = file("clearwater-docker/kubernetes/bono-depl.yaml", "r+");
+bono_fp = yaml.load(fp);
+bono_depl_env = bono_fp["spec"]["template"]["spec"]["containers"][0]["env"];
+
+for item in bono_depl_env:
+ if item["name"] == "PUBLIC_IP":
+ item["value"] = load_balancer_ip;
+
+fp.truncate(0);
+fp.seek(0, 0);
+fp.write(yaml.dump(bono_fp));
+fp.close();
+
+fp = file("clearwater-docker/kubernetes/bono-svc.yaml", "r+");
+bono_fp = yaml.load(fp);
+bono_fp["spec"]["loadBalancerIP"] = load_balancer_ip;
+fp.truncate(0);
+fp.seek(0, 0);
+fp.write(yaml.dump(bono_fp));
+fp.close(); \ No newline at end of file