Created
October 31, 2020 02:24
-
-
Save ahmadarif/1d95a3b8d8e0019674fb32ec017eb47c to your computer and use it in GitHub Desktop.
Gitlab CI/CD for Rancher
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
stages: | |
- build | |
- deploy | |
Build: | |
stage: build | |
image: docker:19.03.12 | |
services: | |
- docker:19.03.12-dind | |
tags: | |
- k8s | |
variables: | |
IMAGE_TAG: registry.domain.com/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG | |
IMAGE_TAG_LATEST: registry.domain.com/$CI_PROJECT_PATH:latest | |
CI_JOB_TIMESTAMP: $(date --utc -Iseconds) | |
before_script: | |
- echo "127.0.0.1 k8s.domain.com" | tee -a /etc/hosts >/dev/null | |
- echo "127.0.0.1 registry.domain.com" | tee -a /etc/hosts >/dev/null | |
script: | |
- docker login registry.domain.com -u testuser -p testpassword | |
- docker build -t $IMAGE_TAG . | |
- docker push $IMAGE_TAG | |
- ([ "${CI_COMMIT_REF_NAME}" == "master" ] && docker build -t $IMAGE_TAG_LATEST .) || echo "Not latest build" | |
- ([ "${CI_COMMIT_REF_NAME}" == "master" ] && docker push $IMAGE_TAG_LATEST) || echo "Not latest build" | |
Deploy: | |
stage: deploy | |
image: ahmadarif/rancher-cli-k8s | |
only: | |
- develop | |
- master | |
variables: | |
IMAGE_TAG: registry.domain.com/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG | |
IMAGE_TAG_LATEST: registry.domain.com/$CI_PROJECT_PATH:latest | |
CI_JOB_TIMESTAMP: $(date --utc -Iseconds) | |
K8S_ENDPOINT: https://k8s.domain.com | |
K8S_ACCESS_KEY: | |
K8S_SECRET_KEY: | |
K8S_PROJECT_ID: | |
K8S_NAMESPACE: | |
K8S_WORKLOAD: | |
before_script: | |
- echo "127.0.0.1 k8s.domain.com" | tee -a /etc/hosts >/dev/null | |
- export CI_JOB_TIMESTAMP=$(date --utc -Iseconds) | |
script: | |
- mkdir ~/.rancher | |
- echo "{\"Servers\":{\"rancherDefault\":{\"accessKey\":\"$K8S_ACCESS_KEY\",\"secretKey\":\"$K8S_SECRET_KEY\",\"tokenKey\":\"$K8S_ACCESS_KEY:$K8S_SECRET_KEY\",\"url\":\"$K8S_ENDPOINT\",\"project\":\"$K8S_PROJECT_ID\",\"cacert\":\"\"}},\"CurrentServer\":\"rancherDefault\"}" > ~/.rancher/cli2.json | |
- rancher kubectl --insecure-skip-tls-verify --namespace=$K8S_NAMESPACE patch deployment $K8S_WORKLOAD -p "{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"intra-api\",\"image\":\"$IMAGE_TAG\",\"env\":[{\"name\":\"FORCE_RESTART_AT\",\"value\":\"$CI_JOB_TIMESTAMP\"}]}]}}}}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment