2026-02-13 15:52:13 +07:00
|
|
|
#!/bin/bash
|
|
|
|
|
# Minikura Installer
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
NAMESPACE="${KUBERNETES_NAMESPACE:-minikura}"
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
|
|
|
|
|
|
echo "╔════════════════════════════════════════════════╗"
|
|
|
|
|
echo "║ Minikura Kubernetes Installer ║"
|
|
|
|
|
echo "╚════════════════════════════════════════════════╝"
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
# Check prerequisites
|
|
|
|
|
echo "-> Checking prerequisites..."
|
|
|
|
|
if ! command -v kubectl &> /dev/null; then
|
2026-02-17 18:12:02 +07:00
|
|
|
echo "[WARN] kubectl not found. Skipping k8s setup."
|
|
|
|
|
echo "[INFO] Install kubectl and run 'bash scripts/install.sh' manually when ready."
|
|
|
|
|
exit 0
|
2026-02-13 15:52:13 +07:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if ! kubectl cluster-info &> /dev/null; then
|
2026-02-17 18:12:02 +07:00
|
|
|
echo "[WARN] Cannot connect to Kubernetes cluster. Skipping k8s setup."
|
|
|
|
|
echo "[INFO] Run 'bash scripts/install.sh' manually when cluster is ready."
|
|
|
|
|
exit 0
|
2026-02-13 15:52:13 +07:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "[OK] kubectl found"
|
|
|
|
|
echo "[OK] Connected to Kubernetes cluster"
|
|
|
|
|
echo ""
|
|
|
|
|
|
2026-02-17 18:12:02 +07:00
|
|
|
# Create namespace
|
2026-02-13 15:52:13 +07:00
|
|
|
echo "-> Creating namespace: $NAMESPACE"
|
2026-02-17 18:12:02 +07:00
|
|
|
kubectl create namespace $NAMESPACE --dry-run=client -o yaml | kubectl apply -f -
|
2026-02-13 15:52:13 +07:00
|
|
|
echo ""
|
|
|
|
|
|
2026-02-17 18:12:02 +07:00
|
|
|
# Apply RBAC (single SA for both backend and operator)
|
|
|
|
|
echo "-> Setting up RBAC (minikura-operator ServiceAccount)"
|
2026-02-13 15:52:13 +07:00
|
|
|
kubectl apply -f "$PROJECT_ROOT/k8s/rbac/operator-rbac.yaml"
|
|
|
|
|
echo "[OK] RBAC configured"
|
|
|
|
|
echo ""
|
|
|
|
|
|
2026-02-17 18:12:02 +07:00
|
|
|
# CRD info
|
|
|
|
|
echo "-> Custom Resource Definitions"
|
|
|
|
|
echo " CRDs are auto-created when the operator starts (ENABLE_CRD_REFLECTION=true)"
|
2026-02-13 15:52:13 +07:00
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
echo "╔════════════════════════════════════════════════╗"
|
|
|
|
|
echo "║ Installation Complete ║"
|
|
|
|
|
echo "╚════════════════════════════════════════════════╝"
|
|
|
|
|
echo ""
|
2026-02-17 18:12:02 +07:00
|
|
|
echo "Resources created:"
|
2026-02-13 15:52:13 +07:00
|
|
|
echo " [OK] Namespace: $NAMESPACE"
|
2026-02-17 18:12:02 +07:00
|
|
|
echo " [OK] ServiceAccount: minikura-operator"
|
|
|
|
|
echo " [OK] ClusterRole + ClusterRoleBinding"
|
2026-02-13 15:52:13 +07:00
|
|
|
echo ""
|
|
|
|
|
echo "Next steps:"
|
2026-02-17 18:12:02 +07:00
|
|
|
echo " bun run dev - Start backend + web"
|
|
|
|
|
echo " bun run k8s:dev - Start K8s operator"
|
2026-02-13 15:52:13 +07:00
|
|
|
echo ""
|