ee5bd0a291
Document registry ingress split, image mirroring, loop OSD setup, and platform integration paths.
53 lines
1.7 KiB
Bash
Executable File
53 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install Rook-Ceph operator + cluster + CloudHost bucket extras.
|
|
# Usage: ./scripts/install.sh [single-node|multi-node]
|
|
set -euo pipefail
|
|
|
|
PROFILE="${1:-single-node}"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
CHART_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
ROOK_NS="rook-ceph"
|
|
EXTRAS_NS="cloudhost-builds"
|
|
CLUSTER_VALUES="${CHART_DIR}/values-rook-cluster-${PROFILE}.yaml"
|
|
|
|
if [[ ! -f "${CLUSTER_VALUES}" ]]; then
|
|
echo "Unknown profile: ${PROFILE} (missing ${CLUSTER_VALUES})" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "==> Profile: ${PROFILE}"
|
|
echo "==> Adding rook-release helm repo"
|
|
helm repo add rook-release https://charts.rook.io/release 2>/dev/null || true
|
|
helm repo update rook-release
|
|
|
|
echo "==> [1/4] Installing Rook operator in ${ROOK_NS}"
|
|
helm upgrade --install rook-ceph rook-release/rook-ceph \
|
|
--namespace "${ROOK_NS}" \
|
|
--create-namespace \
|
|
--wait \
|
|
--timeout 10m
|
|
|
|
echo "==> [2/4] Waiting for Rook operator deployment"
|
|
kubectl -n "${ROOK_NS}" rollout status deploy/rook-ceph-operator --timeout=300s
|
|
|
|
echo "==> [3/4] Installing Ceph cluster (${CLUSTER_VALUES})"
|
|
helm upgrade --install rook-ceph-cluster rook-release/rook-ceph-cluster \
|
|
--namespace "${ROOK_NS}" \
|
|
-f "${CLUSTER_VALUES}" \
|
|
--wait \
|
|
--timeout 25m
|
|
|
|
echo "==> Waiting for CephCluster phase = Ready (up to 20 min)"
|
|
"${SCRIPT_DIR}/wait-ceph-ready.sh" 1200
|
|
|
|
echo "==> [4/4] Installing CloudHost Ceph extras (ObjectBucketClaim) in ${EXTRAS_NS}"
|
|
kubectl create namespace "${EXTRAS_NS}" 2>/dev/null || true
|
|
helm upgrade --install cloudhost-ceph "${CHART_DIR}" \
|
|
--namespace "${EXTRAS_NS}" \
|
|
-f "${CHART_DIR}/values.yaml" \
|
|
--wait \
|
|
--timeout 15m
|
|
|
|
echo ""
|
|
echo "==> Done. Run ./scripts/verify.sh to confirm health and print integration hints."
|