Add scripts for building Openness docker images 16/3316/3
authorChenjieXu <chenjie.xu@intel.com>
Thu, 2 Apr 2020 08:05:55 +0000 (16:05 +0800)
committerKuralamudhan Ramakrishnan <kuralamudhan.ramakrishnan@intel.com>
Tue, 12 May 2020 23:09:51 +0000 (23:09 +0000)
Add the scripts for building docker images for Openness EAA and
sample-app (producer and consumer). The producer and consumer
are used to verify the functionality of EAA.

Change-Id: I68bc23534f30971e9b9c1a7b8937bd744b97d336

tools/openness/_common.sh [new file with mode: 0755]
tools/openness/eaa/BUILD-EAA-IMAGE.patch [new file with mode: 0644]
tools/openness/eaa/build_image.sh [new file with mode: 0755]
tools/openness/edgeapps/sample-app/BUILD-SAMPLE-APP-IMAGE.patch [new file with mode: 0644]
tools/openness/edgeapps/sample-app/build-images.sh [new file with mode: 0755]

diff --git a/tools/openness/_common.sh b/tools/openness/_common.sh
new file mode 100755 (executable)
index 0000000..9c9af31
--- /dev/null
@@ -0,0 +1,38 @@
+# _install_go() - Install GoLang package
+function _install_go {
+    local tarball=go1.12.5.linux-amd64.tar.gz
+
+    #gcc is required for go apps compilation
+    if ! which gcc; then
+        sudo apt-get install -y gcc
+    fi
+
+    if $(go version &>/dev/null); then
+        return
+    fi
+
+    wget https://dl.google.com/go/$tarball
+    sudo tar -C /usr/local -xzf $tarball
+    rm $tarball
+
+    export PATH=$PATH:/usr/local/go/bin
+    sudo sed -i "s|^PATH=.*|PATH=\"$PATH\"|" /etc/environment
+}
+
+# _install_docker() - Download and install docker-engine
+function _install_docker {
+    sudo apt-get install -y apt-transport-https ca-certificates curl
+    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+    sudo apt-get update
+    sudo apt-get install -y docker-ce
+
+    sudo mkdir -p /etc/systemd/system/docker.service.d
+    sudo systemctl daemon-reload
+    if [[ -z $(groups | grep docker) ]]; then
+        sudo usermod -aG docker $USER
+    fi
+
+    sudo systemctl restart docker
+    sleep 10
+}
diff --git a/tools/openness/eaa/BUILD-EAA-IMAGE.patch b/tools/openness/eaa/BUILD-EAA-IMAGE.patch
new file mode 100644 (file)
index 0000000..05afb7a
--- /dev/null
@@ -0,0 +1,59 @@
+diff -Naur edgenode-openness-19.12.01/build/eaa/configs/appliance.json icn-edgenode/build/eaa/configs/appliance.json
+--- edgenode-openness-19.12.01/build/eaa/configs/appliance.json        1970-01-01 08:00:00.000000000 +0800
++++ icn-edgenode/build/eaa/configs/appliance.json      2020-04-02 14:43:22.291040126 +0800
+@@ -0,0 +1,17 @@
++{
++    "LogLevel": "info",
++    "UseSyslog": false,
++    "SyslogAddr": "",
++    "Enrollment": {
++        "Endpoint": "",
++        "CertsDirectory": "certs",
++        "ConnectionTimeout": "2s"
++    },
++    "Services": {
++        "github.com/open-ness/edgenode/pkg/eaa": "configs/eaa.json",
++        "github.com/open-ness/edgenode/pkg/ela": "configs/ela.json",
++        "github.com/open-ness/edgenode/pkg/eda": "configs/eda.json",
++        "github.com/open-ness/edgenode/pkg/eva": "configs/eva.json",
++        "github.com/open-ness/edgenode/pkg/interfaceservice": "configs/interfaceservice.json"
++    }
++}
+diff -Naur edgenode-openness-19.12.01/build/eaa/configs/eaa.json icn-edgenode/build/eaa/configs/eaa.json
+--- edgenode-openness-19.12.01/build/eaa/configs/eaa.json      1970-01-01 08:00:00.000000000 +0800
++++ icn-edgenode/build/eaa/configs/eaa.json    2020-04-02 14:43:22.291040126 +0800
+@@ -0,0 +1,13 @@
++{
++  "TlsEndpoint": ":443",
++  "OpenEndpoint": ":80",
++  "ValidationEndpoint": "",
++  "HeartbeatInterval": "60s",
++  "Certs": {
++    "CaRootKeyPath": "certs/eaa/rootCA.key",
++    "CaRootPath": "certs/eaa/rootCA.pem",
++    "ServerCertPath": "certs/eaa/server.pem",
++    "ServerKeyPath": "certs/eaa/server.key",
++    "CommonName": "eaa.openness"
++  }
++}
+diff -Naur edgenode-openness-19.12.01/build/eaa/configs/interfaceservice.json icn-edgenode/build/eaa/configs/interfaceservice.json
+--- edgenode-openness-19.12.01/build/eaa/configs/interfaceservice.json 1970-01-01 08:00:00.000000000 +0800
++++ icn-edgenode/build/eaa/configs/interfaceservice.json       2020-04-02 14:43:22.291040126 +0800
+@@ -0,0 +1,5 @@
++{
++    "Endpoint": ":42101",
++    "HeartbeatInterval": "60s",
++    "CertsDirectory": "certs"
++}
+diff -Naur edgenode-openness-19.12.01/build/eaa/Dockerfile icn-edgenode/build/eaa/Dockerfile
+--- edgenode-openness-19.12.01/build/eaa/Dockerfile    2019-12-21 01:28:24.000000000 +0800
++++ icn-edgenode/build/eaa/Dockerfile  2020-04-02 14:43:40.395040468 +0800
+@@ -19,6 +19,8 @@
+ USER $username
+ WORKDIR $user_dir
+
++RUN mkdir configs
++ADD ./configs ./configs/
+ COPY ./eaa ./
+ COPY ./entrypoint_eaa.sh ./
+
diff --git a/tools/openness/eaa/build_image.sh b/tools/openness/eaa/build_image.sh
new file mode 100755 (executable)
index 0000000..439fe8a
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+set -ex
+
+source ../_common.sh
+
+# install_deps() - Install dependencies required for build eaa image
+function install_deps {
+    if ! $(go version &>/dev/null); then
+        _install_go
+    fi
+
+    if ! $(docker version &>/dev/null); then
+        _install_docker
+    fi
+
+    if ! $(patch -v &>/dev/null); then
+        apt-get update && apt-get install patch
+    fi
+}
+
+install_deps
+mkdir -p /tmp/openness
+cp ./BUILD-EAA-IMAGE.patch /tmp/openness/
+cd /tmp/openness
+wget https://github.com/open-ness/edgenode/archive/openness-19.12.01.tar.gz
+tar xvf openness-19.12.01.tar.gz
+cd edgenode-openness-19.12.01
+patch -p1 < ../BUILD-EAA-IMAGE.patch
+GOOS=linux go build -o "./build/eaa/eaa" ./cmd/eaa
+cd build/eaa
+docker build -t integratedcloudnative/eaa:1.0 .
+cd /tmp
+rm -rf /tmp/openness
diff --git a/tools/openness/edgeapps/sample-app/BUILD-SAMPLE-APP-IMAGE.patch b/tools/openness/edgeapps/sample-app/BUILD-SAMPLE-APP-IMAGE.patch
new file mode 100644 (file)
index 0000000..4e0875e
--- /dev/null
@@ -0,0 +1,7 @@
+diff -Naur edgeapps-openness-19.12.01_1/sample-app/go.mod icn-edgeapps/sample-app/go.mod
+--- edgeapps-openness-19.12.01_1/sample-app/go.mod     1970-01-01 08:00:00.000000000 +0800
++++ icn-edgeapps/sample-app/go.mod     2020-04-09 17:09:15.382653161 +0800
+@@ -0,0 +1,3 @@
++module github.com/open-ness/edgeapps/sample-app
++
++go 1.12
diff --git a/tools/openness/edgeapps/sample-app/build-images.sh b/tools/openness/edgeapps/sample-app/build-images.sh
new file mode 100755 (executable)
index 0000000..59c233d
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+
+set -ex
+
+source ../../_common.sh
+
+# install_deps() - Install dependencies required for build eaa image
+function install_deps {
+    if ! $(go version &>/dev/null); then
+        _install_go
+    fi
+
+    if ! $(docker version &>/dev/null); then
+        _install_docker
+    fi
+}
+
+install_deps
+mkdir -p /tmp/openness
+cp ./BUILD-SAMPLE-APP-IMAGE.patch /tmp/openness/
+cd /tmp/openness
+wget https://github.com/open-ness/edgeapps/archive/openness-19.12.01_1.tar.gz
+tar xvf openness-19.12.01_1.tar.gz
+cd edgeapps-openness-19.12.01_1
+patch -p1 < ../BUILD-SAMPLE-APP-IMAGE.patch
+cd sample-app
+make
+make build-docker
+docker tag consumer:1.0 integratedcloudnative/consumer:1.0
+docker tag producer:1.0 integratedcloudnative/producer:1.0
+cd /tmp
+rm -rf /tmp/openness