diff --git a/README.md b/README.md index 32943c7b2..660edb05c 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,6 @@ Note: - [metallb](https://metallb.universe.tf/) 0.13.9 - [registry](https://github.com/distribution/distribution) 2.8.1 - Storage Plugin - - [rbd-provisioner](https://github.com/kubernetes-incubator/external-storage) 2.1.1-k8s1.11 - [aws-ebs-csi-plugin](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 0.5.0 - [azure-csi-plugin](https://github.com/kubernetes-sigs/azuredisk-csi-driver) 1.10.0 - [cinder-csi-plugin](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md) 1.30.0 diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 8400edcb3..b213c514e 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -53,7 +53,6 @@ * [Vagrant](/docs/developers/vagrant.md) * External Storage Provisioners * [Local Volume Provisioner](/docs/external_storage_provisioners/local_volume_provisioner.md) - * [Rbd Provisioner](/docs/external_storage_provisioners/rbd_provisioner.md) * [Scheduler Plugins](/docs/external_storage_provisioners/scheduler_plugins.md) * Getting Started * [Comparisons](/docs/getting_started/comparisons.md) diff --git a/docs/ansible/ansible.md b/docs/ansible/ansible.md index eb960821a..f1dd88d96 100644 --- a/docs/ansible/ansible.md +++ b/docs/ansible/ansible.md @@ -146,7 +146,6 @@ The following tags are defined in playbooks: | registry | Configuring local docker registry | | reset | Tasks running doing the node reset | | resolvconf | Configuring /etc/resolv.conf for hosts/apps | -| rbd-provisioner | Configure External provisioner: rdb | | services | Remove services (etcd, kubelet etc...) when resetting | | snapshot | Enabling csi snapshot | | snapshot-controller | Configuring csi snapshot controller | diff --git a/docs/external_storage_provisioners/rbd_provisioner.md b/docs/external_storage_provisioners/rbd_provisioner.md deleted file mode 100644 index 02d3fa32b..000000000 --- a/docs/external_storage_provisioners/rbd_provisioner.md +++ /dev/null @@ -1,79 +0,0 @@ -# RBD Volume Provisioner for Kubernetes 1.5+ - -`rbd-provisioner` is an out-of-tree dynamic provisioner for Kubernetes 1.5+. -You can use it quickly & easily deploy ceph RBD storage that works almost -anywhere. - -It works just like in-tree dynamic provisioner. For more information on how -dynamic provisioning works, see [the docs](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) -or [this blog post](http://blog.kubernetes.io/2016/10/dynamic-provisioning-and-storage-in-kubernetes.html). - -## Development - -Compile the provisioner - -```console -make -``` - -Make the container image and push to the registry - -```console -make push -``` - -## Test instruction - -* Start Kubernetes local cluster - -See [Kubernetes](https://kubernetes.io/). - -* Create a Ceph admin secret - -```bash -ceph auth get client.admin 2>&1 |grep "key = " |awk '{print $3'} |xargs echo -n > /tmp/secret -kubectl create secret generic ceph-admin-secret --from-file=/tmp/secret --namespace=kube-system -``` - -* Create a Ceph pool and a user secret - -```bash -ceph osd pool create kube 8 8 -ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=kube' -ceph auth get-key client.kube > /tmp/secret -kubectl create secret generic ceph-secret --from-file=/tmp/secret --namespace=kube-system -``` - -* Start RBD provisioner - -The following example uses `rbd-provisioner-1` as the identity for the instance and assumes kubeconfig is at `/root/.kube`. The identity should remain the same if the provisioner restarts. If there are multiple provisioners, each should have a different identity. - -```bash -docker run -ti -v /root/.kube:/kube -v /var/run/kubernetes:/var/run/kubernetes --privileged --net=host quay.io/external_storage/rbd-provisioner /usr/local/bin/rbd-provisioner -master=http://127.0.0.1:8080 -kubeconfig=/kube/config -id=rbd-provisioner-1 -``` - -Alternatively, deploy it in kubernetes, see [deployment](deploy/README.md). - -* Create a RBD Storage Class - -Replace Ceph monitor's IP in [examples/class.yaml](examples/class.yaml) with your own and create storage class: - -```bash -kubectl create -f examples/class.yaml -``` - -* Create a claim - -```bash -kubectl create -f examples/claim.yaml -``` - -* Create a Pod using the claim - -```bash -kubectl create -f examples/test-pod.yaml -``` - -## Acknowledgements - -* This provisioner is extracted from [Kubernetes core](https://github.com/kubernetes/kubernetes) with some modifications for this project. diff --git a/inventory/sample/group_vars/k8s_cluster/addons.yml b/inventory/sample/group_vars/k8s_cluster/addons.yml index c964bf1d0..048d710a7 100644 --- a/inventory/sample/group_vars/k8s_cluster/addons.yml +++ b/inventory/sample/group_vars/k8s_cluster/addons.yml @@ -65,25 +65,6 @@ local_volume_provisioner_enabled: false # csi snapshot namespace # snapshot_controller_namespace: kube-system -# RBD provisioner deployment -rbd_provisioner_enabled: false -# rbd_provisioner_namespace: rbd-provisioner -# rbd_provisioner_replicas: 2 -# rbd_provisioner_monitors: "172.24.0.1:6789,172.24.0.2:6789,172.24.0.3:6789" -# rbd_provisioner_pool: kube -# rbd_provisioner_admin_id: admin -# rbd_provisioner_secret_name: ceph-secret-admin -# rbd_provisioner_secret: ceph-key-admin -# rbd_provisioner_user_id: kube -# rbd_provisioner_user_secret_name: ceph-secret-user -# rbd_provisioner_user_secret: ceph-key-user -# rbd_provisioner_user_secret_namespace: rbd-provisioner -# rbd_provisioner_fs_type: ext4 -# rbd_provisioner_image_format: "2" -# rbd_provisioner_image_features: layering -# rbd_provisioner_storage_class: rbd -# rbd_provisioner_reclaim_policy: Delete - # Gateway API CRDs gateway_api_enabled: false # gateway_api_experimental_channel: false diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index c16fe1bec..39939ff52 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -48,13 +48,6 @@ name: "{{ inventory_hostname }}" when: override_system_hostname -- name: Install ceph-commmon package - package: - name: - - ceph-common - state: present - when: rbd_provisioner_enabled | default(false) - - name: Ensure bash_completion.d folder exists file: name: /etc/bash_completion.d/ diff --git a/roles/kubernetes-apps/external_provisioner/meta/main.yml b/roles/kubernetes-apps/external_provisioner/meta/main.yml index 19123d76e..3269f822b 100644 --- a/roles/kubernetes-apps/external_provisioner/meta/main.yml +++ b/roles/kubernetes-apps/external_provisioner/meta/main.yml @@ -9,12 +9,6 @@ dependencies: - local-volume-provisioner - external-provisioner - - role: kubernetes-apps/external_provisioner/rbd_provisioner - when: rbd_provisioner_enabled - tags: - - apps - - rbd-provisioner - - external-provisioner - role: kubernetes-apps/external_provisioner/local_path_provisioner when: local_path_provisioner_enabled tags: diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/defaults/main.yml b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/defaults/main.yml deleted file mode 100644 index f09e25ac0..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/defaults/main.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -rbd_provisioner_namespace: "rbd-provisioner" -rbd_provisioner_replicas: 2 -rbd_provisioner_monitors: ~ -rbd_provisioner_pool: kube -rbd_provisioner_admin_id: admin -rbd_provisioner_secret_name: ceph-secret-admin -rbd_provisioner_secret: ceph-key-admin -rbd_provisioner_user_id: kube -rbd_provisioner_user_secret_name: ceph-secret-user -rbd_provisioner_user_secret: ceph-key-user -rbd_provisioner_user_secret_namespace: rbd-provisioner -rbd_provisioner_fs_type: ext4 -rbd_provisioner_image_format: "2" -rbd_provisioner_image_features: layering -rbd_provisioner_storage_class: rbd -rbd_provisioner_reclaim_policy: Delete diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/tasks/main.yml b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/tasks/main.yml deleted file mode 100644 index 0a1f5b2e2..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/tasks/main.yml +++ /dev/null @@ -1,71 +0,0 @@ ---- - -- name: RBD Provisioner | Remove legacy addon dir and manifests - file: - path: "{{ kube_config_dir }}/addons/rbd_provisioner" - state: absent - when: - - inventory_hostname == groups['kube_control_plane'][0] - tags: - - upgrade - -- name: RBD Provisioner | Remove legacy namespace - command: > - {{ kubectl }} delete namespace {{ rbd_provisioner_namespace }} - ignore_errors: true # noqa ignore-errors - when: - - inventory_hostname == groups['kube_control_plane'][0] - tags: - - upgrade - -- name: RBD Provisioner | Remove legacy storageclass - command: > - {{ kubectl }} delete storageclass {{ rbd_provisioner_storage_class }} - ignore_errors: true # noqa ignore-errors - when: - - inventory_hostname == groups['kube_control_plane'][0] - tags: - - upgrade - -- name: RBD Provisioner | Create addon dir - file: - path: "{{ kube_config_dir }}/addons/rbd_provisioner" - state: directory - owner: root - group: root - mode: "0755" - when: - - inventory_hostname == groups['kube_control_plane'][0] - -- name: RBD Provisioner | Templates list - set_fact: - rbd_provisioner_templates: - - { name: 00-namespace, file: 00-namespace.yml, type: ns } - - { name: secret-rbd-provisioner, file: secret-rbd-provisioner.yml, type: secret } - - { name: sa-rbd-provisioner, file: sa-rbd-provisioner.yml, type: sa } - - { name: clusterrole-rbd-provisioner, file: clusterrole-rbd-provisioner.yml, type: clusterrole } - - { name: clusterrolebinding-rbd-provisioner, file: clusterrolebinding-rbd-provisioner.yml, type: clusterrolebinding } - - { name: role-rbd-provisioner, file: role-rbd-provisioner.yml, type: role } - - { name: rolebinding-rbd-provisioner, file: rolebinding-rbd-provisioner.yml, type: rolebinding } - - { name: deploy-rbd-provisioner, file: deploy-rbd-provisioner.yml, type: deploy } - - { name: sc-rbd-provisioner, file: sc-rbd-provisioner.yml, type: sc } - -- name: RBD Provisioner | Create manifests - template: - src: "{{ item.file }}.j2" - dest: "{{ kube_config_dir }}/addons/rbd_provisioner/{{ item.file }}" - mode: "0644" - with_items: "{{ rbd_provisioner_templates }}" - register: rbd_provisioner_manifests - when: inventory_hostname == groups['kube_control_plane'][0] - -- name: RBD Provisioner | Apply manifests - kube: - name: "{{ item.item.name }}" - namespace: "{{ rbd_provisioner_namespace }}" - kubectl: "{{ bin_dir }}/kubectl" - resource: "{{ item.item.type }}" - filename: "{{ kube_config_dir }}/addons/rbd_provisioner/{{ item.item.file }}" - state: "latest" - with_items: "{{ rbd_provisioner_manifests.results }}" - when: inventory_hostname == groups['kube_control_plane'][0] diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/00-namespace.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/00-namespace.yml.j2 deleted file mode 100644 index 8bec2b5eb..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/00-namespace.yml.j2 +++ /dev/null @@ -1,7 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: {{ rbd_provisioner_namespace }} - labels: - name: {{ rbd_provisioner_namespace }} diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/clusterrole-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/clusterrole-rbd-provisioner.yml.j2 deleted file mode 100644 index 9e319a348..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/clusterrole-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,26 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["create", "update", "patch"] - - apiGroups: [""] - resources: ["services"] - resourceNames: ["kube-dns","coredns"] - verbs: ["list", "get"] - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "create", "delete"] diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/clusterrolebinding-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/clusterrolebinding-rbd-provisioner.yml.j2 deleted file mode 100644 index ae9e6c525..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/clusterrolebinding-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: rbd-provisioner -subjects: - - kind: ServiceAccount - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} -roleRef: - kind: ClusterRole - name: rbd-provisioner - apiGroup: rbac.authorization.k8s.io diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/deploy-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/deploy-rbd-provisioner.yml.j2 deleted file mode 100644 index b8643db64..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/deploy-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} - labels: - app: rbd-provisioner - version: {{ rbd_provisioner_image_tag }} -spec: - replicas: {{ rbd_provisioner_replicas }} - strategy: - type: Recreate - selector: - matchLabels: - app: rbd-provisioner - version: {{ rbd_provisioner_image_tag }} - template: - metadata: - labels: - app: rbd-provisioner - version: {{ rbd_provisioner_image_tag }} - spec: - priorityClassName: {% if rbd_provisioner_namespace == 'kube-system' %}system-cluster-critical{% else %}k8s-cluster-critical{% endif %}{{ '' }} - serviceAccount: rbd-provisioner - containers: - - name: rbd-provisioner - image: {{ rbd_provisioner_image_repo }}:{{ rbd_provisioner_image_tag }} - imagePullPolicy: {{ k8s_image_pull_policy }} - env: - - name: PROVISIONER_NAME - value: ceph.com/rbd - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - command: - - "/usr/local/bin/rbd-provisioner" - args: - - "-id=${POD_NAME}" diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/role-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/role-rbd-provisioner.yml.j2 deleted file mode 100644 index d8dbbf990..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/role-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get"] - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["get", "list", "watch", "create", "update", "patch"] diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/rolebinding-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/rolebinding-rbd-provisioner.yml.j2 deleted file mode 100644 index fcae1cce0..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/rolebinding-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,14 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} -subjects: - - kind: ServiceAccount - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: rbd-provisioner diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/sa-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/sa-rbd-provisioner.yml.j2 deleted file mode 100644 index c4dce6450..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/sa-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,6 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: rbd-provisioner - namespace: {{ rbd_provisioner_namespace }} diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/sc-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/sc-rbd-provisioner.yml.j2 deleted file mode 100644 index 9fea17a94..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/sc-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,19 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ rbd_provisioner_storage_class }} -provisioner: ceph.com/rbd -reclaimPolicy: {{ rbd_provisioner_reclaim_policy }} -parameters: - monitors: {{ rbd_provisioner_monitors }} - adminId: {{ rbd_provisioner_admin_id }} - adminSecretNamespace: {{ rbd_provisioner_namespace }} - adminSecretName: {{ rbd_provisioner_secret_name }} - pool: {{ rbd_provisioner_pool }} - userId: {{ rbd_provisioner_user_id }} - userSecretNamespace: {{ rbd_provisioner_user_secret_namespace }} - userSecretName: {{ rbd_provisioner_user_secret_name }} - fsType: "{{ rbd_provisioner_fs_type }}" - imageFormat: "{{ rbd_provisioner_image_format }}" - imageFeatures: {{ rbd_provisioner_image_features }} diff --git a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/secret-rbd-provisioner.yml.j2 b/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/secret-rbd-provisioner.yml.j2 deleted file mode 100644 index a3b66d634..000000000 --- a/roles/kubernetes-apps/external_provisioner/rbd_provisioner/templates/secret-rbd-provisioner.yml.j2 +++ /dev/null @@ -1,18 +0,0 @@ ---- -kind: Secret -apiVersion: v1 -metadata: - name: {{ rbd_provisioner_secret_name }} - namespace: {{ rbd_provisioner_namespace }} -type: Opaque -data: - secret: {{ rbd_provisioner_secret | b64encode }} ---- -kind: Secret -apiVersion: v1 -metadata: - name: {{ rbd_provisioner_user_secret_name }} - namespace: {{ rbd_provisioner_user_secret_namespace }} -type: Opaque -data: - key: {{ rbd_provisioner_user_secret | b64encode }} diff --git a/roles/kubernetes/preinstall/tasks/0040-verify-settings.yml b/roles/kubernetes/preinstall/tasks/0040-verify-settings.yml index 4a9792ba6..26c1233f1 100644 --- a/roles/kubernetes/preinstall/tasks/0040-verify-settings.yml +++ b/roles/kubernetes/preinstall/tasks/0040-verify-settings.yml @@ -36,7 +36,6 @@ - not metrics_server_version.startswith('v') - not multus_version.startswith('v') - not netcheck_version.startswith('v') - - not rbd_provisioner_version.startswith('v') - not runc_version.startswith('v') - not skopeo_version.startswith('v') - not yq_version.startswith('v') diff --git a/roles/kubespray-defaults/defaults/main/download.yml b/roles/kubespray-defaults/defaults/main/download.yml index 1c20a0130..8a9b2d197 100644 --- a/roles/kubespray-defaults/defaults/main/download.yml +++ b/roles/kubespray-defaults/defaults/main/download.yml @@ -314,9 +314,6 @@ metrics_server_image_tag: "v{{ metrics_server_version }}" local_volume_provisioner_version: "2.5.0" local_volume_provisioner_image_repo: "{{ kube_image_repo }}/sig-storage/local-volume-provisioner" local_volume_provisioner_image_tag: "v{{ local_volume_provisioner_version }}" -rbd_provisioner_version: "2.1.1-k8s1.11" -rbd_provisioner_image_repo: "{{ quay_image_repo }}/external_storage/rbd-provisioner" -rbd_provisioner_image_tag: "v{{ rbd_provisioner_version }}" local_path_provisioner_version: "0.0.24" local_path_provisioner_image_repo: "{{ docker_image_repo }}/rancher/local-path-provisioner" local_path_provisioner_image_tag: "v{{ local_path_provisioner_version }}" @@ -944,15 +941,6 @@ downloads: groups: - kube_node - rbd_provisioner: - enabled: "{{ rbd_provisioner_enabled }}" - container: true - repo: "{{ rbd_provisioner_image_repo }}" - tag: "{{ rbd_provisioner_image_tag }}" - checksum: "{{ rbd_provisioner_digest_checksum | default(None) }}" - groups: - - kube_node - local_path_provisioner: enabled: "{{ local_path_provisioner_enabled }}" container: true diff --git a/roles/kubespray-defaults/defaults/main/main.yml b/roles/kubespray-defaults/defaults/main/main.yml index 5c40d3ac8..4aa478756 100644 --- a/roles/kubespray-defaults/defaults/main/main.yml +++ b/roles/kubespray-defaults/defaults/main/main.yml @@ -435,7 +435,6 @@ vsphere_csi_enabled: false upcloud_csi_enabled: false csi_snapshot_controller_enabled: false persistent_volumes_enabled: false -rbd_provisioner_enabled: false ingress_nginx_enabled: false ingress_alb_enabled: false cert_manager_enabled: false diff --git a/scripts/readme_versions.md.j2 b/scripts/readme_versions.md.j2 index 2d58abe3f..5a6b43771 100644 --- a/scripts/readme_versions.md.j2 +++ b/scripts/readme_versions.md.j2 @@ -23,7 +23,6 @@ - [metallb](https://metallb.universe.tf/) {{ metallb_version }} - [registry](https://github.com/distribution/distribution) {{ registry_version }} - Storage Plugin - - [rbd-provisioner](https://github.com/kubernetes-incubator/external-storage) {{ rbd_provisioner_version }} - [aws-ebs-csi-plugin](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) {{ aws_ebs_csi_plugin_version }} - [azure-csi-plugin](https://github.com/kubernetes-sigs/azuredisk-csi-driver) {{ azure_csi_plugin_version }} - [cinder-csi-plugin](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md) {{ cinder_csi_plugin_version }}