Loading .gitlab-ci.yml +34 −34 Original line number Diff line number Diff line image: docker:stable stages: - package - test-package - deploy services: - docker:dind variables: DOCKER_DRIVER: overlay2 docker-build-commit-non-master-branches: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/elasticsearch-xpack PARENT_IMAGE_TAG: latest services: - docker:dind only: - branches except: Loading @@ -25,13 +29,9 @@ docker-build-commit-non-master-branches: docker-build-commit-master-branch: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/elasticsearch-xpack PARENT_IMAGE_TAG: latest services: - docker:dind only: - master script: Loading @@ -43,11 +43,6 @@ docker-build-commit-master-branch: docker-tag-already-built-image: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - tags script: Loading @@ -57,12 +52,7 @@ docker-tag-already-built-image: container-scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches script: Loading @@ -85,19 +75,17 @@ deploy-dev: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}-1 STACK: elastic SERVICES_TO_CHECK: elastic_${CI_PROJECT_NAME}-1 IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-1.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-1.dev.yml OLD_ELASTIC_ADMIN_PASS: ${DEV_OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS: ${DEV_ELASTIC_ADMIN_PASS} ELASTIC_USER: ${DEV_ELASTIC_USER} ELASTIC_USER_PASS: ${DEV_ELASTIC_USER_PASS} ELASTIC_USER_ROLE: ${DEV_ELASTIC_USER_ROLE} services: - docker:dind script: - create-nets.sh elastic-net - > Loading @@ -114,19 +102,17 @@ deploy-supporting-branch: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}-1 STACK: elastic SERVICES_TO_CHECK: elastic_${CI_PROJECT_NAME}-1 IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-1.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-1.dev.yml OLD_ELASTIC_ADMIN_PASS: ${DEV_OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS: ${DEV_ELASTIC_ADMIN_PASS} ELASTIC_USER: ${DEV_ELASTIC_USER} ELASTIC_USER_PASS: ${DEV_ELASTIC_USER_PASS} ELASTIC_USER_ROLE: ${DEV_ELASTIC_USER_ROLE} services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} Loading @@ -145,24 +131,38 @@ deploy-pro: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 STATUS_CHECK_DELAY: '90' STATUS_CHECK_INTERVAL: '10' SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: elastic SERVICES_TO_CHECK: elastic_${CI_PROJECT_NAME}-1 elastic_${CI_PROJECT_NAME}-2 elastic_${CI_PROJECT_NAME}-3 STACK: elastic IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml OLD_ELASTIC_ADMIN_PASS: ${PRO_OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS: ${PRO_ELASTIC_ADMIN_PASS} ELASTIC_USER: ${PRO_ELASTIC_USER} ELASTIC_USER_PASS: ${PRO_ELASTIC_USER_PASS} ELASTIC_USER_ROLE: ${PRO_ELASTIC_USER_ROLE} services: - docker:dind script: - create-nets.sh elastic-net - > export SERVICES_TO_CHECK=elastic_${CI_PROJECT_NAME}-1 COMPOSE_FILE=docker-compose.${CI_PROJECT_NAME}-1.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-1.prod.yml - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} AWS_REGION=${AWS_REGION} OLD_ELASTIC_ADMIN_PASS=${OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS=${ELASTIC_ADMIN_PASS} ELASTIC_USER=${ELASTIC_USER} ELASTIC_USER_PASS=${ELASTIC_USER_PASS} ELASTIC_USER_ROLE=${ELASTIC_USER_ROLE} - > export SERVICES_TO_CHECK=elastic_${CI_PROJECT_NAME}-2 COMPOSE_FILE=docker-compose.${CI_PROJECT_NAME}-2.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-2.prod.yml - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} AWS_REGION=${AWS_REGION} OLD_ELASTIC_ADMIN_PASS=${OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS=${ELASTIC_ADMIN_PASS} ELASTIC_USER=${ELASTIC_USER} ELASTIC_USER_PASS=${ELASTIC_USER_PASS} ELASTIC_USER_ROLE=${ELASTIC_USER_ROLE} - > export SERVICES_TO_CHECK=elastic_${CI_PROJECT_NAME}-3 COMPOSE_FILE=docker-compose.${CI_PROJECT_NAME}-3.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-3.prod.yml - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} AWS_REGION=${AWS_REGION} OLD_ELASTIC_ADMIN_PASS=${OLD_ELASTIC_ADMIN_PASS} Loading .env→deploy/.env +0 −0 File moved. View file deploy/docker-compose.elasticsearch-1.dev.yml 0 → 100644 +34 −0 Original line number Diff line number Diff line version: '3.5' services: elasticsearch-1: environment: - ES_JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.policy=file:///usr/share/elasticsearch/config/grovy-classes_whitelist.policy - ES_CLUSTER_NAME=elasticsearch_dev - ES_NODE_NAME=node-1 - ES_DISCOVERY_ZEN_MINIMUM_MASTER_NODES=1 - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=elasticsearch-1 ports: - target: ${PORT1} published: ${PORT1} mode: host - target: ${PORT2} published: ${PORT2} mode: host deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 1m window: 3m resources: limits: cpus: '1' memory: 1G reservations: memory: 820M volumes: elasticsearch-vol: name: elasticsearch-vol docker-compose.prod.yml→deploy/docker-compose.elasticsearch-1.prod.yml +36 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ version: '3.5' services: elasticsearch-1: environment: - ES_JAVA_OPTS=-Xms1g -Xmx1g -Djava.security.policy=file:///usr/share/elasticsearch/config/grovy-classes_whitelist.policy - ES_CLUSTER_NAME=redmic - ES_NODE_NAME={{.Service.Name}} - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=['elasticsearch-1', 'elasticsearch-2', 'elasticsearch-3'] Loading @@ -18,64 +19,18 @@ services: condition: on-failure delay: 1m window: 3m elasticsearch-2: environment: - ES_CLUSTER_NAME=redmic - ES_NODE_NAME={{.Service.Name}} - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=['elasticsearch-1', 'elasticsearch-2', 'elasticsearch-3'] - USER_MANAGEMENT_DELAY=200 deploy: mode: replicated replicas: 1 placement: constraints: - node.role == worker - engine.labels.availability_zone == ${AWS_REGION}b restart_policy: condition: on-failure delay: 1m window: 3m elasticsearch-3: environment: - ES_CLUSTER_NAME=redmic - ES_NODE_NAME={{.Service.Name}} - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=['elasticsearch-1', 'elasticsearch-2', 'elasticsearch-3'] - USER_MANAGEMENT_DELAY=200 deploy: mode: replicated replicas: 1 placement: constraints: - node.role == worker - engine.labels.availability_zone == ${AWS_REGION}c restart_policy: condition: on-failure delay: 1m window: 3m resources: limits: cpus: '1' memory: 2G reservations: memory: 1639M volumes: elasticsearch-1-vol: elasticsearch-vol: name: "elasticsearch-1-vol" driver: "cloudstor:aws" driver_opts: backing: relocatable size: 25 ebstype: gp2 elasticsearch-2-vol: name: "elasticsearch-2-vol" driver: "cloudstor:aws" driver_opts: backing: relocatable size: 25 ebstype: gp2 elasticsearch-3-vol: name: "elasticsearch-3-vol" driver: "cloudstor:aws" driver_opts: backing: relocatable size: 25 ebstype: gp2 deploy/docker-compose.elasticsearch-1.tmpl.yml 0 → 100644 +30 −0 Original line number Diff line number Diff line version: '3.5' services: elasticsearch-1: image: ${IMAGE_NAME}:${IMAGE_TAG:-latest} networks: elastic-net: aliases: - es-1 volumes: - elasticsearch-vol:/usr/share/elasticsearch/data environment: - ES_BOOTSTRAP_MEMORY_LOCK=true - ES_PLUGINS - OLD_ELASTIC_ADMIN_PASS - ELASTIC_ADMIN_PASS - ELASTIC_USER - ELASTIC_USER_PASS - ELASTIC_USER_ROLE healthcheck: test: > status=$$(curl --write-out %{http_code} --silent --output /dev/null -u "${ELASTIC_USER}:${ELASTIC_USER_PASS}" localhost:${PORT1}/_cluster/health); [ "$${status}" -eq "200" ] || [ "$${status}" -eq "401" ] timeout: 10s retries: 3 start_period: 2m networks: elastic-net: external: true Loading
.gitlab-ci.yml +34 −34 Original line number Diff line number Diff line image: docker:stable stages: - package - test-package - deploy services: - docker:dind variables: DOCKER_DRIVER: overlay2 docker-build-commit-non-master-branches: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/elasticsearch-xpack PARENT_IMAGE_TAG: latest services: - docker:dind only: - branches except: Loading @@ -25,13 +29,9 @@ docker-build-commit-non-master-branches: docker-build-commit-master-branch: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 PARENT_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/elasticsearch-xpack PARENT_IMAGE_TAG: latest services: - docker:dind only: - master script: Loading @@ -43,11 +43,6 @@ docker-build-commit-master-branch: docker-tag-already-built-image: stage: package image: docker:stable variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - tags script: Loading @@ -57,12 +52,7 @@ docker-tag-already-built-image: container-scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches script: Loading @@ -85,19 +75,17 @@ deploy-dev: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}-1 STACK: elastic SERVICES_TO_CHECK: elastic_${CI_PROJECT_NAME}-1 IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-1.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-1.dev.yml OLD_ELASTIC_ADMIN_PASS: ${DEV_OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS: ${DEV_ELASTIC_ADMIN_PASS} ELASTIC_USER: ${DEV_ELASTIC_USER} ELASTIC_USER_PASS: ${DEV_ELASTIC_USER_PASS} ELASTIC_USER_ROLE: ${DEV_ELASTIC_USER_ROLE} services: - docker:dind script: - create-nets.sh elastic-net - > Loading @@ -114,19 +102,17 @@ deploy-supporting-branch: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME}-1 STACK: elastic SERVICES_TO_CHECK: elastic_${CI_PROJECT_NAME}-1 IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml COMPOSE_FILE: docker-compose.${CI_PROJECT_NAME}-1.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-1.dev.yml OLD_ELASTIC_ADMIN_PASS: ${DEV_OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS: ${DEV_ELASTIC_ADMIN_PASS} ELASTIC_USER: ${DEV_ELASTIC_USER} ELASTIC_USER_PASS: ${DEV_ELASTIC_USER_PASS} ELASTIC_USER_ROLE: ${DEV_ELASTIC_USER_ROLE} services: - docker:dind script: - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} Loading @@ -145,24 +131,38 @@ deploy-pro: stage: deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy:latest variables: DOCKER_DRIVER: overlay2 STATUS_CHECK_DELAY: '90' STATUS_CHECK_INTERVAL: '10' SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: elastic SERVICES_TO_CHECK: elastic_${CI_PROJECT_NAME}-1 elastic_${CI_PROJECT_NAME}-2 elastic_${CI_PROJECT_NAME}-3 STACK: elastic IMAGE_NAME: ${CI_REGISTRY_IMAGE} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml OLD_ELASTIC_ADMIN_PASS: ${PRO_OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS: ${PRO_ELASTIC_ADMIN_PASS} ELASTIC_USER: ${PRO_ELASTIC_USER} ELASTIC_USER_PASS: ${PRO_ELASTIC_USER_PASS} ELASTIC_USER_ROLE: ${PRO_ELASTIC_USER_ROLE} services: - docker:dind script: - create-nets.sh elastic-net - > export SERVICES_TO_CHECK=elastic_${CI_PROJECT_NAME}-1 COMPOSE_FILE=docker-compose.${CI_PROJECT_NAME}-1.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-1.prod.yml - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} AWS_REGION=${AWS_REGION} OLD_ELASTIC_ADMIN_PASS=${OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS=${ELASTIC_ADMIN_PASS} ELASTIC_USER=${ELASTIC_USER} ELASTIC_USER_PASS=${ELASTIC_USER_PASS} ELASTIC_USER_ROLE=${ELASTIC_USER_ROLE} - > export SERVICES_TO_CHECK=elastic_${CI_PROJECT_NAME}-2 COMPOSE_FILE=docker-compose.${CI_PROJECT_NAME}-2.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-2.prod.yml - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} AWS_REGION=${AWS_REGION} OLD_ELASTIC_ADMIN_PASS=${OLD_ELASTIC_ADMIN_PASS} ELASTIC_ADMIN_PASS=${ELASTIC_ADMIN_PASS} ELASTIC_USER=${ELASTIC_USER} ELASTIC_USER_PASS=${ELASTIC_USER_PASS} ELASTIC_USER_ROLE=${ELASTIC_USER_ROLE} - > export SERVICES_TO_CHECK=elastic_${CI_PROJECT_NAME}-3 COMPOSE_FILE=docker-compose.${CI_PROJECT_NAME}-3.tmpl.yml:docker-compose.${CI_PROJECT_NAME}-3.prod.yml - > deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE} AWS_REGION=${AWS_REGION} OLD_ELASTIC_ADMIN_PASS=${OLD_ELASTIC_ADMIN_PASS} Loading
deploy/docker-compose.elasticsearch-1.dev.yml 0 → 100644 +34 −0 Original line number Diff line number Diff line version: '3.5' services: elasticsearch-1: environment: - ES_JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.policy=file:///usr/share/elasticsearch/config/grovy-classes_whitelist.policy - ES_CLUSTER_NAME=elasticsearch_dev - ES_NODE_NAME=node-1 - ES_DISCOVERY_ZEN_MINIMUM_MASTER_NODES=1 - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=elasticsearch-1 ports: - target: ${PORT1} published: ${PORT1} mode: host - target: ${PORT2} published: ${PORT2} mode: host deploy: mode: replicated replicas: 1 restart_policy: condition: on-failure delay: 1m window: 3m resources: limits: cpus: '1' memory: 1G reservations: memory: 820M volumes: elasticsearch-vol: name: elasticsearch-vol
docker-compose.prod.yml→deploy/docker-compose.elasticsearch-1.prod.yml +36 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ version: '3.5' services: elasticsearch-1: environment: - ES_JAVA_OPTS=-Xms1g -Xmx1g -Djava.security.policy=file:///usr/share/elasticsearch/config/grovy-classes_whitelist.policy - ES_CLUSTER_NAME=redmic - ES_NODE_NAME={{.Service.Name}} - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=['elasticsearch-1', 'elasticsearch-2', 'elasticsearch-3'] Loading @@ -18,64 +19,18 @@ services: condition: on-failure delay: 1m window: 3m elasticsearch-2: environment: - ES_CLUSTER_NAME=redmic - ES_NODE_NAME={{.Service.Name}} - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=['elasticsearch-1', 'elasticsearch-2', 'elasticsearch-3'] - USER_MANAGEMENT_DELAY=200 deploy: mode: replicated replicas: 1 placement: constraints: - node.role == worker - engine.labels.availability_zone == ${AWS_REGION}b restart_policy: condition: on-failure delay: 1m window: 3m elasticsearch-3: environment: - ES_CLUSTER_NAME=redmic - ES_NODE_NAME={{.Service.Name}} - ES_DISCOVERY_ZEN_PING_UNICAST_HOSTS=['elasticsearch-1', 'elasticsearch-2', 'elasticsearch-3'] - USER_MANAGEMENT_DELAY=200 deploy: mode: replicated replicas: 1 placement: constraints: - node.role == worker - engine.labels.availability_zone == ${AWS_REGION}c restart_policy: condition: on-failure delay: 1m window: 3m resources: limits: cpus: '1' memory: 2G reservations: memory: 1639M volumes: elasticsearch-1-vol: elasticsearch-vol: name: "elasticsearch-1-vol" driver: "cloudstor:aws" driver_opts: backing: relocatable size: 25 ebstype: gp2 elasticsearch-2-vol: name: "elasticsearch-2-vol" driver: "cloudstor:aws" driver_opts: backing: relocatable size: 25 ebstype: gp2 elasticsearch-3-vol: name: "elasticsearch-3-vol" driver: "cloudstor:aws" driver_opts: backing: relocatable size: 25 ebstype: gp2
deploy/docker-compose.elasticsearch-1.tmpl.yml 0 → 100644 +30 −0 Original line number Diff line number Diff line version: '3.5' services: elasticsearch-1: image: ${IMAGE_NAME}:${IMAGE_TAG:-latest} networks: elastic-net: aliases: - es-1 volumes: - elasticsearch-vol:/usr/share/elasticsearch/data environment: - ES_BOOTSTRAP_MEMORY_LOCK=true - ES_PLUGINS - OLD_ELASTIC_ADMIN_PASS - ELASTIC_ADMIN_PASS - ELASTIC_USER - ELASTIC_USER_PASS - ELASTIC_USER_ROLE healthcheck: test: > status=$$(curl --write-out %{http_code} --silent --output /dev/null -u "${ELASTIC_USER}:${ELASTIC_USER_PASS}" localhost:${PORT1}/_cluster/health); [ "$${status}" -eq "200" ] || [ "$${status}" -eq "401" ] timeout: 10s retries: 3 start_period: 2m networks: elastic-net: external: true