Files
cloud-host/backend/helm/cloudhost-ceph/scripts/install.sh
T
keyhan ee5bd0a291 Add Harbor/Ceph runbooks and align single-node Ceph docs with abr deployment.
Document registry ingress split, image mirroring, loop OSD setup, and platform integration paths.
2026-07-01 00:22:06 +03:30

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."