66 lines
1.8 KiB
Bash
66 lines
1.8 KiB
Bash
![]() |
#!/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
|