#!/usr/bin/env bash # Admin POST to create a sample cluster. # Usage: ./scripts/seed.sh [cluster_id] [rm_url] [shs_url] [spark_submit_bin] set -euo pipefail cd "$(dirname "$0")/.." # Load .env if present if [ -f .env ]; then set -a # shellcheck source=/dev/null . ./.env set +a fi : "${ADMIN_TOKENS:?ADMIN_TOKENS is required}" HOST="${ADMIN_HOST:-http://127.0.0.1:8080}" TOKEN="${ADMIN_TOKENS%%,*}" AUTH="Authorization: Bearer ${TOKEN}" CLUSTER_ID="${1:-prod}" RM_URL="${2:-http://rm.example.com:8088}" SHS_URL="${3:-http://shs.example.com:18080}" SPARK_BIN="${4:-/opt/spark/bin/spark-submit}" echo ">> creating cluster '${CLUSTER_ID}' via ${HOST}/admin/clusters" curl -sS -X POST -H "${AUTH}" -H "Content-Type: application/json" \ -d "{\"id\":\"${CLUSTER_ID}\",\"name\":\"${CLUSTER_ID}\",\"rm_url\":\"${RM_URL}\",\"shs_url\":\"${SHS_URL}\",\"spark_submit_execute_bin\":\"${SPARK_BIN}\",\"is_active\":true,\"auth_type\":\"simple\",\"auth_username\":\"yarn\",\"rate_limit_per_min\":10,\"url_allowlist\":[\"${RM_URL#*://}\",\"${SHS_URL#*://}\"]}" \ "${HOST}/admin/clusters" echo