From f7d7c2979a03401f1bbac06b68f0542ab7cf1bfd Mon Sep 17 00:00:00 2001 From: subhamkrai Date: Fri, 22 Jan 2021 09:35:11 +0530 Subject: [PATCH] ceph: disable admission controller for k8s older than v1.16.0 v1 version of admission controller require minimum v1.16.0 of k8s. So, this commits disable admission controller when k8s version older than v1.16.0. Signed-off-by: subhamkrai --- .../kubernetes/ceph/config-admission-controller.sh | 8 ++++++++ tests/framework/installer/ceph_installer.go | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/cluster/examples/kubernetes/ceph/config-admission-controller.sh b/cluster/examples/kubernetes/ceph/config-admission-controller.sh index 31b84837a..f4929d4af 100755 --- a/cluster/examples/kubernetes/ceph/config-admission-controller.sh +++ b/cluster/examples/kubernetes/ceph/config-admission-controller.sh @@ -4,6 +4,14 @@ BASE_DIR=$(cd "$(dirname "$0")"/../../../..; pwd) echo "$BASE_DIR" +SERVER_VERSION=$(kubectl version --short | awk -F "." '/Server Version/ {print $2}') +MINIMUM_VERSION=16 + +if [ ${SERVER_VERSION} -le ${MINIMUM_VERSION} ]; then + echo "required minimum kubernetes version 1.$MINIMUM_VERSION.0" + exit 1 +fi + if [ -f "$BASE_DIR"/tests/scripts/deploy_admission_controller.sh ];then bash "$BASE_DIR"/tests/scripts/deploy_admission_controller.sh else diff --git a/tests/framework/installer/ceph_installer.go b/tests/framework/installer/ceph_installer.go index 00b558d8d..c0894b2a2 100644 --- a/tests/framework/installer/ceph_installer.go +++ b/tests/framework/installer/ceph_installer.go @@ -126,7 +126,7 @@ func (h *CephInstaller) CreateCephOperator(namespace string) (err error) { // disable admission controller for upgrade test as api version v1 require minimum v0.7 controller runtime and upgrade test still using // older version of controller runtime. - if !utils.IsPlatformOpenShift() && namespace != "upgrade-ns-system" { + if !utils.IsPlatformOpenShift() && h.k8shelper.VersionAtLeast("v1.16.0") && namespace != "upgrade-ns-system" { err = h.startAdmissionController(namespace) if err != nil { return fmt.Errorf("Failed to start admission controllers: %v", err) @@ -518,7 +518,7 @@ func (h *CephInstaller) InstallRook(namespace, storeType string, usePVC bool, st } logger.Infof("installed rook operator and cluster : %s on k8s %s", namespace, h.k8sVersion) - if !utils.IsPlatformOpenShift() && h.k8shelper.VersionAtLeast("v1.15.0") && namespace != "upgrade-ns" { + if !utils.IsPlatformOpenShift() && h.k8shelper.VersionAtLeast("v1.16.0") && namespace != "upgrade-ns" { if !h.k8shelper.IsPodInExpectedState("rook-ceph-admission-controller", onamespace, "Running") { assert.Fail(h.T(), "admission controller is not running") } @@ -635,7 +635,7 @@ func (h *CephInstaller) UninstallRookFromMultipleNS(systemNamespace string, name checkError(h.T(), err, "cannot uninstall rook-operator") } - err = h.k8shelper.Clientset.AdmissionregistrationV1beta1().ValidatingWebhookConfigurations().Delete(ctx, "rook-ceph-webhook", metav1.DeleteOptions{}) + err = h.k8shelper.Clientset.AdmissionregistrationV1().ValidatingWebhookConfigurations().Delete(ctx, "rook-ceph-webhook", metav1.DeleteOptions{}) checkError(h.T(), err, "failed to delete webhook configuration") err = h.k8shelper.Clientset.RbacV1().RoleBindings(systemNamespace).Delete(ctx, "rook-ceph-system", metav1.DeleteOptions{}) checkError(h.T(), err, "failed to delete role binding")