Files
user-microservice-deploy/argo-workflows/workflow.yaml
2025-07-31 23:52:19 +02:00

59 lines
1.9 KiB
YAML

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