diff --git a/.travis.yml b/.travis.yml index 5804fcc1d..eb2862b4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,7 +73,7 @@ jobs: | sh -s -- -b $GOPATH/bin "${GOSEC_VERSION}" # install helm for helm lint - curl -L https://git.io/get_helm.sh - | sh -s -- --version "${HELM_VERSION}" + | bash -s -- -v "${HELM_VERSION}" script: - make go-lint - make go-lint-text diff --git a/scripts/install-helm.sh b/scripts/install-helm.sh index a6b6a0575..670d6a932 100755 --- a/scripts/install-helm.sh +++ b/scripts/install-helm.sh @@ -5,7 +5,7 @@ TEMP="/tmp/cephcsi-helm-test" HELM="helm" -HELM_VERSION=${HELM_VERSION:-"v2.16.5"} +HELM_VERSION=${HELM_VERSION:-"v3.1.2"} arch="${ARCH:-}" CEPHFS_CHART_NAME="ceph-csi-cephfs" RBD_CHART_NAME="ceph-csi-rbd" @@ -95,40 +95,10 @@ install() { mkdir -p ${TEMP} # shellcheck disable=SC2021 dist=$(echo "${dist}" | tr "[A-Z]" "[a-z]") - wget "https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-${dist}-${arch}.tar.gz" -O "${TEMP}/helm.tar.gz" + wget "https://get.helm.sh/helm-${HELM_VERSION}-${dist}-${arch}.tar.gz" -O "${TEMP}/helm.tar.gz" tar -C "${TEMP}" -zxvf "${TEMP}/helm.tar.gz" fi - - # set up RBAC for helm - kubectl --namespace kube-system create sa tiller - kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller - - # Init helm - "${HELM}" init --service-account tiller --output yaml | - sed 's@apiVersion: extensions/v1beta1@apiVersion: apps/v1@' | - sed 's@strategy: {}@selector: {"matchLabels": {"app": "helm", "name": "tiller"}}@' | kubectl apply -f - - - kubectl -n kube-system patch deploy/tiller-deploy -p '{"spec": {"template": {"spec": {"serviceAccountName": "tiller"}}}}' - - sleep 5 - - helm_ready=$(kubectl get pods -l app=helm -n kube-system -o jsonpath='{.items[0].status.containerStatuses[0].ready}') - INC=0 - until [[ "${helm_ready}" == "true" || $INC -gt 20 ]]; do - sleep 10 - ((++INC)) - helm_ready=$(kubectl get pods -l app=helm -n kube-system -o jsonpath='{.items[0].status.containerStatuses[0].ready}') - echo "helm pod status: ${helm_ready}" - done - - if [ "${helm_ready}" != "true" ]; then - echo "Helm init not successful" - kubectl get pods -l app=helm -n kube-system - kubectl logs -lapp=helm --all-containers=true -nkube-system - exit 1 - fi - - echo "Helm init successful" + echo "Helm install successful" } install_cephcsi_helm_charts() { @@ -144,7 +114,7 @@ install_cephcsi_helm_charts() { done # install ceph-csi-cephfs and ceph-csi-rbd charts - "${HELM}" install "${SCRIPT_DIR}"/../charts/ceph-csi-cephfs --name ${CEPHFS_CHART_NAME} --namespace ${NAMESPACE} --set provisioner.fullnameOverride=csi-cephfsplugin-provisioner --set nodeplugin.fullnameOverride=csi-cephfsplugin --set configMapName=ceph-csi-config --set provisioner.podSecurityPolicy.enabled=true --set nodeplugin.podSecurityPolicy.enabled=true + "${HELM}" install --namespace ${NAMESPACE} --set provisioner.fullnameOverride=csi-cephfsplugin-provisioner --set nodeplugin.fullnameOverride=csi-cephfsplugin --set configMapName=ceph-csi-config --set provisioner.podSecurityPolicy.enabled=true --set nodeplugin.podSecurityPolicy.enabled=true ${CEPHFS_CHART_NAME} "${SCRIPT_DIR}"/../charts/ceph-csi-cephfs check_deployment_status app=ceph-csi-cephfs ${NAMESPACE} check_daemonset_status app=ceph-csi-cephfs ${NAMESPACE} @@ -152,7 +122,7 @@ install_cephcsi_helm_charts() { # deleting configmap as a workaround to avoid configmap already present # issue when installing ceph-csi-rbd kubectl delete cm ceph-csi-config --namespace ${NAMESPACE} - "${HELM}" install "${SCRIPT_DIR}"/../charts/ceph-csi-rbd --name ${RBD_CHART_NAME} --namespace ${NAMESPACE} --set provisioner.fullnameOverride=csi-rbdplugin-provisioner --set nodeplugin.fullnameOverride=csi-rbdplugin --set configMapName=ceph-csi-config --set provisioner.podSecurityPolicy.enabled=true --set nodeplugin.podSecurityPolicy.enabled=true --set topology.enabled=true --set topology.domainLabels="{${NODE_LABEL_REGION},${NODE_LABEL_ZONE}}" + "${HELM}" install --namespace ${NAMESPACE} --set provisioner.fullnameOverride=csi-rbdplugin-provisioner --set nodeplugin.fullnameOverride=csi-rbdplugin --set configMapName=ceph-csi-config --set provisioner.podSecurityPolicy.enabled=true --set nodeplugin.podSecurityPolicy.enabled=true ${RBD_CHART_NAME} "${SCRIPT_DIR}"/../charts/ceph-csi-rbd --set topology.enabled=true --set topology.domainLabels="{${NODE_LABEL_REGION},${NODE_LABEL_ZONE}}" check_deployment_status app=ceph-csi-rbd ${NAMESPACE} check_daemonset_status app=ceph-csi-rbd ${NAMESPACE} @@ -160,23 +130,23 @@ install_cephcsi_helm_charts() { } cleanup_cephcsi_helm_charts() { - "${HELM}" del --purge ${CEPHFS_CHART_NAME} - "${HELM}" del --purge ${RBD_CHART_NAME} - # remove set labels for node in $(kubectl get node --no-headers | cut -f 1 -d ' '); do kubectl label node/"$node" test.failure-domain/region- kubectl label node/"$node" test.failure-domain/zone- done # TODO/LATER we could remove the CSI labels that would have been set as well + NAMESPACE=$1 + if [ -z "$NAMESPACE" ]; then + NAMESPACE="default" + fi + "${HELM}" uninstall ${CEPHFS_CHART_NAME} --namespace ${NAMESPACE} + "${HELM}" uninstall ${RBD_CHART_NAME} --namespace ${NAMESPACE} } helm_reset() { - "${HELM}" reset # shellcheck disable=SC2021 rm -rf "${TEMP}" - kubectl --namespace kube-system delete sa tiller - kubectl delete clusterrolebinding tiller } if [ -z "${arch}" ]; then @@ -201,7 +171,7 @@ install-cephcsi) install_cephcsi_helm_charts "$2" ;; cleanup-cephcsi) - cleanup_cephcsi_helm_charts + cleanup_cephcsi_helm_charts "$2" ;; *) echo "usage:" >&2 diff --git a/scripts/travis-helmtest.sh b/scripts/travis-helmtest.sh index 2c3d384bc..a3fefbacc 100755 --- a/scripts/travis-helmtest.sh +++ b/scripts/travis-helmtest.sh @@ -21,6 +21,6 @@ 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 #cleanup -scripts/install-helm.sh cleanup-cephcsi +scripts/install-helm.sh cleanup-cephcsi ${NAMESPACE} scripts/install-helm.sh clean sudo scripts/minikube.sh clean