Création d'une réservation de volume persistant Cognos PowerCubes
Utilisez le script create_powercube_pvc.sh pour créer une réservation de volume persistant Cognos PowerCubes .
Syntaxe
./create_powercube_pvc.sh -t espace-noms -s classe_stockage -p nom_volume_persistant -g taille_stockage_en_Gi [-v] [-h]Options
- -v
- Active le mode prolixe.
- -g taille_stockage_en_Gi
- Taille de stockage, en Gi.
- -p nom_volume_persistant
- Nom du volume persistant.
- -s classe_stockage
- Classe de stockage utilisée lors de l'allocation. Pour trouver la classe de stockage, utilisez la commande co get sc .
- -t espace_de_nom
- Espace de nom dans lequel Cognos Analytics est mis à disposition.
- -h
- Imprime l'aide dans la console et quitte.
Exemple
L'exemple suivant crée une réservation de volume persistant nommée powercube1-pvc dans l'espace de nom cat avec 2 Gi de stockage:
./create_powercube_pvc.sh -t cat -s nfsstorage -p powercube1 -g 2
Fichier script
Le script create_powercube_pvc.sh est un fichier dont le contenu est le suivant:
#!/usr/bin/env bash
#
# -----------------------------------------------------------------------------
# Licensed Materials - Property of IBM
#
# IBM Cognos Products: ca
#
# (C) Copyright IBM Corp. 2023
#
# US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule
# -----------------------------------------------------------------------------
#
#
set -e
#set -x
function usage {
echo $0: usage: $0 [-h] -t tethered_namespace -s storageclass -p persistentvolume -g storage_size [-v]
}
function help {
usage
echo "-h Prints help to the console and exits."
echo "-t Required. Namespace in which Cognos
Analytics is provisioned."
echo "-s Storage class that is used during provisioning."
echo "-p Name of the persistent volume."
echo "-g Size of the storage, in Gi."
echo "-v Enables verbose mode"
echo ""
exit 0
}
while getopts ":ht:s:p:g:v" opt; do
case ${opt} in
h)
help
;;
t)
tethered_namespace=$OPTARG
;;
s)
storage_class=$OPTARG
;;
p)
pvc_name=$OPTARG
;;
g)
storage_size=$OPTARG
;;
v)
verbose_flag="true"
;;
\?)
usage
exit 0
;;
esac
done
if [[ -z ${tethered_namespace} ]]; then
echo "A tethered_namespace must be provided"
help
fi
if [[ -z ${storage_class} ]]; then
echo "A storage class must be provided"
help
fi
if [[ -z ${pvc_name} ]]; then
echo "A persistent volume to be used name must be provided"
help
fi
if [[ -z ${storage_size} ]]; then
echo "A storage size must be provided"
help
fi
echo "Current List of PVC's under namespace: $tethered_namespace"
oc get pvc -n $tethered_namespace
#mount_dir='./testFiles'
echo "Creating PVC.."
# Create a PVC
cat << EOF | oc create -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${pvc_name}-pvc
namespace: ${tethered_namespace}
labels:
icpdsupport/ignore-on-nd-backup: 'false'
powercubes_support: 'true'
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: ${storage_size}Gi
storageClassName: ${storage_class}
volumeMode: Filesystem
EOF
sleep 10
check_status="Bound"
# Checking status of pvc
for i in {1..12};do
pvcStatus=$(oc get pvc ${pvc_name}-pvc -o jsonpath="{.status.phase}" -n ${tethered_namespace})
if [[ ${pvcStatus} == ${check_status} ]];then
echo "pvc status:${pvcStatus} "
break
elif [[ ${pvcStatus} == "Pending" ]];then
echo "pvc status: ${pvcStatus}! please check the PVC:$pvc_name-pvc Events.."
EVENTS=$(oc describe pvc $pvc_name-pvc -n ${tethered_namespace} | grep 'Events')
echo "$EVENTS"
echo "Deleting PVC $pvc_name-pvc..."
oc delete pvc $pvc_name-pvc -n $tethered_namespace
exit 1
fi
sleep 30
done
echo "PVC $pvc_name-pvc added..."
oc get pvc $pvc_name-pvc -n $tethered_namespace
echo "Please add the PVC : ${pvc_name}-pvc to the caserviceinstances CR under $tethered_namespace"