Last active
June 22, 2017 23:37
-
-
Save mikejk8s/0f805c3e7d0704cbea63db846a00357e to your computer and use it in GitHub Desktop.
This file contains hidden or 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
image: registry.gitlab.com/gitlab-examples/kubernetes-deploy | |
stages: | |
- deploy | |
- rollback | |
kubernetes deploy: | |
stage: deploy | |
environment: | |
name: production | |
script: | |
- sed -i "s/__CI_ENVIRONMENT_SLUG__/$CI_ENVIRONMENT_SLUG/" nginx-deployment.yaml | |
- cat nginx-deployment.yaml | |
- echo "$KUBE_CA_PEM" > kube_ca.pem | |
- cat kube_ca.pem | |
- kubectl config set-cluster default-cluster --server=$KUBE_URL --certificate-authority="$(pwd)/kube_ca.pem" | |
- kubectl config set-credentials default-admin --token=$KUBE_TOKEN | |
- kubectl config set-context default-system --cluster=default-cluster --user=default-admin --namespace $KUBE_NAMESPACE | |
- kubectl config use-context default-system | |
- kubectl cluster-info --insecure-skip-tls-verify=true | |
- kubectl get deployments -l app=$CI_ENVIRONMENT_SLUG --insecure-skip-tls-verify=true | |
- kubectl create -f nginx-deployment.yaml --record --insecure-skip-tls-verify=true || kubectl replace -f nginx-deployment.yaml --insecure-skip-tls-verify=true | |
- kubectl patch deployment/nginx-deployment -p '{"spec":{"progressDeadlineSeconds":10}}' --insecure-skip-tls-verify=true | |
- kubectl rollout status deployments/nginx-deployment --insecure-skip-tls-verify=true | |
- kubectl get deployments -l app=$CI_ENVIRONMENT_SLUG --insecure-skip-tls-verify=true | |
roll_back: | |
stage: rollback | |
environment: | |
name: production | |
script: | |
- echo "$KUBE_CA_PEM" > kube_ca.pem | |
- cat kube_ca.pem | |
- kubectl config set-cluster default-cluster --server=$KUBE_URL --certificate-authority="$(pwd)/kube_ca.pem" | |
- kubectl config set-credentials default-admin --token=$KUBE_TOKEN | |
- kubectl config set-context default-system --cluster=default-cluster --user=default-admin --namespace $KUBE_NAMESPACE | |
- kubectl config use-context default-system | |
- kubectl rollout undo deployments/nginx-deployment --to-revision=$(kubectl --insecure-skip-tls-verify=true rollout history deployments/nginx-deployment | head -3 | tail -1 | awk '{print $1}') --insecure-skip-tls-verify=true | |
when: on_failure |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment