From 96400d696aa9975801d1f7996dcafbe7eef83d6a Mon Sep 17 00:00:00 2001 From: Ratnadeep Debnath Date: Tue, 28 Aug 2018 20:09:19 +0530 Subject: [PATCH 1/2] Update Jenkinsfile and other scripts to set k8s 1.8 as the min reqd version. Signed-off-by: Ratnadeep Debnath --- Jenkinsfile | 1 - tests/scripts/kubeadm-install.sh | 20 -------------------- tests/scripts/kubeadm.sh | 1 - tests/scripts/minikube.sh | 19 +++---------------- 4 files changed, 3 insertions(+), 38 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index de0ad5b84..97cc483d2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -67,7 +67,6 @@ pipeline { stash name: 'repo-amd64',includes: 'ceph-amd64.tar,cockroachdb-amd64.tar,nfs-amd64.tar,build/common.sh,_output/tests/linux_amd64/,_output/charts/,tests/scripts/' script{ def data = [ - "aws_1.7.x": "v1.7.11", "aws_1.8.x": "v1.8.5", "gce_1.9.x": "v1.9.9", "aws_1.10.x": "v1.10.5", diff --git a/tests/scripts/kubeadm-install.sh b/tests/scripts/kubeadm-install.sh index 04b2d140a..0959a39f6 100755 --- a/tests/scripts/kubeadm-install.sh +++ b/tests/scripts/kubeadm-install.sh @@ -9,26 +9,6 @@ KUBE_INSTALL_VERSION="${KUBE_VERSION/v/$null_str}"-00 # Disabling swap when installing k8s 1.8.x via kubeadm sudo swapoff -a -# init flexvolume -if [[ $KUBE_VERSION == v1.7* ]] ; -then - sudo mkdir -p /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook - cat << EOF | sudo tee -a /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook/rook -#!/bin/bash -echo -ne '{"status": "Success", "capabilities": {"attach": false}}' >&1 -exit 0 -EOF - sudo chmod +x /usr/libexec/kubernetes/kubelet-plugins/volume/exec/rook.io~rook/rook - - sudo mkdir -p /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ceph.rook.io~rook - cat << EOF | sudo tee -a /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ceph.rook.io~rook/rook -#!/bin/bash -echo -ne '{"status": "Success", "capabilities": {"attach": false}}' >&1 -exit 0 -EOF - sudo chmod +x /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ceph.rook.io~rook/rook -fi - wait_for_dpkg_unlock() { #wait for dpkg lock to disappear. retry=0 diff --git a/tests/scripts/kubeadm.sh b/tests/scripts/kubeadm.sh index 203c6cd79..6c5515fe8 100755 --- a/tests/scripts/kubeadm.sh +++ b/tests/scripts/kubeadm.sh @@ -11,7 +11,6 @@ usage(){ echo "usage:" >&2 echo " $0 up " >&2 echo " $0 install master" >&2 - echo " $0 install node --token : (for k8s 1.7 and older)" >&2 echo " $0 install node --token : --discovery-token-ca-cert-hash sha256:" >&2 echo " $0 wait " >&2 echo " $0 clean" >&2 diff --git a/tests/scripts/minikube.sh b/tests/scripts/minikube.sh index 58a3c7ab5..672bee946 100755 --- a/tests/scripts/minikube.sh +++ b/tests/scripts/minikube.sh @@ -121,22 +121,9 @@ MEMORY=${MEMORY:-"3000"} case "${1:-}" in up) # Use kubeadm bootstrapper for 1.8+ since localkube was deprecated in 1.8 - if [[ $KUBE_VERSION == v1.7* ]] ; then - echo "starting minikube with localkube bootstrapper" - minikube start --memory="${MEMORY}" -b localkube --kubernetes-version "${KUBE_VERSION}" --extra-config=apiserver.Authorization.Mode=RBAC - wait_for_ssh - enable_roles_for_RBAC - echo "initializing flexvolume for ceph.rook.io" - init_flexvolume ceph.rook.io - echo "initializing flexvolume for rook.io" - init_flexvolume rook.io - echo "restarting minikube" - minikube start --memory="${MEMORY}" -b localkube --kubernetes-version "${KUBE_VERSION}" --extra-config=apiserver.Authorization.Mode=RBAC - else - echo "starting minikube with kubeadm bootstrapper" - minikube start --memory="${MEMORY}" -b kubeadm --kubernetes-version "${KUBE_VERSION}" - wait_for_ssh - fi + echo "starting minikube with kubeadm bootstrapper" + minikube start --memory="${MEMORY}" -b kubeadm --kubernetes-version "${KUBE_VERSION}" + wait_for_ssh # create a link so the default dataDirHostPath will work for this environment minikube ssh "sudo mkdir -p /mnt/sda1/${PWD}; sudo mkdir -p $(dirname $PWD); sudo ln -s /mnt/sda1/${PWD} $(dirname $PWD)/" minikube ssh "sudo mkdir /mnt/sda1/var/lib/rook;sudo ln -s /mnt/sda1/var/lib/rook /var/lib/rook" From 5dfd012c7778442c59d59e433b301486e728beb1 Mon Sep 17 00:00:00 2001 From: Ratnadeep Debnath Date: Tue, 28 Aug 2018 20:10:12 +0530 Subject: [PATCH 2/2] Updated docs about setting k8s 1.8 as the min reqd version. Signed-off-by: Ratnadeep Debnath --- Documentation/ceph-quickstart.md | 10 +--------- Documentation/helm-operator.md | 2 +- Documentation/k8s-pre-reqs.md | 2 +- Documentation/upgrade.md | 8 -------- PendingReleaseNotes.md | 2 ++ tests/README.md | 4 ++-- 6 files changed, 7 insertions(+), 21 deletions(-) diff --git a/Documentation/ceph-quickstart.md b/Documentation/ceph-quickstart.md index b0d27f717..57643a913 100644 --- a/Documentation/ceph-quickstart.md +++ b/Documentation/ceph-quickstart.md @@ -11,7 +11,7 @@ from other pods running in your cluster. ## Minimum Version -Kubernetes **v1.7** or higher is supported by Rook. +Kubernetes **v1.8** or higher is supported by Rook. ## Prerequisites @@ -44,14 +44,6 @@ kubectl -n rook-ceph-system get pod You can also deploy the operator with the [Rook Helm Chart](helm-operator.md). ---- -### **Restart Kubelet** -**(K8S 1.7.x only)** - -For versions of Kubernetes prior to 1.8, the Kubelet process on all nodes will require a restart after the Rook operator and Rook agents have been deployed. As part of their initial setup, the Rook agents deploy and configure a Flexvolume plugin in order to integrate with Kubernetes' volume controller framework. In Kubernetes v1.8+, the [dynamic Flexvolume plugin discovery](https://github.com/kubernetes/community/blob/master/contributors/devel/flexvolume.md#dynamic-plugin-discovery) will find and initialize our plugin, but in older versions of Kubernetes a manual restart of the Kubelet will be required. - ---- - ## Create a Rook Cluster Now that the Rook operator, agent, and discover pods are running, we can create the Rook cluster. For the cluster to survive reboots, diff --git a/Documentation/helm-operator.md b/Documentation/helm-operator.md index 8f828e742..45751b5bf 100644 --- a/Documentation/helm-operator.md +++ b/Documentation/helm-operator.md @@ -14,7 +14,7 @@ This chart bootstraps a [rook-ceph-operator](https://github.com/rook/rook) deplo ## Prerequisites -- Kubernetes 1.7+ +- Kubernetes 1.8+ ### RBAC diff --git a/Documentation/k8s-pre-reqs.md b/Documentation/k8s-pre-reqs.md index eed002bfa..b29015ddb 100644 --- a/Documentation/k8s-pre-reqs.md +++ b/Documentation/k8s-pre-reqs.md @@ -9,7 +9,7 @@ Rook can be installed on any existing Kubernetes clusters as long as it meets th ## Minimum Version -Kubernetes v1.7 or higher is supported by Rook. +Kubernetes v1.8 or higher is supported by Rook. ## Privileges and RBAC diff --git a/Documentation/upgrade.md b/Documentation/upgrade.md index 50463f4a8..050e100d1 100644 --- a/Documentation/upgrade.md +++ b/Documentation/upgrade.md @@ -409,14 +409,6 @@ kubectl -n rook get pod -l app=rook-ceph-mds -o jsonpath='{range .items[*]}{.met ## Completion At this point, your Rook cluster should be fully upgraded to running version `rook/ceph:v0.8.0` and the cluster should be healthy according to the steps in the [health verification section](#health-verification). -## Upgrading Kubernetes -Rook cluster installations on Kubernetes prior to version 1.7.x, use [ThirdPartyResource](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-third-party-resource/) that have been deprecated as of 1.7 and removed in 1.8. If upgrading your Kubernetes cluster Rook TPRs have to be migrated to CustomResourceDefinition (CRD) following [Kubernetes documentation](https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/). Rook TPRs that require migration during upgrade are: -- Cluster -- Pool -- ObjectStore -- Filesystem -- VolumeAttachment - ## Appendix: Upgrading a Build from Master As previously mentioned, it is not recommended to run builds from master since they can change and be otherwise incompatible with the official releases. diff --git a/PendingReleaseNotes.md b/PendingReleaseNotes.md index e6f37f900..111485328 100644 --- a/PendingReleaseNotes.md +++ b/PendingReleaseNotes.md @@ -9,10 +9,12 @@ - Ceph OSDs will be automatically updated by the operator when there is a change to the operator version or when the OSD configuration changes. See the [OSD upgrade notes](Documentation/upgrade-patch.md#object-storage-daemons-osds). - Rook Ceph block storage provisioner can now correctly create erasure coded block images. See [Advanced Example: Erasure Coded Block Storage](Documentation/block.md#advanced-example-erasure-coded-block-storage) for an example usage. - [Network File System (NFS)](https://github.com/nfs-ganesha/nfs-ganesha/wiki) is now supported by Rook with a new operator to deploy and manage this widely used server. NFS servers can be automatically deployed by creating an instance of the new `nfsservers.nfs.rook.io` custom resource. See the [NFS server user guide](Documentation/nfs.md) to get started with NFS. +- The minimum version of Kubernetes supported by Rook changed from `1.7` to `1.8`. ## Breaking Changes - The Rook container images are no longer published to quay.io, they are published only to Docker Hub. All manifests have referenced Docker Hub for multiple releases now, so we do not expect any directly affected users from this change. +- Rook no longer supports kubernetes `1.7`. Users running Kubernetes `1.7` on their clusters are recommended to upgrade to Kubernetes `1.8` or higher. If you are using `kubeadm`, you can follow this [guide](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-8/) to from Kubernetes `1.7` to `1.8`. If you are using `kops` or `kubespray` for managing your Kubernetes cluster, just follow the respective projects' `upgrade` guide. ## Known Issues diff --git a/tests/README.md b/tests/README.md index f8ddc8b15..78ee669ad 100644 --- a/tests/README.md +++ b/tests/README.md @@ -19,7 +19,7 @@ You can choose any Kubernetes flavor of your choice. The test framework only de The framework also provides scripts to install Kubernetes. There are two scripts to start the cluster: 1. **Minikube** (recommended for MacOS): Run [minikube.sh](/tests/scripts/minikube.sh) to setup a single-node Minikube Kubernetes. 1. Minikube v0.21.0 and higher is supported. Older minikube versions do not have cephfs or rbd tools installed. - 1. If using Kubernetes v1.7.3 or higher, then Minikube v0.22.2 or higher is required. + 1. If using Kubernetes v1.8 or higher, then Minikube v0.23.0 or higher is required. 1. **Kubeadm** (recommended for Ubuntu): run [kubeadm.sh](/tests/scripts/kubeadm.sh) to setup a single-node K8s cluster using kubeadm #### Minikube (recommended for MacOS) @@ -97,7 +97,7 @@ In addition to standard go tests parameters, the following custom parameters are | Parameter | Description | Possible values | Default | | ----------------- | -------------------------------------------- | ---------------- | ----------------- | | rook_platform | platform Rook needs to be installed on | kubernetes | kubernetes | -| k8s_version | version of Kubernetes to be installed | v1.7+ | v1.8.5 | +| k8s_version | version of Kubernetes to be installed | v1.8+ | v1.8.5 | | rook_image | Rook image name to be installed | valid image name | rook/ceph | | toolbox_image | toolbox image name to be installed | valid image name | rook/ceph-toolbox | | skip_install_rook | skips installing Rook (if already installed) | true or false | false |