Skip to content

.gitlab-ci.yml

Deployer des images docker

include:
  - project: 'homeserve/udp/templates'
    file:
      - '/.deployer.yml'
    ref: 'master'

stages:
  - 🚀deploy

# deployer votre application 
deploy_staging:
  extends: .deploy
  stage: 🚀deploy


# deployer votre application et restaurer les states (databases et buckets ) sauvegardés
deploy_restore_staging:
  extends: .restore
  stage: 🚀deploy

# effectuer un backup des states existants pour la branche 
deploy_restore_staging:
  extends: .restore
  stage: 🚀deploy

# supprimer le deploiement et les images liés à la branche
stop_delete_env_app:
  extends: .stop
  stage: 🚀deploy

Deployer des builds

include:
  - project: 'homeserve/udp/templates'
    file:
      - '/.deployer.yml'
    ref: 'master'

stages:
  - 🚀deploy

# deployer votre application
# envoie du build dans le bucket et configurer l'ingress
deploy_staging:
  extends: .deploy_link_front
  stage: 🚀deploy

Template

variables:
  NAMESPACE_K8S: default

.config: &env_conf
  image: registry.gitlab.com/devops_homeserve/deployer:v1.13.8
  variables:
    DOCKER_DRIVER: "overlay2"
    DOCKER_TLS_CERTDIR: ""
    SOURCE_PATH: "build/*"
    TARGET_PATH: "/"
    OFFSET: ""
    TERRAFORM_TEMPLATE_BRANCH: v1.5.9
    CHART_TEMPLATE_BRANCH: v1.6.7
  after_script:
    - DYNAMIC_ENVIRONMENT_URL=http://$(cat deploy.url)
    - echo "DYNAMIC_ENVIRONMENT_URL=$DYNAMIC_ENVIRONMENT_URL" >> deploy.env
  environment:
    name: $CI_COMMIT_REF_SLUG
    url: $DYNAMIC_ENVIRONMENT_URL
    on_stop: stop_delete_env_app
    kubernetes:
      namespace: $NAMESPACE_K8S
  artifacts:
    name: deployer.artifact
    paths:
      - .states
      - .Terraform
      - .Chart
    reports:
      dotenv: deploy.env
    when: always
  services:
    - docker:dind

.deploy:
  stage: deploy
  services:
    - docker:dind
  script:
    - deployer deploy -l debug
  <<: *env_conf

.deploy_link_front:
  script:
    - >
      if ["$OFFSET" == ""]
        deployer copy $SOURCE_PATH $TARGET_PATH --link
      else
        deployer copy $SOURCE_PATH $TARGET_PATH --link --offset $OFFSET
      fi
  <<: *env_conf

.deploy_front:
  script:
    - >
      if ["$OFFSET" == ""]
        deployer copy $SOURCE_PATH $TARGET_PATH
      else
        deployer copy $SOURCE_PATH $TARGET_PATH --offset $OFFSET
      fi
  <<: *env_conf

.link_front:
  script:
    - >
      if ["$OFFSET" == ""]
        deployer link $SOURCE_PATH $TARGET_PATH
      else
        deployer link $SOURCE_PATH $TARGET_PATH --offset $OFFSET
      fi
  <<: *env_conf

.backup:
  script:
    - deployer deploy  -c KIND:backup
  <<: *env_conf

.restore:
  script:
    - deployer deploy  -c KIND:restore -l debug
  when: manual
  <<: *env_conf

.stop:
  image: registry.gitlab.com/devops_homeserve/deployer:v1.13.8
  variables:
    DOCKER_DRIVER: "overlay2"
    DOCKER_TLS_CERTDIR: ""
    TERRAFORM_TEMPLATE_BRANCH: v1.5.9
    CHART_TEMPLATE_BRANCH: v1.6.7
    OFFSET: ""
  services:
    - docker:dind
  script:
    - deployer destroy -l debug
  when: manual
  environment:
    name: $CI_COMMIT_REF_SLUG
    action: stop
    kubernetes:
      namespace: $NAMESPACE_K8S
  dependencies: []