ci: skip snapshot E2E if kube<1.17+

snapshot beta CRD wont work if the
kubernetes version is less than 1.17.0
as the snapshot CRD wont be installed
we cannot test the snapshot,so disabling
it if the kube version is less than 1.17

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
Madhu Rajanna 2020-04-16 13:04:44 +05:30 committed by mergify[bot]
parent 538b854853
commit 1f13692000
3 changed files with 87 additions and 49 deletions

View File

@ -234,8 +234,14 @@ var _ = Describe("RBD", func() {
createRBDStorageClass(f.ClientSet, f, nil, nil) createRBDStorageClass(f.ClientSet, f, nil, nil)
}) })
// skipping snapshot testing
By("create a PVC clone and Bind it to an app", func() { By("create a PVC clone and Bind it to an app", func() {
v, err := f.ClientSet.Discovery().ServerVersion()
if err != nil {
e2elog.Logf("failed to get server version with error %v", err)
Fail(err.Error())
}
// snapshot beta is only supported from v1.17+
if v.Major > "1" || (v.Major == "1" && v.Minor >= "17") {
createRBDSnapshotClass(f) createRBDSnapshotClass(f)
pvc, err := loadPVC(pvcPath) pvc, err := loadPVC(pvcPath)
if err != nil { if err != nil {
@ -281,6 +287,7 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
}
}) })
By("create a block type PVC and Bind it to an app", func() { By("create a block type PVC and Bind it to an app", func() {

View File

@ -4,19 +4,35 @@ set -e
# This script will be used by travis to run functional test # This script will be used by travis to run functional test
# against different kuberentes version # against different kuberentes version
export KUBE_VERSION=$1 export KUBE_VERSION=$1
# 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}"
}
sudo scripts/minikube.sh up sudo scripts/minikube.sh up
sudo scripts/minikube.sh deploy-rook sudo scripts/minikube.sh deploy-rook
sudo scripts/minikube.sh create-block-pool sudo scripts/minikube.sh create-block-pool
# pull docker images to speed up e2e # pull docker images to speed up e2e
sudo scripts/minikube.sh cephcsi sudo scripts/minikube.sh cephcsi
sudo scripts/minikube.sh k8s-sidecar sudo scripts/minikube.sh k8s-sidecar
sudo chown -R travis: "$HOME"/.minikube /usr/local/bin/kubectl
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 # delete snapshot CRD created by ceph-csi in rook
scripts/install-snapshot.sh delete-crd scripts/install-snapshot.sh delete-crd
# install snapshot controller # install snapshot controller
scripts/install-snapshot.sh install scripts/install-snapshot.sh install
sudo chown -R travis: "$HOME"/.minikube /usr/local/bin/kubectl fi
# functional tests # functional tests
go test github.com/ceph/ceph-csi/e2e --deploy-timeout=10 -timeout=30m --cephcsi-namespace=cephcsi-e2e-$RANDOM -v -mod=vendor go test github.com/ceph/ceph-csi/e2e --deploy-timeout=10 -timeout=30m --cephcsi-namespace=cephcsi-e2e-$RANDOM -v -mod=vendor
if [[ "${KUBE_MAJOR}" -ge 1 ]] && [[ "${KUBE_MINOR}" -ge 17 ]]; then
# delete snapshot CRD
scripts/install-snapshot.sh cleanup scripts/install-snapshot.sh cleanup
fi
sudo scripts/minikube.sh clean sudo scripts/minikube.sh clean

View File

@ -4,6 +4,12 @@ set -e
# This script will be used by travis to run functional test # This script will be used by travis to run functional test
# against different kuberentes version # against different kuberentes version
export KUBE_VERSION=$1 export KUBE_VERSION=$1
# 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}"
}
sudo scripts/minikube.sh up sudo scripts/minikube.sh up
sudo scripts/minikube.sh deploy-rook sudo scripts/minikube.sh deploy-rook
sudo scripts/minikube.sh create-block-pool sudo scripts/minikube.sh create-block-pool
@ -15,10 +21,15 @@ sudo chown -R travis: "$HOME"/.minikube /usr/local/bin/kubectl
NAMESPACE=cephcsi-e2e-$RANDOM NAMESPACE=cephcsi-e2e-$RANDOM
# create ns for e2e # create ns for e2e
kubectl create ns ${NAMESPACE} kubectl create ns ${NAMESPACE}
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 # delete snapshot CRD created by ceph-csi in rook
scripts/install-snapshot.sh delete-crd scripts/install-snapshot.sh delete-crd
# install snapshot controller # install snapshot controller
scripts/install-snapshot.sh install scripts/install-snapshot.sh install
fi
# set up helm # set up helm
scripts/install-helm.sh up scripts/install-helm.sh up
# install cephcsi helm charts # install cephcsi helm charts
@ -27,7 +38,11 @@ scripts/install-helm.sh install-cephcsi ${NAMESPACE}
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 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 #cleanup
# 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 scripts/install-snapshot.sh cleanup
fi
scripts/install-helm.sh cleanup-cephcsi ${NAMESPACE} scripts/install-helm.sh cleanup-cephcsi ${NAMESPACE}
scripts/install-helm.sh clean scripts/install-helm.sh clean
kubectl delete ns ${NAMESPACE} kubectl delete ns ${NAMESPACE}