Commit c2406fe5 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Separa deploy de servicios maestro y esclavo

parent 3e345892
Loading
Loading
Loading
Loading
+96 −25
Original line number Diff line number Diff line
@@ -53,54 +53,103 @@ container-scanning:
  artifacts:
    paths: [gl-sast-container-report.json]

deploy-dev:
deploy-geoserver-master-dev:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-master gis_geoserver-slave
    SERVICES_TO_CHECK: gis_geoserver-master
    STATUS_CHECK_DELAY: 180
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    COMPOSE_FILE: docker-compose.geoserver-master.tmpl.yml:docker-compose.geoserver-master.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - create-nets.sh gis-net
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-master-dev
    url: https://${DEV_GEOSERVER_ADMIN_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - dev
  when: manual

deploy-geoserver-slave-dev:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-slave
    STATUS_CHECK_DELAY: 180
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.geoserver-slave.tmpl.yml:docker-compose.geoserver-slave.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_SUBDOMAIN}
    GEOSERVER_ADMIN_SUBDOMAIN: ${DEV_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} GEOSERVER_ADMIN_SUBDOMAIN=${GEOSERVER_ADMIN_SUBDOMAIN}
      PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-slave-dev
    url: https://${DEV_GEOSERVER_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - dev
  when: manual

deploy-geoserver-master-supporting-branch:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-master
    STATUS_CHECK_DELAY: 180
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.geoserver-master.tmpl.yml:docker-compose.geoserver-master.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - create-nets.sh gis-net
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: dev
    url: https://atlas.${DEV_PUBLIC_HOSTNAME}
    name: geoserver-master-dev
    url: https://${DEV_GEOSERVER_ADMIN_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - branches
  except:
    - master
    - dev
  when: manual

deploy-supporting-branch:
deploy-geoserver-slave-supporting-branch:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-master gis_geoserver-slave
    SERVICES_TO_CHECK: gis_geoserver-slave
    STATUS_CHECK_DELAY: 180
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    COMPOSE_FILE: docker-compose.geoserver-slave.tmpl.yml:docker-compose.geoserver-slave.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_SUBDOMAIN}
    GEOSERVER_ADMIN_SUBDOMAIN: ${DEV_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} GEOSERVER_ADMIN_SUBDOMAIN=${GEOSERVER_ADMIN_SUBDOMAIN}
      PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: dev
    url: https://atlas.${DEV_PUBLIC_HOSTNAME}
    name: geoserver-slave-dev
    url: https://${DEV_GEOSERVER_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - branches
  except:
@@ -108,29 +157,51 @@ deploy-supporting-branch:
    - dev
  when: manual

deploy-pro:
deploy-geoserver-master-pro:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-master gis_geoserver-slave
    SERVICES_TO_CHECK: gis_geoserver-master
    STATUS_CHECK_DELAY: 180
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml
    GEOSERVER_SUBDOMAIN: ${PRO_GEOSERVER_SUBDOMAIN}
    GEOSERVER_ADMIN_SUBDOMAIN: ${PRO_GEOSERVER_ADMIN_SUBDOMAIN}
    COMPOSE_FILE: docker-compose.geoserver-master.tmpl.yml:docker-compose.geoserver-master.prod.yml
    GEOSERVER_SUBDOMAIN: ${PRO_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME}
  script:
    - create-nets.sh gis-net
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} GEOSERVER_ADMIN_SUBDOMAIN=${GEOSERVER_ADMIN_SUBDOMAIN}
      PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-master-pro
    url: https://${PRO_GEOSERVER_ADMIN_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
  only:
    - master
  when: manual

deploy-geoserver-slave-pro:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-slave
    STATUS_CHECK_DELAY: 180
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.geoserver-slave.tmpl.yml:docker-compose.geoserver-slave.prod.yml
    GEOSERVER_SUBDOMAIN: ${PRO_GEOSERVER_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME}
  script:
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: pro
    url: https://${GEOSERVER_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
    name: geoserver-slave-pro
    url: https://${PRO_GEOSERVER_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
  only:
    - master
  when: manual
+1 −20
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ services:
      labels:
        traefik.port: "${GEOSERVER_PORT}"
        traefik.docker.network: traefik-net
        traefik.frontend.rule: "Host:${GEOSERVER_ADMIN_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.frontend.rule: "Host:${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.backend: geoserver-master
      restart_policy:
        delay: 1m
@@ -24,25 +24,6 @@ services:
        reservations:
          memory: 820M

  geoserver-slave:
    deploy:
      mode: replicated
      replicas: 1
      labels:
        traefik.port: "${GEOSERVER_PORT}"
        traefik.docker.network: traefik-net
        traefik.frontend.rule: "Host:${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.backend: geoserver-slave
      restart_policy:
        delay: 1m
        window: 3m
      resources:
        limits:
          cpus: '0.75'
          memory: 1G
        reservations:
          memory: 820M

volumes:
  geoserver-vol:
    name: geoserver-vol
+1 −23
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ services:
      labels:
        traefik.port: "${GEOSERVER_PORT}"
        traefik.docker.network: traefik-net
        traefik.frontend.rule: "Host:${GEOSERVER_ADMIN_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.frontend.rule: "Host:${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.backend: geoserver-master
      placement:
        constraints:
@@ -23,28 +23,6 @@ services:
        reservations:
          memory: 820M

  geoserver-slave:
    deploy:
      mode: replicated
      replicas: 3
      labels:
        traefik.port: "${GEOSERVER_PORT}"
        traefik.docker.network: traefik-net
        traefik.frontend.rule: "Host:${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.backend: geoserver-slave
      placement:
        constraints:
          - node.role == worker
      restart_policy:
        delay: 1m
        window: 3m
      resources:
        limits:
          cpus: '0.75'
          memory: 2G
        reservations:
          memory: 1639M

volumes:
  geoserver-vol:
    name: "geoserver-vol"
+1 −18
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ services:
      - SLAVE_MANAGEMENT_TIMEOUT
      - ROLE=master
      - SWARM_MODE=true
      - JAVA_OPTS=-DPROXY_BASE_URL=https://${GEOSERVER_ADMIN_SUBDOMAIN}.${PUBLIC_HOSTNAME}/geoserver
      - JAVA_OPTS=-DPROXY_BASE_URL=https://${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME}/geoserver
    networks:
      - gis-net
      - postgres-net
@@ -27,23 +27,6 @@ services:
      retries: 3
      start_period: 2m

  geoserver-slave:
    image: ${IMAGE_NAME}:${IMAGE_TAG:-latest}
    environment:
      - JAVA_OPTS=-DGEOSERVER_CONSOLE_DISABLED=true -DPROXY_BASE_URL=https://${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME}/geoserver
    networks:
      - gis-net
      - postgres-net
      - traefik-net
    volumes:
      - geoserver-vol:/var/geoserver/data
    healthcheck:
      test: wget --spider -S -t 3 http://localhost:${GEOSERVER_PORT}/geoserver
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 4m

networks:
  gis-net:
    external: true
+25 −0
Original line number Diff line number Diff line
version: '3.5'

services:
  geoserver-slave:
    deploy:
      mode: replicated
      replicas: 1
      labels:
        traefik.port: "${GEOSERVER_PORT}"
        traefik.docker.network: traefik-net
        traefik.frontend.rule: "Host:${GEOSERVER_SUBDOMAIN}.${PUBLIC_HOSTNAME};PathPrefix:/geoserver"
        traefik.backend: geoserver-slave
      restart_policy:
        delay: 1m
        window: 3m
      resources:
        limits:
          cpus: '0.75'
          memory: 1G
        reservations:
          memory: 820M

volumes:
  geoserver-vol:
    name: geoserver-vol
Loading