| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #!/usr/bin/env bash
- set -euo pipefail
- if [[ "${EUID}" -eq 0 ]]; then
- SUDO=""
- else
- SUDO="sudo"
- fi
- # 若未安装 helm,则自动安装
- if ! command -v helm >/dev/null 2>&1; then
- echo "未检测到 helm,自动安装..."
- curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | ${SUDO} bash
- fi
- # 检查集群可用性
- kubectl cluster-info >/dev/null
- echo "[1/3] 安装 Spark Operator"
- helm repo add spark-operator https://kubeflow.github.io/spark-operator >/dev/null 2>&1 || true
- helm repo update >/dev/null
- SPARK_OPERATOR_JOB_NAMESPACES_JSON="${SPARK_OPERATOR_JOB_NAMESPACES_JSON:-[\"\"]}"
- SPARK_OPERATOR_IVY_CACHE_PATH="${SPARK_OPERATOR_IVY_CACHE_PATH:-/var/lib/wenshu/spark-ivy}"
- helm upgrade --install spark-operator spark-operator/spark-operator \
- --namespace spark-operator \
- --create-namespace \
- --set-json "spark.jobNamespaces=${SPARK_OPERATOR_JOB_NAMESPACES_JSON}" \
- --set-json "controller.volumes=[{\"name\":\"tmp\",\"emptyDir\":{\"sizeLimit\":\"1Gi\"}},{\"name\":\"wenshu-spark-ivy-cache\",\"emptyDir\":{}}]" \
- --set-json "controller.volumeMounts=[{\"name\":\"tmp\",\"mountPath\":\"/tmp\",\"readOnly\":false},{\"name\":\"wenshu-spark-ivy-cache\",\"mountPath\":\"${SPARK_OPERATOR_IVY_CACHE_PATH}\",\"readOnly\":false}]"
- echo "[2/3] 安装 StarRocks Operator"
- kubectl apply -f https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/starrocks.com_starrocksclusters.yaml
- kubectl apply -f https://raw.githubusercontent.com/StarRocks/starrocks-kubernetes-operator/main/deploy/operator.yaml
- echo "[3/3] 验证 Operator"
- kubectl get crd sparkapplications.sparkoperator.k8s.io
- kubectl get crd starrocksclusters.starrocks.com
- kubectl get pods -n spark-operator || true
- kubectl get pods -n starrocks || true
- echo
- echo "Spark + StarRocks Operator 安装完成。"
|