File tree 2 files changed +46
-1
lines changed
2 files changed +46
-1
lines changed Original file line number Diff line number Diff line change 20
20
runs-on : ubuntu-latest
21
21
environment : ${{ inputs.environment }}
22
22
env :
23
+ APPLICATION_STARTUP_MESSAGE : " Application startup complete"
23
24
KUBELOGIN_VERSION : " v0.0.25"
24
25
KUBERNETES_CLUSTER_REPO_NAME : " ${{ vars.KUBERNETES_CLUSTER_REPO_NAME }}"
25
26
KUBERNETES_CLUSTER_NAME : " ${{ vars.KUBERNETES_CLUSTER_NAME }}"
37
38
repository : ${{ github.repository_owner }}/${{ env.KUBERNETES_CLUSTER_REPO_NAME }}
38
39
ref : refs/heads/dev
39
40
41
+ - name : GitHub Configuration
42
+ run : git config --global url."https://oauth2:${{ secrets.TOKEN_GITHUB }}@github.com".insteadOf https://github.com
43
+
44
+ - name : Clone cicd-deployment-scripts
45
+ run : git clone https://github.com/code-kern-ai/cicd-deployment-scripts.git
46
+
40
47
# Install the latest version of Kubernetes CLI and configure the Kubernetes CLI configuration file with a Kubernetes Cloud user API token
41
48
- name : Azure Cloud Login
42
49
uses : Azure/login@v2
@@ -72,11 +79,19 @@ jobs:
72
79
with :
73
80
namespace : ${{ env.KUBERNETES_NAMESPACE }}
74
81
manifests : apply.yml
75
- pull-images : false
82
+ pull-images : true
76
83
images : ${{ env.AZURE_CONTAINER_REGISTRY }}/${{ github.event.repository.name }}:${{ env.IMAGE_TAG }}
77
84
strategy : canary
78
85
action : deploy
79
86
percentage : 20
87
+
88
+ - name : Assert Deployment Success
89
+ shell : bash
90
+ run : |
91
+ bash cicd-deployment-scripts/k8s/assert_deploy_success.sh \
92
+ -n ${{ env.KUBERNETES_NAMESPACE }} \
93
+ -d ${{ github.event.repository.name }} \
94
+ -m ${{ env.APPLICATION_STARTUP_MESSAGE }}
80
95
81
96
- name : Promote Deployment
82
97
uses : Azure/k8s-deploy@v5
Original file line number Diff line number Diff line change
1
+ # !/bin/bash
2
+ set -e
3
+
4
+ KUBERNETES_NAMESPACE=" "
5
+ KUBERNETES_DEPLOYMENT_NAME=" "
6
+ APPLICATION_STARTUP_MESSAGE=" Application startup complete"
7
+
8
+ while getopts n:d:m: flag
9
+ do
10
+ case " ${flag} " in
11
+ n) KUBERNETES_NAMESPACE=${OPTARG} ;;
12
+ d) KUBERNETES_DEPLOYMENT_NAME=${OPTARG} ;;
13
+ m) APPLICATION_STARTUP_MESSAGE=${OPTARG} ;;
14
+ esac
15
+ done
16
+
17
+ kubectl config set-context --current --namespace=$KUBERNETES_NAMESPACE
18
+ echo " Context set to namespace: \" $KUBERNETES_NAMESPACE \" "
19
+
20
+ echo " Reading logs to determine application startup status for '$KUBERNETES_DEPLOYMENT_NAME '"
21
+ echo " Searching for message: '$APPLICATION_STARTUP_MESSAGE '"
22
+
23
+ LOG_CONTENTS=$( kubectl logs deployment/${KUBERNETES_DEPLOYMENT_NAME} \
24
+ --container ${KUBERNETES_DEPLOYMENT_NAME} || echo " Waiting for application startuop ..." )
25
+
26
+ while [[ " $LOG_CONTENTS " != * " $APPLICATION_STARTUP_MESSAGE " * ]]; do
27
+ echo " Waiting for application startup..."
28
+ sleep 3
29
+ LOG_CONTENTS=$( kubectl logs deployment/${KUBERNETES_DEPLOYMENT_NAME} --head=100)
30
+ done
You can’t perform that action at this time.
0 commit comments