.gcp_k8s_diff:
image: shomika17/gcloud-kubectl-kustomize:latest
before_script:
- echo "$SERVICE_ACCOUNT_CREDENTIALS" > key.json
- gcloud auth activate-service-account --key-file=key.json
- gcloud config set project $PROJECT
- gcloud config set container/cluster $CLUSTER
- gcloud config set compute/zone $ZONE
- gcloud container clusters get-credentials $CLUSTER --zone $ZONE
script:
- cd k8s/$APP/overlays/$OVERLAY/
- kustomize build . | kubectl diff -f - | colordiff || true
- echo -e "\e[32mATTEMPTING A DRY RUN TO SEE IF YOUR K8S CONFIG IS VALID\e[0m"
- kustomize build . | kubectl apply --dry-run -f - || echo -e "\e[31mWHOOPS! SEEMS YOU HAVE MISCONFIGURED SOMETHING. WHY DON'T YOU FIX IT AND TRY AGAIN?\e[0m"
- echo -e "\e[32mSUCCESS! You have a valid k8s config :)\e[0m"
base/docker.yml 0 → 100644
variables:
IMAGE_COMMIT: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
before_script:
- which docker && docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY || true
image: docker:19.03
.docker_build:
variables:
DOCKER_BUILD_EXTRA_ARGS: ""
script:
- docker build -t $IMAGE_COMMIT $DOCKER_BUILD_EXTRA_ARGS .
- docker push $IMAGE_COMMIT
.docker_release:
script:
- docker pull $IMAGE_COMMIT
- docker tag $IMAGE_COMMIT $NEW_IMAGE
- docker push $NEW_IMAGE
File moved
include:
- local: '/base/gcp-k8s-auth.yml'
.gcp_deploy:
image: shomika17/gcloud-kubectl-kustomize:latest
before_script:
- echo "$SERVICE_ACCOUNT_CREDENTIALS" > key.json
- gcloud auth activate-service-account --key-file=key.json
- gcloud config set project $PROJECT
- gcloud config set container/cluster $CLUSTER
- gcloud config set compute/zone $ZONE
- gcloud container clusters get-credentials $CLUSTER --zone $ZONE
extends: .gcp_k8s_auth
stage: deploy
script:
- cd k8s/$APP/overlays/$OVERLAY/
- kustomize edit set image $CI_REGISTRY_IMAGE=$NEW_IMAGE
- kustomize build . | kubectl apply -f -
allow_failure: false
include:
- local: '/base/docker.yml'
.release_tag:
extends: .docker_release
stage: release
variables:
NEW_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
only:
- tags
.release_latest:
extends: .docker_release
stage: release
variables:
NEW_IMAGE: $CI_REGISTRY_IMAGE:latest
except:
- tags
only:
- master
\ No newline at end of file
include:
- local: '/base/gcp-k8s-auth.yml'
.gcp_k8s_diff:
extends: .gcp_k8s_auth
script:
- cd k8s/$APP/overlays/$OVERLAY/
- |
echo -e "\e[32m-------------------------------------------\e[0m"
echo -e "\e[32mATTEMPTING A DRY RUN TO SEE IF YOUR K8S CONFIG IS VALID\e[0m"
kustomize build . | kubectl apply --dry-run -f - || echo -e "\e[31mWHOOPS! SEEMS YOU HAVE MISCONFIGURED SOMETHING. WHY DON'T YOU FIX IT AND TRY AGAIN?\e[0m" || false
echo -e "\e[32mSUCCESS! You have a valid k8s config :)\e[0m"
echo -e "\e[32m-------------------------------------------\e[0m"
echo -e "\e[32m---------RUNNING DIFF ON YOUR CONFIG...----------\e[0m"
echo -e "\e[32m-------------------------------------------\e[0m"
- kustomize build . | kubectl diff -f - | colordiff || true