From c7044db8004b247a1579c0140a4e82c237f0610f Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 31 Aug 2022 22:47:22 +0300 Subject: [PATCH] swarmpit --- .deploy-gitlab/deploy-prod.yml | 0 {.deploy => .deploy-infra}/deploy-dev.yaml | 3 + {.deploy => .deploy-infra}/deploy-prod.yaml | 3 + .deploy-swarmpit/deploy-dev.yml | 84 +++++++++++++++++++++ .deploy-swarmpit/deploy-prod.yml | 84 +++++++++++++++++++++ .gitlab-ci.yml | 9 ++- nginx/nginx-dev/nginx-dev.conf | 2 +- nginx/nginx-prod/nginx-prod.conf | 2 +- 8 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 .deploy-gitlab/deploy-prod.yml rename {.deploy => .deploy-infra}/deploy-dev.yaml (97%) rename {.deploy => .deploy-infra}/deploy-prod.yaml (97%) create mode 100644 .deploy-swarmpit/deploy-dev.yml create mode 100644 .deploy-swarmpit/deploy-prod.yml diff --git a/.deploy-gitlab/deploy-prod.yml b/.deploy-gitlab/deploy-prod.yml new file mode 100644 index 0000000..e69de29 diff --git a/.deploy/deploy-dev.yaml b/.deploy-infra/deploy-dev.yaml similarity index 97% rename from .deploy/deploy-dev.yaml rename to .deploy-infra/deploy-dev.yaml index a95f28f..23a2c6c 100644 --- a/.deploy/deploy-dev.yaml +++ b/.deploy-infra/deploy-dev.yaml @@ -9,6 +9,7 @@ services: networks: - battleship-nginx - sprint-nginx + - swarmpit-nginx deploy: mode: replicated replicas: 1 @@ -113,4 +114,6 @@ networks: battleship-nginx: external: true sprint-nginx: + external: true + swarmpit-nginx: external: true \ No newline at end of file diff --git a/.deploy/deploy-prod.yaml b/.deploy-infra/deploy-prod.yaml similarity index 97% rename from .deploy/deploy-prod.yaml rename to .deploy-infra/deploy-prod.yaml index b7d5ef3..38d93a1 100644 --- a/.deploy/deploy-prod.yaml +++ b/.deploy-infra/deploy-prod.yaml @@ -9,6 +9,7 @@ services: networks: - battleship-nginx - sprint-nginx + - swarmpit-nginx deploy: mode: replicated replicas: 2 @@ -113,4 +114,6 @@ networks: battleship-nginx: external: true sprint-nginx: + external: true + swarmpit-nginx: external: true \ No newline at end of file diff --git a/.deploy-swarmpit/deploy-dev.yml b/.deploy-swarmpit/deploy-dev.yml new file mode 100644 index 0000000..864efaa --- /dev/null +++ b/.deploy-swarmpit/deploy-dev.yml @@ -0,0 +1,84 @@ +version: '3.3' + +services: + app: + image: swarmpit/swarmpit:latest + environment: + - SWARMPIT_DB=http://db:5984 + - SWARMPIT_INFLUXDB=http://influxdb:8086 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 888:8080 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080"] + interval: 60s + timeout: 10s + retries: 3 + networks: + - net + - swarmpit-nginx + deploy: + resources: + limits: + memory: 1024M + reservations: + memory: 512M + placement: + constraints: + - node.role == manager + db: + image: treehouses/couchdb:2.3.1 + volumes: + - db-data:/opt/couchdb/data + networks: + - net + deploy: + resources: + limits: + memory: 256M + reservations: + memory: 128M + + influxdb: + image: influxdb:1.7 + volumes: + - influx-data:/var/lib/influxdb + networks: + - net + deploy: + resources: + limits: + memory: 256M + reservations: + memory: 128M + + agent: + image: swarmpit/agent:latest + environment: + - DOCKER_API_VERSION=1.35 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - net + deploy: + mode: global + labels: + swarmpit.agent: 'true' + resources: + limits: + memory: 64M + reservations: + memory: 32M + +networks: + net: + driver: overlay + swarmpit-nginx: + external: true + +volumes: + db-data: + driver: local + influx-data: + driver: local diff --git a/.deploy-swarmpit/deploy-prod.yml b/.deploy-swarmpit/deploy-prod.yml new file mode 100644 index 0000000..864efaa --- /dev/null +++ b/.deploy-swarmpit/deploy-prod.yml @@ -0,0 +1,84 @@ +version: '3.3' + +services: + app: + image: swarmpit/swarmpit:latest + environment: + - SWARMPIT_DB=http://db:5984 + - SWARMPIT_INFLUXDB=http://influxdb:8086 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 888:8080 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080"] + interval: 60s + timeout: 10s + retries: 3 + networks: + - net + - swarmpit-nginx + deploy: + resources: + limits: + memory: 1024M + reservations: + memory: 512M + placement: + constraints: + - node.role == manager + db: + image: treehouses/couchdb:2.3.1 + volumes: + - db-data:/opt/couchdb/data + networks: + - net + deploy: + resources: + limits: + memory: 256M + reservations: + memory: 128M + + influxdb: + image: influxdb:1.7 + volumes: + - influx-data:/var/lib/influxdb + networks: + - net + deploy: + resources: + limits: + memory: 256M + reservations: + memory: 128M + + agent: + image: swarmpit/agent:latest + environment: + - DOCKER_API_VERSION=1.35 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - net + deploy: + mode: global + labels: + swarmpit.agent: 'true' + resources: + limits: + memory: 64M + reservations: + memory: 32M + +networks: + net: + driver: overlay + swarmpit-nginx: + external: true + +volumes: + db-data: + driver: local + influx-data: + driver: local diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7015db0..35a30e7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,13 +6,14 @@ stages: .deploy: before_script: - docker login -u mathwave -p $DOCKERHUB_PASSWORD + - docker network create -d overlay --attachable swarmpit-nginx || true build: stage: build - extends: - - .deploy tags: - dev + before_script: + - docker login -u mathwave -p $DOCKERHUB_PASSWORD script: - docker build -t mathwave/sprint-repo:sprint-infra-nginx-dev nginx/nginx-dev - docker push mathwave/sprint-repo:sprint-infra-nginx-dev @@ -30,7 +31,8 @@ deploy-dev: when: on_success - when: manual script: - - docker stack deploy -c ./.deploy/deploy-dev.yaml infra + - docker stack deploy -c ./.deploy-swarmpit/deploy-dev.yaml swarmpit + - docker stack deploy -c ./.deploy-infra/deploy-dev.yaml infra deploy-prod: stage: deploy-prod @@ -42,4 +44,5 @@ deploy-prod: - master when: manual script: + - docker stack deploy -c ./.deploy-swarmpit/deploy-prod.yaml swarmpit - docker stack deploy -c ./.deploy/deploy-prod.yaml infra \ No newline at end of file diff --git a/nginx/nginx-dev/nginx-dev.conf b/nginx/nginx-dev/nginx-dev.conf index 7d9d20d..d996e71 100644 --- a/nginx/nginx-dev/nginx-dev.conf +++ b/nginx/nginx-dev/nginx-dev.conf @@ -8,7 +8,7 @@ http { server_name swarmpit.develop.sprinthub.ru; location / { - proxy_pass http://dev.develop.sprinthub.ru:888/; + proxy_pass http://app:8080/; } } diff --git a/nginx/nginx-prod/nginx-prod.conf b/nginx/nginx-prod/nginx-prod.conf index 20edfce..93de7e4 100644 --- a/nginx/nginx-prod/nginx-prod.conf +++ b/nginx/nginx-prod/nginx-prod.conf @@ -17,7 +17,7 @@ http { server_name swarmpit.sprinthub.ru; location / { - proxy_pass http://dev.sprinthub.ru:888/; + proxy_pass http://app:8080/; } }