Loading .gitlab-ci.yml +17 −96 Original line number Diff line number Diff line include: - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment.yml' stages: - deploy - maintenance image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 STACK: ${CI_PROJECT_NAME} SERVICES_TO_CHECK: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME} STATUS_CHECK_DELAY: 10 services: - docker:dind deploy-supporting-branch-develop: stage: deploy variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml CERT_NAME: ${DEV_CERT_NAME} DOMAIN_LIST: ${DEV_DOMAIN_LIST} EMAIL_LIST: ${DEV_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: dev only: - branches except: - master - schedules when: manual DD_IMAGE_NAME: docker DD_IMAGE_TAG: latest STACK: gateway deploy-stable-branch-develop: stage: deploy .deploy: variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml CERT_NAME: ${DEV_CERT_NAME} DOMAIN_LIST: ${DEV_DOMAIN_LIST} EMAIL_LIST: ${DEV_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: dev only: - master except: - schedules when: manual SERVICES_TO_CHECK: ${STACK}_${CI_PROJECT_NAME} deploy-supporting-branch-production: stage: deploy variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml CERT_NAME: ${PRO_CERT_NAME} DOMAIN_LIST: ${PRO_DOMAIN_LIST} EMAIL_LIST: ${PRO_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: pro only: - branches except: - master - schedules when: manual deploy-stable-branch-production: stage: deploy .scheduled-renew: stage: maintenance variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml CERT_NAME: ${PRO_CERT_NAME} DOMAIN_LIST: ${PRO_DOMAIN_LIST} EMAIL_LIST: ${PRO_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: pro SERVICE: ${STACK}_${CI_PROJECT_NAME} script: relaunch.sh only: - master except: - schedules when: manual scheduled-renew-develop: stage: maintenance scheduled-renew-development: extends: .scheduled-renew variables: SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME} script: relaunch.sh only: - schedules scheduled-renew-production: stage: maintenance extends: .scheduled-renew variables: SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME} script: relaunch.sh only: - schedules deploy/.env +1 −1 Original line number Diff line number Diff line SERVER_SERVICE=nginx-proxy_nginx-proxy SERVER_SERVICE=gateway_nginx-proxy-https CERTBOT_CONFIG_VOL_NAME=certbot-config-vol CERTBOT_WORK_VOL_NAME=certbot-work-vol CERTBOT_LOGS_VOL_NAME=certbot-logs-vol Loading deploy/docker-compose.prod.yml +0 −7 Original line number Diff line number Diff line version: '3.5' services: certificates-manager: deploy: placement: constraints: - node.role == manager deploy/docker-compose.tmpl.yml +23 −19 Original line number Diff line number Diff line Loading @@ -2,23 +2,23 @@ version: '3.5' services: certificates-manager: image: docker:latest image: ${IMAGE_NAME:-docker}:${IMAGE_TAG:-latest} command: manage-certificates environment: - CERT_NAME - DOMAIN_LIST - EMAIL_LIST - SERVER_SERVICE - CERTBOT_CONFIG_VOL_NAME - CERTBOT_WORK_VOL_NAME - CERTBOT_LOGS_VOL_NAME - ACME_VOL_NAME - PUSHGATEWAY_HOST CERT_NAME: DOMAIN_LIST: EMAIL_LIST: SERVER_SERVICE: CERTBOT_CONFIG_VOL_NAME: CERTBOT_WORK_VOL_NAME: CERTBOT_LOGS_VOL_NAME: ACME_VOL_NAME: PUSHGATEWAY_HOST: networks: - metric-net metric-net: volumes: - config-vol:/certs - lib-vol:/var/lib/docker - docker-vol:/var/lib/docker - /var/run/docker.sock:/var/run/docker.sock configs: - source: manage-certificates Loading @@ -27,14 +27,18 @@ services: deploy: mode: replicated replicas: 1 placement: constraints: - node.role == manager restart_policy: condition: none resources: limits: cpus: '0.5' memory: 64M cpus: '${RESOURCES_LIMITS_CPUS:-0.5}' memory: ${RESOURCES_LIMITS_MEMORY:-64M} reservations: memory: 16M cpus: '${RESOURCES_RESERVATIONS_CPUS:-0.001}' memory: ${RESOURCES_RESERVATIONS_MEMORY:-16M} networks: metric-net: Loading @@ -45,16 +49,16 @@ volumes: config-vol: name: ${CERTBOT_CONFIG_VOL_NAME} docker-vol: name: ${DOCKER_VOL_NAME:-certificates-manager-docker-vol} work-vol: name: ${CERTBOT_WORK_VOL_NAME} logs-vol: name: ${CERTBOT_LOGS_VOL_NAME} lib-vol: name: ${CERTIFICATES_MANAGER_LIB_VOL_NAME:-certificates-manager-lib-vol} configs: manage-certificates: name: ${MANAGE_CERTIFICATES_NAME:-manage-certificates} name: ${MANAGE_CERTIFICATES_NAME:-certificates-manager-script} file: ./scripts/manage-certificates.sh Loading
.gitlab-ci.yml +17 −96 Original line number Diff line number Diff line include: - project: 'redmic-project/gitlab-ci-templates' ref: master file: '/deployment.yml' stages: - deploy - maintenance image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 STACK: ${CI_PROJECT_NAME} SERVICES_TO_CHECK: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME} STATUS_CHECK_DELAY: 10 services: - docker:dind deploy-supporting-branch-develop: stage: deploy variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml CERT_NAME: ${DEV_CERT_NAME} DOMAIN_LIST: ${DEV_DOMAIN_LIST} EMAIL_LIST: ${DEV_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: dev only: - branches except: - master - schedules when: manual DD_IMAGE_NAME: docker DD_IMAGE_TAG: latest STACK: gateway deploy-stable-branch-develop: stage: deploy .deploy: variables: SSH_REMOTE: ${DEV_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml CERT_NAME: ${DEV_CERT_NAME} DOMAIN_LIST: ${DEV_DOMAIN_LIST} EMAIL_LIST: ${DEV_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: dev only: - master except: - schedules when: manual SERVICES_TO_CHECK: ${STACK}_${CI_PROJECT_NAME} deploy-supporting-branch-production: stage: deploy variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml CERT_NAME: ${PRO_CERT_NAME} DOMAIN_LIST: ${PRO_DOMAIN_LIST} EMAIL_LIST: ${PRO_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: pro only: - branches except: - master - schedules when: manual deploy-stable-branch-production: stage: deploy .scheduled-renew: stage: maintenance variables: SSH_REMOTE: ${PRO_SSH_REMOTE} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml CERT_NAME: ${PRO_CERT_NAME} DOMAIN_LIST: ${PRO_DOMAIN_LIST} EMAIL_LIST: ${PRO_EMAIL_LIST} script: - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} CERT_NAME=${CERT_NAME} DOMAIN_LIST=${DOMAIN_LIST} EMAIL_LIST=${EMAIL_LIST} environment: name: pro SERVICE: ${STACK}_${CI_PROJECT_NAME} script: relaunch.sh only: - master except: - schedules when: manual scheduled-renew-develop: stage: maintenance scheduled-renew-development: extends: .scheduled-renew variables: SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME} script: relaunch.sh only: - schedules scheduled-renew-production: stage: maintenance extends: .scheduled-renew variables: SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}_${CI_PROJECT_NAME} script: relaunch.sh only: - schedules
deploy/.env +1 −1 Original line number Diff line number Diff line SERVER_SERVICE=nginx-proxy_nginx-proxy SERVER_SERVICE=gateway_nginx-proxy-https CERTBOT_CONFIG_VOL_NAME=certbot-config-vol CERTBOT_WORK_VOL_NAME=certbot-work-vol CERTBOT_LOGS_VOL_NAME=certbot-logs-vol Loading
deploy/docker-compose.prod.yml +0 −7 Original line number Diff line number Diff line version: '3.5' services: certificates-manager: deploy: placement: constraints: - node.role == manager
deploy/docker-compose.tmpl.yml +23 −19 Original line number Diff line number Diff line Loading @@ -2,23 +2,23 @@ version: '3.5' services: certificates-manager: image: docker:latest image: ${IMAGE_NAME:-docker}:${IMAGE_TAG:-latest} command: manage-certificates environment: - CERT_NAME - DOMAIN_LIST - EMAIL_LIST - SERVER_SERVICE - CERTBOT_CONFIG_VOL_NAME - CERTBOT_WORK_VOL_NAME - CERTBOT_LOGS_VOL_NAME - ACME_VOL_NAME - PUSHGATEWAY_HOST CERT_NAME: DOMAIN_LIST: EMAIL_LIST: SERVER_SERVICE: CERTBOT_CONFIG_VOL_NAME: CERTBOT_WORK_VOL_NAME: CERTBOT_LOGS_VOL_NAME: ACME_VOL_NAME: PUSHGATEWAY_HOST: networks: - metric-net metric-net: volumes: - config-vol:/certs - lib-vol:/var/lib/docker - docker-vol:/var/lib/docker - /var/run/docker.sock:/var/run/docker.sock configs: - source: manage-certificates Loading @@ -27,14 +27,18 @@ services: deploy: mode: replicated replicas: 1 placement: constraints: - node.role == manager restart_policy: condition: none resources: limits: cpus: '0.5' memory: 64M cpus: '${RESOURCES_LIMITS_CPUS:-0.5}' memory: ${RESOURCES_LIMITS_MEMORY:-64M} reservations: memory: 16M cpus: '${RESOURCES_RESERVATIONS_CPUS:-0.001}' memory: ${RESOURCES_RESERVATIONS_MEMORY:-16M} networks: metric-net: Loading @@ -45,16 +49,16 @@ volumes: config-vol: name: ${CERTBOT_CONFIG_VOL_NAME} docker-vol: name: ${DOCKER_VOL_NAME:-certificates-manager-docker-vol} work-vol: name: ${CERTBOT_WORK_VOL_NAME} logs-vol: name: ${CERTBOT_LOGS_VOL_NAME} lib-vol: name: ${CERTIFICATES_MANAGER_LIB_VOL_NAME:-certificates-manager-lib-vol} configs: manage-certificates: name: ${MANAGE_CERTIFICATES_NAME:-manage-certificates} name: ${MANAGE_CERTIFICATES_NAME:-certificates-manager-script} file: ./scripts/manage-certificates.sh