Added workflow for deploy
This commit is contained in:
		
							
								
								
									
										58
									
								
								argo-workflows/workflow.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								argo-workflows/workflow.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					apiVersion: argoproj.io/v1alpha1
 | 
				
			||||||
 | 
					kind: Workflow
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  generateName: deploy-user-microservice-
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  entrypoint: deploy
 | 
				
			||||||
 | 
					  serviceAccountName: argo-workflows-user
 | 
				
			||||||
 | 
					  arguments:
 | 
				
			||||||
 | 
					    parameters:
 | 
				
			||||||
 | 
					      - name: branch
 | 
				
			||||||
 | 
					        value: ArgoWorkflows-deploy
 | 
				
			||||||
 | 
					  templates:
 | 
				
			||||||
 | 
					    - name: deploy
 | 
				
			||||||
 | 
					      container:
 | 
				
			||||||
 | 
					        image: marcin00.azurecr.io/azure-cli-kubectl:latest
 | 
				
			||||||
 | 
					        command: [sh, -c]
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          - name: CLIENT_ID
 | 
				
			||||||
 | 
					            value: "c302726f-fafb-4143-94c1-67a70975574a"
 | 
				
			||||||
 | 
					          - name: CLUSTER_NAME
 | 
				
			||||||
 | 
					            value: "build"
 | 
				
			||||||
 | 
					          - name: RESOURCE_GROUP
 | 
				
			||||||
 | 
					            value: "tst-aks-rg"
 | 
				
			||||||
 | 
					          - name: DEPLOY_FILES
 | 
				
			||||||
 | 
					            value: "namespace.yaml secret-store.yaml deploy.yaml ingress.yaml"
 | 
				
			||||||
 | 
					          - name: DEPLOYMENT
 | 
				
			||||||
 | 
					            value: "api"
 | 
				
			||||||
 | 
					          - name: NAMESPACE
 | 
				
			||||||
 | 
					            value: "user-microservice"
 | 
				
			||||||
 | 
					          - name: HEALTHCHECK_URL
 | 
				
			||||||
 | 
					            value: "https://user-microservice.marcin00.pl/health"
 | 
				
			||||||
 | 
					        args:
 | 
				
			||||||
 | 
					          - |
 | 
				
			||||||
 | 
					            echo "===> Logging in to Azure"
 | 
				
			||||||
 | 
					            az login --identity --client-id $CLIENT_ID
 | 
				
			||||||
 | 
					            az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --overwrite-existing
 | 
				
			||||||
 | 
					            kubelogin convert-kubeconfig -l azurecli
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            echo "===> Applying Kubernetes manifests"
 | 
				
			||||||
 | 
					            for file in $DEPLOY_FILES; do
 | 
				
			||||||
 | 
					              kubectl apply -f "$file"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            echo "===> Waiting for deployment to complete"
 | 
				
			||||||
 | 
					            kubectl rollout status deployment/$DEPLOYMENT -n $NAMESPACE --timeout=60s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            echo "===> Running health check"
 | 
				
			||||||
 | 
					            for i in $(seq 1 120); do
 | 
				
			||||||
 | 
					              if curl -sf $HEALTHCHECK_URL; then
 | 
				
			||||||
 | 
					                echo "Health check OK"
 | 
				
			||||||
 | 
					                exit 0
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                echo "Health check failed. Retry $i..."
 | 
				
			||||||
 | 
					                sleep 5
 | 
				
			||||||
 | 
					              fi
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            echo "Health check failed"
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
		Reference in New Issue
	
	Block a user