Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clarify vSphere CSI driver docs #7685

Merged
merged 3 commits into from
Feb 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ After finishing the task, make sure you resume the cluster reconciliation by rem
kubectl annotate clusters.anywhere.eks.amazonaws.com ${CLUSTER_NAME} -n ${CLUSTER_NAMESPACE} anywhere.eks.amazonaws.com/paused-
```

>**_NOTE (vSphere only):_** If you are upgrading a vSphere cluster created using EKS Anywhere version prior to `v0.16.0` that has the vSphere CSI Driver installed in it, please refer to the additional steps listed [here]({{< relref "../storage/vsphere-storage#csi-driver-cleanup-for-upgrades" >}}) before attempting an upgrade.
>**_NOTE (vSphere only):_** If you are upgrading a vSphere cluster created using EKS Anywhere version prior to `v0.16.0` that has the vSphere CSI Driver installed in it, please refer to the additional steps listed [here]({{< relref "../storage/vsphere-storage#vsphere-csi-driver-cleanup-for-upgrades" >}}) before attempting an upgrade.

### Upgradeable Cluster Attributes
EKS Anywhere `upgrade` supports upgrading more than just the `kubernetesVersion`,
Expand Down
22 changes: 10 additions & 12 deletions docs/content/en/docs/clustermgmt/storage/vsphere-storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,21 @@ description: >
Managing storage on vSphere
---

EKS Anywhere clusters running on vSphere can leverage the vSphere Container Storage Plug-in (also called the vSphere CSI Driver) for dynamic provisioning of persistent storage volumes on vSphere storage infrastructure. The CSI Driver integrates with the Cloud Native Storage (CNS) component in vCenter for the purpose of volume provisioning via vSAN, attaching and detaching volumes to/from VMs, mounting, formatting, and unmounting volumes on/from pods, snapshots, cloning, dynamic volume expansion, etc.
EKS Anywhere clusters running on vSphere can leverage the vSphere Container Storage Plug-in (also called the [vSphere CSI Driver](https://github.com/kubernetes-sigs/vsphere-csi-driver)) for dynamic provisioning of persistent storage volumes on vSphere storage infrastructure. The CSI Driver integrates with the Cloud Native Storage (CNS) component in vCenter for the purpose of volume provisioning via vSAN, attaching and detaching volumes to/from VMs, mounting, formatting, and unmounting volumes on/from pods, snapshots, cloning, dynamic volume expansion, etc.

### vSphere CSI Driver Deprecation
### Bundled vSphere CSI Driver Removal

EKS Anywhere versions prior to `v0.16.0` supported the installation and management of the vSphere CSI Driver in EKS-A clusters. The CSI management components in EKS-A included a Kubernetes CSI controller Deployment, a node-driver-registrar DaemonSet, a default Storage Class, and a number of related Secrets and RBAC entities.
EKS Anywhere versions prior to `v0.16.0` included built-in installation and management of the vSphere CSI Driver in EKS Anywhere clusters. The vSphere CSI driver components in EKS Anywhere included a Kubernetes CSI controller Deployment, a node-driver-registrar DaemonSet, a default Storage Class, and a number of related Secrets and RBAC entities.

In EKS-A version `v0.16.0`, the CSI driver feature was deprecated as part of cluster creation and has been completely removed in version `v0.17.0`. However, you may self-manage this deployment to make use of the storage options provided by vSphere in a Kubernetes-native way.
In EKS Anywhere version `v0.16.0`, the built-in vSphere CSI driver feature was deprecated and was removed in EKS Anywhere version `v0.17.0`. You can still use the vSphere CSI driver with EKS Anywhere to make use of the storage options provided by vSphere in a Kubernetes-native way, but you must manage the installation and operation of the vSphere CSI driver on your EKS Anywhere clusters.

### CSI Driver Cleanup for Upgrades
Refer to the [vSphere CSI Driver documentation](https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in) for the self-managed installation and management procedure. Refer to these [compatibiltiy matrices](https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in/3.0/vmware-vsphere-csp-getting-started/GUID-D4AAD99E-9128-40CE-B89C-AD451DA8379D.html) to determine the correct version of the vSphere CSI Driver for the Kubernetes version and vSphere version you are running with EKS Anywhere.

If you are using EKS-A version `v0.16.0` and above to upgrade a cluster that has the vSphere CSI Driver installed in it, follow the below steps for proper cleanup of unmanaged vSphere CSI resources.
### vSphere CSI Driver Cleanup for Upgrades

These are the resources you would need to delete from your cluster:
If you are using an EKS Anywhere version `v0.16.0` or below, you must remove the EKS Anywhere-managed version of the vSphere CSI driver prior to upgrading to EKS Anywhere version `v0.17.0` or later. You do not need to run these steps if you are not using the EKS Anywhere-managed version of the vSphere CSI driver. If you are self-managing your vSphere CSI driver installation, it will persist through EKS Anywhere upgrades.

See below for instructions on how to remove the EKS Anywhere vSphere CSI driver objects. You must delete the DaemonSet and Deployment first, as they rely on the other resources.

#### `default` namespace
* `vsphere-csi-controller-role` (kind: `ClusterRole`)
Expand Down Expand Up @@ -57,8 +59,4 @@ These are the resources you would need to delete from your cluster:
* `<cluster-name>-csi` (kind: `ClusterResourceSet`)
```bash
kubectl delete clusterresourceset <cluster-name>-csi -n eksa-system
```

>**_NOTE:_** Delete the `DaemonSet` and `Deployment` first, as they rely on the other resources.

Once these resources have been removed, you can refer to the [vSphere CSI Driver documentation](https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in) for the installation and management procedure. Please refer to these [compatibiltiy matrices](https://docs.vmware.com/en/VMware-vSphere-Container-Storage-Plug-in/3.0/vmware-vsphere-csp-getting-started/GUID-D4AAD99E-9128-40CE-B89C-AD451DA8379D.html) to determine the correct version of the CSI Driver for the Kubernetes version and vSphere version you are running.
```
2 changes: 1 addition & 1 deletion docs/content/en/docs/whatsnew/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ ManageForeignRoutingPolicyRules=no
- CloudStack control plane host port is only defaulted in CAPI objects if not provided. ([#5792](https://github.com/aws/eks-anywhere/pull/5792)) ([#5736](https://github.com/aws/eks-anywhere/pull/5736))

### Deprecated
- Add warning to deprecate disableCSI through CLI ([#5918](https://github.com/aws/eks-anywhere/pull/5918)). Refer to the [deprecation section]({{< relref "../clustermgmt/storage/vsphere-storage/#vsphere-csi-driver-deprecation" >}}) in the vSphere provider documentation for more information.
- Add warning to deprecate disableCSI through CLI ([#5918](https://github.com/aws/eks-anywhere/pull/5918)). Refer to the [deprecation section]({{< relref "../clustermgmt/storage/vsphere-storage/#bundled-vsphere-csi-driver-removal" >}}) in the vSphere provider documentation for more information.

### Removed
- Kubernetes 1.22 support
Expand Down