Files
Minikura/scripts/install.sh
T

62 lines
2.6 KiB
Bash
Raw Normal View History

2026-02-13 15:52:13 +07:00
#!/bin/bash
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 ""
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 ""
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-08-13 02:18:51 +07:00
echo "-> Installing operator CRDs"
make -C "$PROJECT_ROOT/operator" install-crds
echo "[OK] CRDs installed"
2026-02-13 15:52:13 +07:00
echo ""
2026-08-13 02:18:51 +07:00
echo "-> Setting up Go operator RBAC"
kubectl apply -f "$PROJECT_ROOT/operator/config/rbac/role.yaml"
kubectl apply -n "$NAMESPACE" -f "$PROJECT_ROOT/operator/config/rbac/service_account.yaml"
kubectl apply -n "$NAMESPACE" -f "$PROJECT_ROOT/operator/config/rbac/backend.yaml"
kubectl patch clusterrolebinding minikura-operator-rolebinding --type=json \
-p="[{\"op\":\"replace\",\"path\":\"/subjects/0/namespace\",\"value\":\"$NAMESPACE\"}]"
kubectl patch clusterrolebinding minikura-backend-operator-resources --type=json \
-p="[{\"op\":\"replace\",\"path\":\"/subjects/0/namespace\",\"value\":\"$NAMESPACE\"}]"
echo "[OK] Operator RBAC configured"
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-08-13 02:32:16 +07:00
echo " bun run dev - Start backend, web, and Go operator"
2026-02-13 15:52:13 +07:00
echo ""