From f0ada18602605d8a0c2960ace946e067e8d3af28 Mon Sep 17 00:00:00 2001 From: Michal Nowikowski Date: Thu, 2 Jan 2020 09:42:02 +0100 Subject: [PATCH 1/2] [#32] stork deployment to stork.lab.isc.org Added support and scripts for deploying stork to stork.lab.isc.org automatically from gitlab pipelines. --- .gitlab-ci.yml | 79 +++++++++++++++++++++++++++++++++------------ docker-compose.yaml | 8 +++-- 2 files changed, 64 insertions(+), 23 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d6ed526d1..e51064e88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,41 +6,29 @@ variables: POSTGRES_USER: storktest POSTGRES_PASSWORD: storktest +# this is used to build docker images of stork (using DIND) + DOCKER_DRIVER: overlay2 + DOCKER_TLS_CERTDIR: "" # this is workaround for TLS problem https://about.gitlab.com/blog/2019/07/31/docker-in-docker-with-docker-19-dot-03/ + +# stages order stages: - build + - deploy +# cache cache: key: one-shared-key paths: - webui/node_modules/ - tools/ +# common before script before_script: - apt-get update - apt-get install -y wget xz-utils rake openjdk-11-jre-headless gcc g++ chromium-browser unzip - rake prepare_env -# race_detector: -# stage: test -# script: -# - make race - -# memory_sanitizer: -# stage: test -# script: -# - make msan - -# code_coverage: -# stage: test -# script: -# - make coverage - -# code_coverage_report: -# stage: test -# script: -# - make coverhtml -# only: -# - master +### build jobs ### lint_go: stage: build @@ -64,6 +52,23 @@ build_webui: stage: build script: - rake build_ui + artifacts: + name: "webui" + expire_in: 1 week + paths: + - webui/dist/stork/ + +build_backend: + stage: build + script: + - rake build_backend + artifacts: + name: "backend" + expire_in: 1 week + paths: + - backend/cmd/stork-agent/stork-agent + - backend/cmd/stork-server/stork-server + - backend/cmd/stork-db-migrate/stork-db-migrate danger: stage: build @@ -88,3 +93,35 @@ tarball: paths: - stork-*.tar.gz expire_in: 1 week + + +### deploy jobs ### + +deploy_demo: + stage: deploy + when: manual + image: docker:latest + tags: + - linux + - docker + - amd64 + services: + - docker:dind + dependencies: + - build_webui + - build_backend + before_script: + - ip -6 route del default + - docker info + - docker login -u "$CI_REGISTRY_USER" -p "$CI_JOB_TOKEN" "$CI_REGISTRY" + - apk update + - apk upgrade + - apk add docker-compose + - eval $(ssh-agent -s) + - echo "$SSH_PRIVATE_KEY_STORK" | base64 -d | ssh-add - + script: + - docker-compose build + - docker-compose push + - scp -o StrictHostKeyChecking=no docker-compose.yaml jenkins@stork.lab.isc.org:~/deploy + - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml down + - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml up -d --no-build diff --git a/docker-compose.yaml b/docker-compose.yaml index 04c110343..71618aa21 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,6 +6,7 @@ services: build: context: . dockerfile: docker/docker-server.txt + image: registry.gitlab.isc.org/isc-projects/stork/server:latest expose: - "8080" ports: @@ -24,7 +25,8 @@ services: build: context: . dockerfile: docker/docker-agent-kea.txt - hostname: moneypenny + image: registry.gitlab.isc.org/isc-projects/stork/agent-kea:latest + hostname: agent-kea expose: - "8080" @@ -33,7 +35,8 @@ services: build: context: . dockerfile: docker/docker-agent-bind9.txt - hostname: jamesbond + image: registry.gitlab.isc.org/isc-projects/stork/agent-bind9:latest + hostname: agent-bind9 expose: - "8080" @@ -41,6 +44,7 @@ services: build: context: . dockerfile: docker/docker-webui.txt + image: registry.gitlab.isc.org/isc-projects/stork/webui:latest ports: - "8080:80" environment: -- GitLab From 134eb766700c7b312b1151522251ef77ffdf636d Mon Sep 17 00:00:00 2001 From: Michal Nowikowski Date: Thu, 9 Jan 2020 14:33:23 +0100 Subject: [PATCH 2/2] [#32] added docker-compose pull before up to get latest containers --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e51064e88..721eda362 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -124,4 +124,5 @@ deploy_demo: - docker-compose push - scp -o StrictHostKeyChecking=no docker-compose.yaml jenkins@stork.lab.isc.org:~/deploy - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml down + - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml pull - ssh -o StrictHostKeyChecking=no jenkins@stork.lab.isc.org docker-compose -f deploy/docker-compose.yaml up -d --no-build -- GitLab