workflow: rules: - if: $CI_PIPELINE_SOURCE == "push" when: never - when: always variables: GIT_CLEAN_FLAGS: -ffdx ENV: value: "dev" options: - "dev" description: 'environment' HOST: value: "$APN2_HOST" options: - "$APN1_HOST" - "$APN2_HOST" - "$DBN1_HOST" - "$DBN2_HOST" description: 'host to deploy' POSTGRESQL_HOSTNAME_NAME: value: "" description: 'hostname for postgresql/container_name' POSTGRES_PORT: value: "" description: 'external port for postgresql_container' PROXY_NETWORK: value: "proxy" description: 'network port for postgresql_container' POSTGRES_DB: value: "" description: 'default DB postgresql instance' POSTGRES_USER: value: "" description: 'default USER postgresql instance' POSTGRES_PASSWORD: value: "" description: 'PASSWD for default USER postgresql instance' include: - project: 'sed/devops/services/gitlab-flow/ci-flow' ref: v1.0.1 file: 'deploy_docker-compose-context.yml' .set_docker_context_vars: &set-docker-context-vars - | case "$HOST" in "$APN1_HOST") export CA_FILE="$APN1_HOST_CA_FILE" export CERT_FILE="$APN1_HOST_CERT_FILE" export KEY_FILE="$APN1_HOST_KEY_FILE" ;; "$APN2_HOST") export CA_FILE="$APN2_HOST_CA_FILE" export CERT_FILE="$APN2_HOST_CERT_FILE" export KEY_FILE="$APN2_HOST_KEY_FILE" ;; "$DBN1_HOST") export CA_FILE="$DBN1_HOST_CA_FILE" export CERT_FILE="$DBN1_HOST_CERT_FILE" export KEY_FILE="$DBN1_HOST_KEY_FILE" ;; "$DBN2_HOST") export CA_FILE="$DBN2_HOST_CA_FILE" export CERT_FILE="$DBN2_HOST_CERT_FILE" export KEY_FILE="$DBN2_HOST_KEY_FILE" ;; *) echo "Unknown HOST: $HOST" exit 1 ;; esac .docker_login_stdin_base64: &docker-login-stdin-base64 - echo $REGISTRY_PASSWORD | base64 -d | docker login -u $REGISTRY_USER $REGISTRY --password-stdin .docker_context_create: &docker-context-create - docker context create ${CI_PROJECT_NAME}-${ENV} --docker "host=tcp://${HOST},ca=${CA_FILE},cert=${CERT_FILE},key=${KEY_FILE}" .create_docker_volumes: &create-docker-volumes - | DOCKER_CONTEXT=${CI_PROJECT_NAME}-${ENV} docker run --rm \ -v ${DOCKER_DATA}/${POSTGRESQL_HOSTNAME_NAME}/data:/var/lib/pgpro/ent-16/data \ -v ${DOCKER_DATA}/${POSTGRESQL_HOSTNAME_NAME}/backups:/backups \ --user root \ sed-docker.artifacts.tn.tngrp.ru/ubi7:v7.3.6 \ sh -c "chown -R 26:26 /var/lib/pgpro/ent-16/data /backups" .docker_context_rm: &docker-context-rm - docker context rm ${CI_PROJECT_NAME}-${ENV} --force deploy_compose: extends: .deploy_from_registry environment: name: ${ENV} variables: DOCKER_HOST: "" REGISTRY: $SED_DOCKER_REGISTRY REGISTRY_USER: $SED_NEXUS_USER REGISTRY_PASSWORD: $SED_NEXUS_PASS_BASE64 COMPOSE_FILES: -f ./docker-compose.yml before_script: - *set-docker-context-vars - *docker-login-stdin-base64 - *docker-context-create - *create-docker-volumes - *docker-context-rm tags: - mmedo