From ebf7405c738e7be76ed64cd10938b1a9ac331645 Mon Sep 17 00:00:00 2001 From: ChenjieXu Date: Thu, 2 Apr 2020 16:05:55 +0800 Subject: [PATCH] Add scripts for building Openness docker images 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 | 38 ++++++++++++++ tools/openness/eaa/BUILD-EAA-IMAGE.patch | 59 ++++++++++++++++++++++ tools/openness/eaa/build_image.sh | 34 +++++++++++++ .../sample-app/BUILD-SAMPLE-APP-IMAGE.patch | 7 +++ tools/openness/edgeapps/sample-app/build-images.sh | 32 ++++++++++++ 5 files changed, 170 insertions(+) create mode 100755 tools/openness/_common.sh create mode 100644 tools/openness/eaa/BUILD-EAA-IMAGE.patch create mode 100755 tools/openness/eaa/build_image.sh create mode 100644 tools/openness/edgeapps/sample-app/BUILD-SAMPLE-APP-IMAGE.patch create mode 100755 tools/openness/edgeapps/sample-app/build-images.sh diff --git a/tools/openness/_common.sh b/tools/openness/_common.sh new file mode 100755 index 0000000..9c9af31 --- /dev/null +++ b/tools/openness/_common.sh @@ -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 index 0000000..05afb7a --- /dev/null +++ b/tools/openness/eaa/BUILD-EAA-IMAGE.patch @@ -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 index 0000000..439fe8a --- /dev/null +++ b/tools/openness/eaa/build_image.sh @@ -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 index 0000000..4e0875e --- /dev/null +++ b/tools/openness/edgeapps/sample-app/BUILD-SAMPLE-APP-IMAGE.patch @@ -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 index 0000000..59c233d --- /dev/null +++ b/tools/openness/edgeapps/sample-app/build-images.sh @@ -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 -- 2.16.6