mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-13 02:33:34 +00:00
Add e2e tests for topology based provisioning
- This commit adds tests only for RBD, as CephFS still needs an enhancement in CephFS subvolume commands to effectively use topology based provisioning Signed-off-by: ShyamsundarR <srangana@redhat.com>
This commit is contained in:
committed by
mergify[bot]
parent
d7ea523540
commit
e73921f268
@ -81,6 +81,9 @@ K8S_FEATURE_GATES=${K8S_FEATURE_GATES:-"BlockVolume=true,CSIBlockVolume=true,Vol
|
||||
#extra-config for kube https://minikube.sigs.k8s.io/docs/reference/configuration/kubernetes/
|
||||
EXTRA_CONFIG=${EXTRA_CONFIG:-"--extra-config=apiserver.enable-admission-plugins=PodSecurityPolicy"}
|
||||
|
||||
#extra Rook configuration
|
||||
ROOK_BLOCK_POOL_NAME=${ROOK_BLOCK_POOL_NAME:-"newrbdpool"}
|
||||
|
||||
case "${1:-}" in
|
||||
up)
|
||||
install_minikube
|
||||
@ -118,6 +121,16 @@ deploy-rook)
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
"$DIR"/rook.sh deploy
|
||||
;;
|
||||
create-block-pool)
|
||||
echo "creating a block pool named $ROOK_BLOCK_POOL_NAME"
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
"$DIR"/rook.sh create-block-pool
|
||||
;;
|
||||
delete-block-pool)
|
||||
echo "deleting block pool named $ROOK_BLOCK_POOL_NAME"
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
"$DIR"/rook.sh delete-block-pool
|
||||
;;
|
||||
teardown-rook)
|
||||
echo "teardown rook"
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
@ -145,14 +158,16 @@ clean)
|
||||
*)
|
||||
echo " $0 [command]
|
||||
Available Commands:
|
||||
up Starts a local kubernetes cluster and prepare disk for rook
|
||||
down Stops a running local kubernetes cluster
|
||||
clean Deletes a local kubernetes cluster
|
||||
ssh Log into or run a command on a minikube machine with SSH
|
||||
deploy-rook Deploy rook to minikube
|
||||
teardown-rook Teardown a rook from minikube
|
||||
cephcsi copy built docker images to kubernetes cluster
|
||||
k8s-sidecar copy kubernetes sidecar docker images to kubernetes cluster
|
||||
up Starts a local kubernetes cluster and prepare disk for rook
|
||||
down Stops a running local kubernetes cluster
|
||||
clean Deletes a local kubernetes cluster
|
||||
ssh Log into or run a command on a minikube machine with SSH
|
||||
deploy-rook Deploy rook to minikube
|
||||
create-block-pool Creates a rook block pool (named $ROOK_BLOCK_POOL_NAME)
|
||||
delete-block-pool Deletes a rook block pool (named $ROOK_BLOCK_POOL_NAME)
|
||||
teardown-rook Teardown a rook from minikube
|
||||
cephcsi Copy built docker images to kubernetes cluster
|
||||
k8s-sidecar Copy kubernetes sidecar docker images to kubernetes cluster
|
||||
" >&2
|
||||
;;
|
||||
esac
|
||||
|
@ -3,6 +3,7 @@
|
||||
ROOK_VERSION=${ROOK_VERSION:-"v1.1.7"}
|
||||
ROOK_DEPLOY_TIMEOUT=${ROOK_DEPLOY_TIMEOUT:-300}
|
||||
ROOK_URL="https://raw.githubusercontent.com/rook/rook/${ROOK_VERSION}/cluster/examples/kubernetes/ceph"
|
||||
ROOK_BLOCK_POOL_NAME=${ROOK_BLOCK_POOL_NAME:-"newrbdpool"}
|
||||
|
||||
function deploy_rook() {
|
||||
kubectl create -f "${ROOK_URL}/common.yaml"
|
||||
@ -37,6 +38,40 @@ function teardown_rook() {
|
||||
kubectl delete -f "${ROOK_URL}/common.yaml"
|
||||
}
|
||||
|
||||
function create_block_pool() {
|
||||
curl -o newpool.yaml "${ROOK_URL}/pool-test.yaml"
|
||||
sed -i "s/replicapool/$ROOK_BLOCK_POOL_NAME/g" newpool.yaml
|
||||
kubectl create -f "./newpool.yaml"
|
||||
rm -f "./newpool.yaml"
|
||||
|
||||
for ((retry = 0; retry <= ROOK_DEPLOY_TIMEOUT; retry = retry + 5)); do
|
||||
echo "Checking RBD ($ROOK_BLOCK_POOL_NAME) stats... ${retry}s" && sleep 5
|
||||
|
||||
TOOLBOX_POD=$(kubectl -n rook-ceph get pods -l app=rook-ceph-tools -o jsonpath='{.items[0].metadata.name}')
|
||||
TOOLBOX_POD_STATUS=$(kubectl -n rook-ceph get pod "$TOOLBOX_POD" -ojsonpath='{.status.phase}')
|
||||
[[ "$TOOLBOX_POD_STATUS" != "Running" ]] && \
|
||||
{ echo "Toolbox POD ($TOOLBOX_POD) status: [$TOOLBOX_POD_STATUS]"; continue; }
|
||||
|
||||
if kubectl exec -n rook-ceph "$TOOLBOX_POD" -it -- rbd pool stats "$ROOK_BLOCK_POOL_NAME" &>/dev/null; then
|
||||
echo "RBD ($ROOK_BLOCK_POOL_NAME) is successfully created..."
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$retry" -gt "$ROOK_DEPLOY_TIMEOUT" ]; then
|
||||
echo "[Timeout] Failed to get RBD pool $ROOK_BLOCK_POOL_NAME stats"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
function delete_block_pool() {
|
||||
curl -o newpool.yaml "${ROOK_URL}/pool-test.yaml"
|
||||
sed -i "s/replicapool/$ROOK_BLOCK_POOL_NAME/g" newpool.yaml
|
||||
kubectl delete -f "./newpool.yaml"
|
||||
rm -f "./newpool.yaml"
|
||||
}
|
||||
|
||||
function check_ceph_cluster_health() {
|
||||
for ((retry = 0; retry <= ROOK_DEPLOY_TIMEOUT; retry = retry + 5)); do
|
||||
echo "Wait for rook deploy... ${retry}s" && sleep 5
|
||||
@ -115,11 +150,19 @@ deploy)
|
||||
teardown)
|
||||
teardown_rook
|
||||
;;
|
||||
create-block-pool)
|
||||
create_block_pool
|
||||
;;
|
||||
delete-block-pool)
|
||||
delete_block_pool
|
||||
;;
|
||||
*)
|
||||
echo " $0 [command]
|
||||
Available Commands:
|
||||
deploy Deploy a rook
|
||||
teardown Teardown a rook
|
||||
deploy Deploy a rook
|
||||
teardown Teardown a rook
|
||||
create-block-pool Create a rook block pool
|
||||
delete-block-pool Delete a rook block pool
|
||||
" >&2
|
||||
;;
|
||||
esac
|
||||
|
@ -6,6 +6,7 @@ set -e
|
||||
export KUBE_VERSION=$1
|
||||
sudo scripts/minikube.sh up
|
||||
sudo scripts/minikube.sh deploy-rook
|
||||
sudo scripts/minikube.sh create-block-pool
|
||||
# pull docker images to speed up e2e
|
||||
sudo scripts/minikube.sh cephcsi
|
||||
sudo scripts/minikube.sh k8s-sidecar
|
||||
|
Reference in New Issue
Block a user