-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
66 lines (63 loc) · 3.13 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# User / password vars must first be set in the UI
variables:
CI_REGISTRY_USER: ${CI_REGISTRY_USER}
CI_REGISTRY_PASSWORD: ${CI_REGISTRY_PASSWORD}
CI_IMAGE_TAG: brk3/guestbook:${CI_COMMIT_SHORT_SHA}
CI_REGISTRY: "https://index.docker.io/v1/"
NAMESPACE: guestbook-gitlab
build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"${CI_REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- cat /kaniko/.docker/config.json
- >-
/kaniko/executor
--context "."
--dockerfile "./Dockerfile"
--destination "${CI_IMAGE_TAG}"
deploy-rolling:
stage: deploy
environment:
name: test
image:
name: dtzar/helm-kubectl:3.8.0
entrypoint: [""]
script:
- kubectl config use-context mygroup1371/myproject:pbourke
- helm upgrade --install --namespace "${NAMESPACE}" --create-namespace redis ./helm/redis/
- helm upgrade --install --namespace "${NAMESPACE}" --create-namespace --set targetRole=blue --set image="${CI_IMAGE_TAG}" guestbook-blue ./helm/guestbook-go/
- helm upgrade --install --namespace "${NAMESPACE}" --create-namespace --set targetRole=blue guestbook-service ./helm/guestbook-service/
#deploy-blue-green:
#stage: deploy
#image:
#name: dtzar/helm-kubectl:3.8.0
#entrypoint: [""]
#script:
#- kubectl config get-contexts
#- kubectl config use-context mygroup1371/myproject:pbourke
#- |-
#if ! kubectl get ns "${NAMESPACE}" >/dev/null 2>&1; then
#echo "INFO: Namespace ${NAMESPACE} not found, performing fresh deploy to both colors."
#helm install --namespace "${NAMESPACE}" --create-namespace redis ./helm/redis/
#helm install --namespace "${NAMESPACE}" --create-namespace --set targetRole=blue --set image="${CI_IMAGE_TAG}" guestbook-blue ./helm/guestbook-go/
#helm install --namespace "${NAMESPACE}" --create-namespace --set targetRole=green --set image="${CI_IMAGE_TAG}" guestbook-green ./helm/guestbook-go/
#helm install --namespace "${NAMESPACE}" --create-namespace --set targetRole=blue guestbook-service ./helm/guestbook-service/
#else
#echo "INFO: Found namespace ${NAMESPACE}. Fetching current primary deployment."
#PRIMARY=$(kubectl get service guestbook -n "${NAMESPACE}" -o jsonpath='{.metadata.labels.role}')
#if [[ "${PRIMARY}" == "blue" ]]; then
#SECONDARY="green"
#else
#SECONDARY="blue"
#fi
#echo "INFO: Primary is color ${PRIMARY}. Deploying latest build to secondary, color: ${SECONDARY}"
#helm upgrade --namespace "${NAMESPACE}" --set targetRole=${SECONDARY} --set image="${CI_IMAGE_TAG}" guestbook-${SECONDARY} ./helm/guestbook-go/
#fi
#echo "INFO: Image ${CI_IMAGE_TAG} deployed to secondary, color ${SECONDARY}."
## TODO: Wait for testing...
## TODO: Swap service:
## helm upgrade --namespace "${NAMESPACE}" --set targetRole=${SECONDARY} guestbook-service ./helm/guestbook-service/