#!/bin/bash
set -euo pipefail

IMAGE_URI=$(cat .last-image-uri)

# Optional: switch kubectl context
if [ -n "${K8S_CONTEXT:-}" ]; then
  CLUSTER_NAME=$(echo "$K8S_CONTEXT" | sed 's|.*cluster/||')
  echo "[k8s-deploy] Updating kubeconfig → $CLUSTER_NAME"
  aws eks update-kubeconfig --name "$CLUSTER_NAME" --region "$AWS_REGION" --profile "$AWS_PROFILE"
  echo "[k8s-deploy] Switching context → $K8S_CONTEXT"
  kubectl config use-context "$K8S_CONTEXT"
fi

# Ensure namespace exists
kubectl get namespace "$K8S_NAMESPACE" > /dev/null 2>&1   || kubectl create namespace "$K8S_NAMESPACE"

echo "[k8s-deploy] Applying manifests..."
kubectl apply -f k8s/ -n "$K8S_NAMESPACE"

echo "[k8s-deploy] Updating image → $IMAGE_URI"
kubectl set image deployment/"$K8S_DEPLOYMENT"   "$K8S_CONTAINER"="$IMAGE_URI"   -n "$K8S_NAMESPACE"

echo "[k8s-deploy] Waiting for rollout..."
kubectl rollout status deployment/"$K8S_DEPLOYMENT"   -n "$K8S_NAMESPACE"   --timeout=300s

echo "[k8s-deploy] Done."
