#!/bin/bash
set -e

# Setup kubectl for EKS cluster access
# Usage: ./setup-kubectl.sh <cluster-name>

CLUSTER_NAME=${1:-tbi-dev-eks}
AWS_REGION=${AWS_DEFAULT_REGION:-ca-central-1}

echo "=== Setting up kubectl for EKS cluster ==="
echo "Cluster: $CLUSTER_NAME"
echo "Region: $AWS_REGION"

# Install kubectl if not present
if ! command -v kubectl &> /dev/null; then
    echo "Installing kubectl..."
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
    echo "✓ kubectl installed"
else
    echo "✓ kubectl already installed"
    kubectl version --client
fi

# Install aws-iam-authenticator if not present
if ! command -v aws-iam-authenticator &> /dev/null; then
    echo "Installing aws-iam-authenticator..."
    curl -Lo aws-iam-authenticator https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/download/v0.6.11/aws-iam-authenticator_0.6.11_linux_amd64
    chmod +x aws-iam-authenticator
    sudo mv aws-iam-authenticator /usr/local/bin/
    echo "✓ aws-iam-authenticator installed"
else
    echo "✓ aws-iam-authenticator already installed"
fi

# Update kubeconfig
echo "Updating kubeconfig for cluster: $CLUSTER_NAME"
aws eks update-kubeconfig \
    --region $AWS_REGION \
    --name $CLUSTER_NAME

# Verify connection
echo "Verifying cluster connection..."
if kubectl cluster-info &> /dev/null; then
    echo "✓ Successfully connected to cluster: $CLUSTER_NAME"
    kubectl get nodes
else
    echo "✗ Failed to connect to cluster"
    exit 1
fi

echo "=== kubectl setup complete ==="
