provisioning/taskservs/rook-ceph/default/install-rook-ceph.sh
2025-09-22 23:11:41 +01:00

66 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Info: Script to install/create/delete/update rook-ceph from file settings
# Author: JesusPerezLorenzo
# Release: 1.0
# Date: 15-12-2023
USAGE="install-rook-ceph.sh full-path-settings-file [ -m controlplane (hostname -cp-) | worker] [*install | update | makejoin | remove | fullremove]"
[ "$1" == "-h" ] && echo "$USAGE" && exit 1
[[ "$1" == *setting* ]] && [ -r "$1" ] && . $1 && shift
[[ "$1" == env-* ]] && [ -r "$1" ] && . $1 && shift
[ -r "env-rook-ceph" ] && . env-rook-ceph
has_rook_operator=$(kubectl get pods -n ${NAMESPACE} 2>/dev/null | grep operator)
INSTALL_NAME="root-cepth"
if [ ! -d "rook-ceph" ] ; then
echo "Error: rook-cepth path not found"
exit 1
fi
_save_target() {
[ -z "$TARGET_SAVE_PATH" ] && return
local file_path=$1
mkdir -p "$TARGET_SAVE_PATH"
if cp "$file_path" "$TARGET_SAVE_PATH" ; then
echo "$file_path saved in $TARGET_SAVE_PATH"
fi
}
_kubectl() {
local mode=$1
local yaml=$2
[ ! -r "$yaml" ] && return
case $mode in
"create") if ! kubectl create -f "$yaml" ; then
echo "Error: $INSTALL_NAME $yaml"
fi
;;
"apply") if ! kubectl apply -f "$yaml" ; then
echo "Error: $INSTALL_NAME $yaml"
fi
;;
esac
_save_target "$yaml"
}
cd rook-ceph || exit 1
_kubectl create crds.yaml
_kubectl apply common.yaml
_kubectl apply operator.yaml
_kubectl apply cluster.yaml
_kubectl apply object.yaml
_kubectl apply object-user.yaml
_kubectl apply pool.yaml
_kubectl apply storageclass-csi.yaml
_kubectl apply storageclass-rdb.yaml
_kubectl apply filesystem.yaml
_kubectl apply rgw-external.yaml
_kubectl apply dashboard-external-https.yaml
#_kubectl apply nfs.yaml
_kubectl apply toolbox.yaml