summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorBryan Sullivan <bryan.sullivan@att.com>2017-12-14 21:41:31 -0800
committerBryan Sullivan <bryan.sullivan@att.com>2017-12-14 21:41:31 -0800
commit0245b4b25908eab4f29c3436fab9a7cf6ca59527 (patch)
tree88da81d68655e98fcab7085f3eb1b6245fa51707 /build
parentd3853d65639a5f5de59e5d529e0230174bbe878a (diff)
Containerize kafka server
JIRA: VES-2 Change-Id: Idc2db4b99de7d2757a7907f3170e58ae9a38f8b5 Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
Diffstat (limited to 'build')
-rw-r--r--build/ves-agent.sh15
-rw-r--r--build/ves-collector.sh6
-rw-r--r--build/ves-kafka.sh51
-rw-r--r--build/ves-kafka/Dockerfile44
-rw-r--r--build/ves-kafka/start.sh32
5 files changed, 142 insertions, 6 deletions
diff --git a/build/ves-agent.sh b/build/ves-agent.sh
index b3d3616..87d4b07 100644
--- a/build/ves-agent.sh
+++ b/build/ves-agent.sh
@@ -15,10 +15,15 @@
#
#. What this is: Build script for the VES Agent docker image on Ubuntu.
#.
+#. Prerequisites:
+#. Docker hub user logged in e.g. via "sudo docker login"
+#.
#. Usage:
#. bash ves-agent.sh <hub-user> <hub-pass>
#. hub-user: username for dockerhub
-#. hub-pass: password for dockerhub
+#.
+#. NOTE: To allow patch testing, this script will not reclone the VES repo
+#. if it exists under /tmp
#.
#. Status: this is a work in progress, under test.
@@ -28,13 +33,15 @@ sudo apt-get update
echo; echo "$0 $(date): Starting VES agent build process"
if [[ -d /tmp/ves ]]; then rm -rf /tmp/ves; fi
-echo; echo "$0 $(date): Cloning VES repo to /tmp/ves"
-git clone https://gerrit.opnfv.org/gerrit/ves /tmp/ves
+echo; echo "$0 $(date): Starting VES kafka build process"
+if [[ ! -d /tmp/ves ]]; then
+ echo; echo "$0 $(date): Cloning VES repo to /tmp/ves"
+ git clone https://gerrit.opnfv.org/gerrit/ves /tmp/ves
+fi
echo; echo "$0 $(date): Building the image"
cd /tmp/ves/build/ves-agent
sudo docker build -t ves-agent .
-sudo docker login -u $1 -p $2
echo; echo "$0 $(date): Tagging the image"
id=$(sudo docker images | grep ves-agent | awk '{print $3}')
diff --git a/build/ves-collector.sh b/build/ves-collector.sh
index 4b33f24..58aa354 100644
--- a/build/ves-collector.sh
+++ b/build/ves-collector.sh
@@ -19,9 +19,11 @@
#. Docker hub user logged in e.g. via "sudo docker login"
#.
#. Usage:
-#. bash ves-collector.sh <hub-user> <hub-pass>
+#. bash ves-collector.sh <hub-user>
#. hub-user: username for dockerhub
-#. hub-pass: password for dockerhub
+#.
+#. NOTE: To allow patch testing, this script will not reclone the VES repo
+#. if it exists under /tmp
#.
#. Status: this is a work in progress, under test.
diff --git a/build/ves-kafka.sh b/build/ves-kafka.sh
new file mode 100644
index 0000000..19a632b
--- /dev/null
+++ b/build/ves-kafka.sh
@@ -0,0 +1,51 @@
+#!/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 a kafka server as used by OPNFV VES.
+#.
+#. Prerequisites:
+#. Docker hub user logged in e.g. via "sudo docker login"
+#.
+#. Usage:
+#. bash ves-kafka.sh <hub-user> <hub-pass>
+#. hub-user: username for dockerhub
+#.
+#. NOTE: To allow patch testing, this script will not reclone the VES repo
+#. if it exists under /tmp
+#.
+#. Status: this is a work in progress, under test.
+
+wd=$(pwd)
+echo; echo "$0 $(date): Update package repos"
+sudo apt-get update
+
+echo; echo "$0 $(date): Starting VES kafka build process"
+if [[ ! -d /tmp/ves ]]; then
+ echo; echo "$0 $(date): Cloning VES repo to /tmp/ves"
+ git clone https://gerrit.opnfv.org/gerrit/ves /tmp/ves
+fi
+
+echo; echo "$0 $(date): Building the image"
+cd /tmp/ves/build/ves-kafka
+sudo docker build -t ves-kafka .
+
+echo; echo "$0 $(date): Tagging the image"
+id=$(sudo docker images | grep ves-kafka | awk '{print $3}')
+id=$(echo $id | cut -d ' ' -f 1)
+sudo docker tag $id $1/ves-kafka:latest
+
+echo; echo "$0 $(date): Pushing the image to dockerhub as $1/ves-kafka"
+sudo docker push $1/ves-kafka
+cd $wd
diff --git a/build/ves-kafka/Dockerfile b/build/ves-kafka/Dockerfile
new file mode 100644
index 0000000..c2acc8a
--- /dev/null
+++ b/build/ves-kafka/Dockerfile
@@ -0,0 +1,44 @@
+# 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: A Dockerfile for building a kafka server for use by the OPFNV
+# VES framework.
+#
+# Status: this is a work in progress, under test.
+#
+
+FROM ubuntu:xenial
+
+MAINTAINER Bryan Sullivan
+
+RUN apt-get update
+RUN apt-get install -y apt-utils
+RUN apt-get upgrade -y
+RUN apt-get update
+# Required for kafka
+RUN apt-get install -y default-jre
+RUN apt-get install -y python-pip
+RUN pip install kafka-python
+RUN apt-get install -y wget
+
+RUN mkdir /opt/ves
+
+RUN cd /opt/ves; \
+wget http://www-eu.apache.org/dist/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz; \
+tar -xvzf kafka_2.11-0.11.0.2.tgz; \
+sed -i -- 's/#delete.topic.enable=true/delete.topic.enable=true/' \
+ kafka_2.11-0.11.0.2/config/server.properties
+
+COPY start.sh /opt/ves/start.sh
+ENTRYPOINT ["/bin/bash", "/opt/ves/start.sh"]
diff --git a/build/ves-kafka/start.sh b/build/ves-kafka/start.sh
new file mode 100644
index 0000000..ab4169b
--- /dev/null
+++ b/build/ves-kafka/start.sh
@@ -0,0 +1,32 @@
+#!/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: Startup script for a kafka server as used by the OPNFV VES
+#. framework.
+
+echo "$zookeeper $zookeeper_host" >>/etc/hosts
+cat /etc/hosts
+cd /opt/ves
+
+sed -i "s/localhost:2181/$zookeeper_host:2181/" \
+ kafka_2.11-0.11.0.2/config/server.properties
+grep 2181 kafka_2.11-0.11.0.2/config/server.properties
+sed -i "s~#advertised.listeners=PLAINTEXT://your.host.name:9092~advertised.listeners=PLAINTEXT://$kafka_hostname:9092~" \
+ kafka_2.11-0.11.0.2/config/server.properties
+grep advertised.listeners kafka_2.11-0.11.0.2/config/server.properties
+
+kafka_2.11-0.11.0.2/bin/kafka-server-start.sh \
+ kafka_2.11-0.11.0.2/config/server.properties
+