From ef119d950565477c22ac8444568ce1fb70d6b770 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Tue, 16 Apr 2019 23:40:31 -0700 Subject: [PATCH 1/9] Support Env vars and CMD in Pods --- src/services/kubelet-service.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/services/kubelet-service.js b/src/services/kubelet-service.js index 65a4cd13c..d55154947 100644 --- a/src/services/kubelet-service.js +++ b/src/services/kubelet-service.js @@ -90,6 +90,13 @@ const kubeletCreatePod = async function (createPodData, fogNodeUuid, user, trans ports: ms.ports || [], routes: ms.routes || [], } + if (ms.env && ms.env.length > 0) { + microserviceData.env = ms.env + } + if (ms.cmd && ms.cmd.length > 0) { + microserviceData.cmd = ms.cmd + } + microservice = await MicroservicesService.createMicroserviceEndPoint(microserviceData, user, false, transaction) microservicesIds.push(microservice.uuid) } @@ -123,7 +130,7 @@ const kubeletUpdatePod = async function (uploadPodData, fogNodeUuid, user, trans msDup.map((ms) => { const name = `${flowData.name}-${ms.name}` - return { + const microserviceData = { name: name, config: ms.config, catalogItemId: ms['catalog-item-id'], @@ -134,6 +141,14 @@ const kubeletUpdatePod = async function (uploadPodData, fogNodeUuid, user, trans ports: ms.ports || [], routes: ms.routes || [], } + if (ms.env && ms.env.length > 0) { + microserviceData.env = ms.env + } + if (ms.cmd && ms.cmd.length > 0) { + microserviceData.cmd = ms.cmd + } + + return microserviceData }) } From 3ea858a7829a756632a505cf51c510208d957318 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Mon, 22 Apr 2019 23:22:09 -0700 Subject: [PATCH 2/9] Dockerfiles --- .travis.yml | 15 +++++++++++++++ Dockerfile.dev | 13 +++++++++++++ Dockerfile.rel | 11 +++++++++++ 3 files changed, 39 insertions(+) create mode 100644 Dockerfile.dev create mode 100644 Dockerfile.rel diff --git a/.travis.yml b/.travis.yml index b127b8313..eab84eb41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,9 @@ notifications: on_failure: always template: - "Build <%{build_url}|#%{build_number}> (<%{compare_url}|%{commit}>) of %{repository_slug}@%{branch} in PR <%{pull_request_url}|#%{pull_request_number}> by %{author} %{result} in %{duration}" +env: + global: + - COMMIT=${TRAVIS_COMMIT::8} stages: - name: test if: branch =~ /^release-.*$/ OR branch IN (develop, master) @@ -46,10 +49,17 @@ jobs: $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/iofogcontroller - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + - docker build -t edgeworx/controller-dev:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev + - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + - docker push edgeworx/controller-dev:latest + - docker tag edgeworx/controller-dev:latest edgeworx/controller-dev:$COMMIT + - docker push edgeworx/controller-dev:$COMMIT - stage: pre_release_deploy before_install: - sudo apt-get install sshpass script: skip + before_deploy: + - npm pack #- npm version prerelease --preid=prerelease -m "upgrade to %s for prerelease package" deploy: skip_cleanup: true @@ -62,6 +72,11 @@ jobs: after_deploy: - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP "iofog-controller stop; npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" + - docker build -t edgeworx/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev + - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + - docker push edgeworx/controller:latest + - docker tag edgeworx/controller:latest edgeworx/controller:$COMMIT + - docker push edgeworx/controller:$COMMIT - stage: release_deploy before_install: - sudo apt-get install sshpass diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 000000000..dde6db245 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,13 @@ +FROM node:alpine + +ARG FILENAME +ENV NODE_ENV=development + +COPY ${FILENAME} /tmp + +RUN npm i --unsafe-perm -g /tmp/${FILENAME} && \ + rm /tmp/${FILENAME} && \ + iofog-controller config dev-mode --on && \ + echo "iofog-controller start && tail -f /dev/null" >> /start.sh + +CMD [ "sh", "/start.sh" ] \ No newline at end of file diff --git a/Dockerfile.rel b/Dockerfile.rel new file mode 100644 index 000000000..9b99a1fd5 --- /dev/null +++ b/Dockerfile.rel @@ -0,0 +1,11 @@ +FROM node:alpine + +ARG FILENAME + +COPY ${FILENAME} /tmp + +RUN npm i --unsafe-perm -g /tmp/${FILENAME} && \ + rm /tmp/${FILENAME} && \ + echo "iofog-controller start && tail -f /dev/null" >> /start.sh + +CMD [ "sh", "/start.sh" ] \ No newline at end of file From f24fbcec94b1b9080b0fee2268a3a65c7ce359bc Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 20:21:26 -0700 Subject: [PATCH 3/9] Add JRC and Attinad dev deployments --- .travis.yml | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index eab84eb41..09af25050 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,17 +43,36 @@ jobs: on: branch: develop after_deploy: - - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller/*" - - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz - $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/iofogcontroller - - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" - - docker build -t edgeworx/controller-dev:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev - - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push edgeworx/controller-dev:latest - - docker tag edgeworx/controller-dev:latest edgeworx/controller-dev:$COMMIT - - docker push edgeworx/controller-dev:$COMMIT + - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP + "iofog-controller stop; rm -f /iofogcontroller/*" + - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz + $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/iofogcontroller + - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP + "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + + - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP + "iofog-controller stop; rm -f /iofogcontroller/*" + - sshpass -p $JRC_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz + $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP:/iofogcontroller + - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP + "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP + "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" + + - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP + "iofog-controller stop; rm -f /iofogcontroller/*" + - sshpass -p $ATTINAD_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz + $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP:/iofogcontroller + - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP + "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP + "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" + + - docker build -t iofog/controller-develop:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev + - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin + - docker push iofog/controller-develop:latest + - docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT + - docker push iofog/controller-develop:$COMMIT - stage: pre_release_deploy before_install: - sudo apt-get install sshpass From 96aa520614ac62537a836e42cfa794bde7540be5 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 21:49:44 -0700 Subject: [PATCH 4/9] Update docker base image --- .travis.yml | 56 ++++++++++++++++++++++++++++---------------------- Dockerfile.dev | 2 +- Dockerfile.rel | 2 +- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 09af25050..dc46994b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,36 +43,38 @@ jobs: on: branch: develop after_deploy: + - export FILENAME=$(ls iofogcontroller-*.tgz) + - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller/*" - - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz - $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/iofogcontroller + "iofog-controller stop; rm -f /iofogcontroller*" + - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME + $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/$FILENAME || travis_terminate 1; - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" || travis_terminate 1; - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller/*" - - sshpass -p $JRC_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz - $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP:/iofogcontroller + "iofog-controller stop; rm -f /iofogcontroller*" + - sshpass -p $JRC_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME + $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP:/$FILENAME || travis_terminate 1; - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP - "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" || travis_terminate 1; - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP - "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" + "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" || travis_terminate 1; - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller/*" - - sshpass -p $ATTINAD_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no iofogcontroller-*.tgz - $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP:/iofogcontroller + "iofog-controller stop; rm -f /iofogcontroller*" + - sshpass -p $ATTINAD_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME + $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP:/$FILENAME || travis_terminate 1; - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP - "npm i --unsafe-perm -g /iofogcontroller/iofogcontroller-*.tgz; iofog-controller start" + "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" || travis_terminate 1; - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP - "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" + "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" || travis_terminate 1; - - docker build -t iofog/controller-develop:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev + - docker build -t iofog/controller-develop:latest --build-arg FILENAME=$FILENAME . -f Dockerfile.dev || travis_terminate 1; - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push iofog/controller-develop:latest - - docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT - - docker push iofog/controller-develop:$COMMIT + - docker push iofog/controller-develop:latest || travis_terminate 1; + - docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT || travis_terminate 1; + - docker push iofog/controller-develop:$COMMIT || travis_terminate 1; - stage: pre_release_deploy before_install: - sudo apt-get install sshpass @@ -90,12 +92,14 @@ jobs: all_branches: true after_deploy: - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP - "iofog-controller stop; npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" - - docker build -t edgeworx/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev + "iofog-controller stop" + - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP + "npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" || travis_terminate 1; + - docker build -t edgeworx/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev || travis_terminate 1; - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push edgeworx/controller:latest - - docker tag edgeworx/controller:latest edgeworx/controller:$COMMIT - - docker push edgeworx/controller:$COMMIT + - docker push edgeworx/controller:latest || travis_terminate 1; + - docker tag edgeworx/controller:latest edgeworx/controller:$COMMIT || travis_terminate 1; + - docker push edgeworx/controller:$COMMIT || travis_terminate 1; - stage: release_deploy before_install: - sudo apt-get install sshpass @@ -110,5 +114,7 @@ jobs: on: branch: master after_deploy: - - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP - "iofog-controller stop; npm update --unsafe-perm -g iofogcontroller; iofog-controller start" + - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP + "iofog-controller stop" + - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP + "npm update --unsafe-perm -g iofogcontroller; iofog-controller start" || travis_terminate 1; diff --git a/Dockerfile.dev b/Dockerfile.dev index dde6db245..7ca90a17d 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:alpine +FROM iofog/node:alpine ARG FILENAME ENV NODE_ENV=development diff --git a/Dockerfile.rel b/Dockerfile.rel index 9b99a1fd5..29a102d97 100644 --- a/Dockerfile.rel +++ b/Dockerfile.rel @@ -1,4 +1,4 @@ -FROM node:alpine +FROM iofog/node:alpine ARG FILENAME From a4c46e9e616a74c7539488e71839fc5b654e3fda Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 21:57:22 -0700 Subject: [PATCH 5/9] fix image tags --- .travis.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 620e103d1..a3dc8b595 100644 --- a/.travis.yml +++ b/.travis.yml @@ -93,11 +93,12 @@ jobs: "iofog-controller stop" - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP "npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" || travis_terminate 1; + - export VERSION=`npm view iofogcontroller version` - docker build -t edgeworx/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev || travis_terminate 1; - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push edgeworx/controller:latest || travis_terminate 1; - - docker tag edgeworx/controller:latest edgeworx/controller:$COMMIT || travis_terminate 1; - - docker push edgeworx/controller:$COMMIT || travis_terminate 1; + - docker push iofog/controller:rc || travis_terminate 1; + - docker tag iofog/controller:rc iofog/controller:rc-$VERSION || travis_terminate 1; + - docker push iofog/controller:rc-$VERSION || travis_terminate 1; - stage: release_deploy before_install: - sudo apt-get install sshpass From f38b70ddc4e6f00eeeab4aa4d365463cd81bcaad Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 21:59:42 -0700 Subject: [PATCH 6/9] one more --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a3dc8b595..13bce613f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -94,7 +94,7 @@ jobs: - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP "npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" || travis_terminate 1; - export VERSION=`npm view iofogcontroller version` - - docker build -t edgeworx/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.dev || travis_terminate 1; + - docker build -t iofog/controller:rc --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel || travis_terminate 1; - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - docker push iofog/controller:rc || travis_terminate 1; - docker tag iofog/controller:rc iofog/controller:rc-$VERSION || travis_terminate 1; From 9f27705def2f910cb0b08c3e96cc88718e357b23 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 22:13:36 -0700 Subject: [PATCH 7/9] Change script to mutiline --- .travis.yml | 101 +++++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 52 deletions(-) diff --git a/.travis.yml b/.travis.yml index 13bce613f..50075c160 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,38 +42,35 @@ jobs: on: branch: develop after_deploy: - - export FILENAME=$(ls iofogcontroller-*.tgz) - - - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller*" - - sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME - $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/$FILENAME || travis_terminate 1; - - sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP - "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" || travis_terminate 1; - - - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller*" - - sshpass -p $JRC_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME - $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP:/$FILENAME || travis_terminate 1; - - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP - "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" || travis_terminate 1; - - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP - "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" || travis_terminate 1; - - - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP - "iofog-controller stop; rm -f /iofogcontroller*" - - sshpass -p $ATTINAD_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME - $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP:/$FILENAME || travis_terminate 1; - - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP - "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" || travis_terminate 1; - - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP - "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" || travis_terminate 1; - - - docker build -t iofog/controller-develop:latest --build-arg FILENAME=$FILENAME . -f Dockerfile.dev || travis_terminate 1; - - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push iofog/controller-develop:latest || travis_terminate 1; - - docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT || travis_terminate 1; - - docker push iofog/controller-develop:$COMMIT || travis_terminate 1; + - | + export FILENAME=`ls iofogcontroller-*.tgz` && + sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP \ + "iofog-controller stop; rm -f /iofogcontroller*" && + sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME \ + $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/$FILENAME && + sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP \ + "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" && + sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ + "iofog-controller stop; rm -f /iofogcontroller*" && + sshpass -p $JRC_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME \ + $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP:/$FILENAME && + sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ + "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" && + sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ + "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" && + sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ + "iofog-controller stop; rm -f /iofogcontroller*" && + sshpass -p $ATTINAD_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME \ + $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP:/$FILENAME && + sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ + "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" && + sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ + "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" && + docker build -t iofog/controller-develop:latest --build-arg FILENAME=$FILENAME . -f Dockerfile.dev && + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && + docker push iofog/controller-develop:latest && + docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT && + docker push iofog/controller-develop:$COMMIT - stage: pre_release_deploy before_install: - sudo apt-get install sshpass @@ -89,16 +86,16 @@ jobs: on: all_branches: true after_deploy: - - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP - "iofog-controller stop" - - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP - "npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" || travis_terminate 1; - - export VERSION=`npm view iofogcontroller version` - - docker build -t iofog/controller:rc --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel || travis_terminate 1; - - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push iofog/controller:rc || travis_terminate 1; - - docker tag iofog/controller:rc iofog/controller:rc-$VERSION || travis_terminate 1; - - docker push iofog/controller:rc-$VERSION || travis_terminate 1; + - | + sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP "iofog-controller stop" && + sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP \ + "npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" && + export VERSION=`npm view iofogcontroller version` && + docker build -t iofog/controller:rc --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel && + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && + docker push iofog/controller:rc && + docker tag iofog/controller:rc iofog/controller:rc-$VERSION && + docker push iofog/controller:rc-$VERSION - stage: release_deploy before_install: - sudo apt-get install sshpass @@ -114,13 +111,13 @@ jobs: on: branch: master after_deploy: - - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP - "iofog-controller stop" - - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP - "npm update --unsafe-perm -g iofogcontroller; iofog-controller start" || travis_terminate 1; - - export VERSION=`npm view iofogcontroller version` - - docker build -t iofog/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel - - echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin - - docker push iofog/controller:latest - - docker tag iofog/controller:latest iofog/controller:$VERSION - - docker push iofog/controller:$VERSION + - | + sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP "iofog-controller stop" && + sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP \ + "npm update --unsafe-perm -g iofogcontroller; iofog-controller start" && + export VERSION=`npm view iofogcontroller version` && + docker build -t iofog/controller:latest --build-arg FILENAME=$(ls iofogcontroller-*.tgz) . -f Dockerfile.rel && + echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && + docker push iofog/controller:latest && + docker tag iofog/controller:latest iofog/controller:$VERSION && + docker push iofog/controller:$VERSION From 4c36ca65cfb5261dc84d28cd5859ee5cf8f51e93 Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 22:47:06 -0700 Subject: [PATCH 8/9] Continue build if controller is not installed --- .travis.yml | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 50075c160..533b722cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,34 +43,40 @@ jobs: branch: develop after_deploy: - | - export FILENAME=`ls iofogcontroller-*.tgz` && sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP \ - "iofog-controller stop; rm -f /iofogcontroller*" && + "iofog-controller stop; rm -R /iofogcontroller*" && + sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ + "iofog-controller stop; rm -R /iofogcontroller*" && + sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ + "iofog-controller stop; rm -R /iofogcontroller*" + + - | + export FILENAME=`ls iofogcontroller-*.tgz` && sshpass -p $DEV_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME \ $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP:/$FILENAME && sshpass -p $DEV_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $DEV_MACHINE_USERNAME@$DEV_MACHINE_IP \ "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" && - sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ - "iofog-controller stop; rm -f /iofogcontroller*" && sshpass -p $JRC_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME \ $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP:/$FILENAME && sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" && sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ - "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" && - sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ - "iofog-controller stop; rm -f /iofogcontroller*" && + "iofog-controller user add -f John -l Doe -e user@domain.com -p ${JRC_MACHINE_PASSWORD}" && + sshpass -p $JRC_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $JRC_MACHINE_USERNAME@$JRC_MACHINE_IP \ + "iofog-controller connector add -n connector -d localhost -i 127.0.0.1 -H" && sshpass -p $ATTINAD_MACHINE_PASSWORD scp -o StrictHostKeyChecking=no $FILENAME \ $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP:/$FILENAME && sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ "npm i --unsafe-perm -g /${FILENAME}; iofog-controller start" && sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ - "iofog-controller start; iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" && + "iofog-controller user add -f John -l Doe -e user@domain.com -p ${ATTINAD_MACHINE_PASSWORD}" && + sshpass -p $ATTINAD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $ATTINAD_MACHINE_USERNAME@$ATTINAD_MACHINE_IP \ + "iofog-controller connector add -n connector -d localhost -i 127.0.0.1 -H" && docker build -t iofog/controller-develop:latest --build-arg FILENAME=$FILENAME . -f Dockerfile.dev && echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && docker push iofog/controller-develop:latest && docker tag iofog/controller-develop:latest iofog/controller-develop:$COMMIT && - docker push iofog/controller-develop:$COMMIT + docker push iofog/controller-develop:$COMMIT || travis_terminate 1 - stage: pre_release_deploy before_install: - sudo apt-get install sshpass @@ -86,8 +92,8 @@ jobs: on: all_branches: true after_deploy: + - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP "iofog-controller stop" - | - sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP "iofog-controller stop" && sshpass -p $PREPROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PREPROD_MACHINE_USERNAME@$PREPROD_MACHINE_IP \ "npm i --unsafe-perm -g iofogcontroller@dev; iofog-controller start" && export VERSION=`npm view iofogcontroller version` && From e8f53675428715fa857cc7a7a64bfacacba0c4fb Mon Sep 17 00:00:00 2001 From: baghbidi Date: Thu, 25 Apr 2019 22:50:28 -0700 Subject: [PATCH 9/9] Fail is script failed --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 533b722cd..8b55ab4f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -101,7 +101,7 @@ jobs: echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && docker push iofog/controller:rc && docker tag iofog/controller:rc iofog/controller:rc-$VERSION && - docker push iofog/controller:rc-$VERSION + docker push iofog/controller:rc-$VERSION || travis_terminate 1 - stage: release_deploy before_install: - sudo apt-get install sshpass @@ -117,8 +117,8 @@ jobs: on: branch: master after_deploy: + - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP "iofog-controller stop" - | - sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP "iofog-controller stop" && sshpass -p $PROD_MACHINE_PASSWORD ssh -o StrictHostKeyChecking=no $PROD_MACHINE_USERNAME@$PROD_MACHINE_IP \ "npm update --unsafe-perm -g iofogcontroller; iofog-controller start" && export VERSION=`npm view iofogcontroller version` && @@ -126,4 +126,4 @@ jobs: echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin && docker push iofog/controller:latest && docker tag iofog/controller:latest iofog/controller:$VERSION && - docker push iofog/controller:$VERSION + docker push iofog/controller:$VERSION || travis_terminate 1