#!/bin/bash # Deploy whalehunting to Kubernetes via ArgoCD # Usage: ./deploy-k8s.sh [tag] # Example: ./deploy-k8s.sh v1.2.0 set -e GITEA_URL="git.kube2.tricnet.de" REPO_NAME="whalehunting" IMAGE_TAG="${1:-latest}" echo "=== Whalehunting Kubernetes Deployment ===" echo "" # Step 1: Build Docker image echo "1. Building Docker image..." docker build -t ${GITEA_URL}/admin/${REPO_NAME}:${IMAGE_TAG} . # Step 2: Push image to registry echo "" echo "2. Pushing image to Gitea registry..." docker push ${GITEA_URL}/admin/${REPO_NAME}:${IMAGE_TAG} # Step 3: Update image tag in kustomization echo "" echo "3. Updating image tag in kustomization.yaml..." sed -i "s/newTag: .*/newTag: ${IMAGE_TAG}/" k8s/kustomization.yaml # Step 4: Commit and push to Gitea echo "" echo "4. Committing and pushing to Gitea..." git add -A git commit -m "deploy: update image to ${IMAGE_TAG}" || echo "No changes to commit" git push origin master # Step 5: Ensure ArgoCD application exists echo "" echo "5. Ensuring ArgoCD application exists..." ssh root@kube2.tricnet.de "kubectl apply -f -" < k8s/argocd-application.yaml # Step 6: Wait for sync and check status echo "" echo "6. Checking deployment status..." sleep 5 ssh root@kube2.tricnet.de "kubectl get application whalehunting -n argocd" ssh root@kube2.tricnet.de "kubectl get pods -n whalehunting" echo "" echo "=== Deployment complete ===" echo "Game URL: https://whalehunting.kube2.tricnet.de"