2020-04-01 07:20:43 +00:00
#!/bin/bash
set -e
# This script will be used by travis to run functional test
# against different kuberentes version
export KUBE_VERSION = $1
2020-04-16 07:34:44 +00:00
# parse the kubernetes version, return the digit passed as argument
# v1.17.0 -> kube_version 1 -> 1
# v1.17.0 -> kube_version 2 -> 17
kube_version( ) {
echo " ${ KUBE_VERSION } " | sed 's/^v//' | cut -d'.' -f" ${ 1 } "
}
2020-06-22 12:48:32 +00:00
# configure global environment variables
# shellcheck source=build.env
source " $( dirname " ${ 0 } " ) /../build.env "
cat << EOF | sudo tee -a /etc/environment
HELM_VERSION = ${ HELM_VERSION }
2020-06-22 13:20:33 +00:00
MINIKUBE_VERSION = ${ MINIKUBE_VERSION }
VM_DRIVER = ${ VM_DRIVER }
CHANGE_MINIKUBE_NONE_USER = ${ CHANGE_MINIKUBE_NONE_USER }
2020-06-22 12:48:32 +00:00
EOF
# helm is installed from this shell, not a new one that reads /etc/environment
export HELM_VERSION = ${ HELM_VERSION }
2020-04-01 07:20:43 +00:00
sudo scripts/minikube.sh up
sudo scripts/minikube.sh deploy-rook
2020-04-06 20:19:13 +00:00
sudo scripts/minikube.sh create-block-pool
2020-04-01 07:20:43 +00:00
# pull docker images to speed up e2e
sudo scripts/minikube.sh cephcsi
sudo scripts/minikube.sh k8s-sidecar
sudo chown -R travis: " $HOME " /.minikube /usr/local/bin/kubectl
NAMESPACE = cephcsi-e2e-$RANDOM
2020-04-13 07:55:48 +00:00
# create ns for e2e
kubectl create ns ${ NAMESPACE }
2020-04-16 07:34:44 +00:00
KUBE_MAJOR = $( kube_version 1)
KUBE_MINOR = $( kube_version 2)
# skip snapshot operation if kube version is less than 1.17.0
if [ [ " ${ KUBE_MAJOR } " -ge 1 ] ] && [ [ " ${ KUBE_MINOR } " -ge 17 ] ] ; then
# delete snapshot CRD created by ceph-csi in rook
scripts/install-snapshot.sh delete-crd
# install snapshot controller
scripts/install-snapshot.sh install
fi
2020-04-01 07:20:43 +00:00
# set up helm
scripts/install-helm.sh up
# install cephcsi helm charts
scripts/install-helm.sh install-cephcsi ${ NAMESPACE }
# functional tests
go test github.com/ceph/ceph-csi/e2e -mod= vendor --deploy-timeout= 10 -timeout= 30m --cephcsi-namespace= ${ NAMESPACE } --deploy-cephfs= false --deploy-rbd= false -v
#cleanup
2020-04-16 07:34:44 +00:00
# skip snapshot operation if kube version is less than 1.17.0
if [ [ " ${ KUBE_MAJOR } " -ge 1 ] ] && [ [ " ${ KUBE_MINOR } " -ge 17 ] ] ; then
# delete snapshot CRD
scripts/install-snapshot.sh cleanup
fi
2020-04-13 07:07:42 +00:00
scripts/install-helm.sh cleanup-cephcsi ${ NAMESPACE }
2020-04-09 04:07:07 +00:00
scripts/install-helm.sh clean
2020-04-13 07:55:48 +00:00
kubectl delete ns ${ NAMESPACE }
2020-04-01 07:20:43 +00:00
sudo scripts/minikube.sh clean