Skip to content

Commit

Permalink
Common changes for Drivers and modules (#174)
Browse files Browse the repository at this point in the history
Co-authored-by: Randeep Sharma <[email protected]>
Co-authored-by: kk3 <[email protected]>
Co-authored-by: M <[email protected]>
Co-authored-by: Andrey Schipilo <[email protected]>
Co-authored-by: Hoppe, Alexander <[email protected]>
Co-authored-by: Utkarsh_Dubey <[email protected]>
Co-authored-by: Bahubali Jain <[email protected]>
  • Loading branch information
8 people authored Mar 8, 2022
1 parent d319f33 commit 809b7e5
Show file tree
Hide file tree
Showing 35 changed files with 647 additions and 353 deletions.
2 changes: 2 additions & 0 deletions content/docs/FAQ/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Please see module and the respectice CSI driver version available for each array
| Observability v1.1| ✔️ || ✔️ |||
| Replication v1.2|| ✔️ | ✔️ | ✔️ ||
| Resilency v1.1| ✔️ |||| ✔️ |
| CSM Installer v1.0|✔️ | ✔️ | ✔️ | ✔️ | ✔️ |

### What are the prerequisites for deploying Container Storage Modules?
Prerequisites can be found on the respective module deployment pages:
- [Dell Container Storage Module for Observability Deployment](../observability/deployment/#prerequisites)
Expand Down
18 changes: 9 additions & 9 deletions content/docs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ CSM is made up of multiple components including modules (enterprise capabilities

| Modules/Drivers | CSM 1.2 | [CSM 1.1](../v1/) | [CSM 1.0.1](../v1/) | [CSM 1.0](../v2/) |
| - | :-: | :-: | :-: | :-: |
| Authorization | 1.2 | 1.1 | 1.0 | 1.0 |
| Observability | 1.1 | 1.0.1 | 1.0.1 | 1.0 |
| Replication | 1.2 | 1.1 | 1.0 | 1.0 |
| Resiliency | 1.1 | 1.0.1 | 1.0.1 | 1.0 |
| CSI Driver for PowerScale | v2.2 | v2.1 | v2.0 | v2.0 |
| CSI Driver for Unity | v2.2 | v2.1 | v2.0 | v2.0 |
| CSI Driver for PowerStore | v2.2 | v2.1 | v2.0 | v2.0 |
| CSI Driver for PowerFlex | v2.2 | v2.1 | v2.0 | v2.0 |
| CSI Driver for PowerMax | v2.2 | v2.1 | v2.0 | v2.0 |
| [Authorization](https://hub.docker.com/r/dellemc/csm-authorization-sidecar) | 1.2 | 1.1 | 1.0 | 1.0 |
| [Observability](https://hub.docker.com/r/dellemc/csm-topology) | 1.1 | 1.0.1 | 1.0.1 | 1.0 |
| [Replication](https://hub.docker.com/r/dellemc/dell-csi-replicator) | 1.2 | 1.1 | 1.0 | 1.0 |
| [Resiliency](https://hub.docker.com/r/dellemc/podmon) | 1.1 | 1.0.1 | 1.0.1 | 1.0 |
| [CSI Driver for PowerScale](https://hub.docker.com/r/dellemc/csi-isilon/tags) | v2.2 | v2.1 | v2.0 | v2.0 |
| [CSI Driver for Unity](https://hub.docker.com/r/dellemc/csi-unity/tags) | v2.2 | v2.1 | v2.0 | v2.0 |
| [CSI Driver for PowerStore](https://hub.docker.com/r/dellemc/csi-powerstore/tags) | v2.2 | v2.1 | v2.0 | v2.0 |
| [CSI Driver for PowerFlex](https://hub.docker.com/r/dellemc/csi-vxflexos/tags) | v2.2 | v2.1 | v2.0 | v2.0 |
| [CSI Driver for PowerMax](https://hub.docker.com/r/dellemc/csi-powermax/tags) | v2.2 | v2.1 | v2.0 | v2.0 |
9 changes: 4 additions & 5 deletions content/docs/csidriver/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ The CSI Drivers by Dell implement an interface between [CSI](https://kubernetes-
| CentOS | 7.8, 7.9 | 7.8, 7.9 | 7.8, 7.9 | 7.8, 7.9 | 7.8, 7.9 |
| SLES | 15SP3 | 15SP3 | 15SP3 | 15SP3 | 15SP3 |
| Red Hat OpenShift | 4.8, 4.8 EUS, 4.9 | 4.8, 4.8 EUS, 4.9 | 4.8, 4.8 EUS, 4.9 | 4.8, 4.8 EUS, 4.9 | 4.8, 4.8 EUS, 4.9 |
| Mirantis Kubernetes Engine | 3.4.x | 3.4.x | 3.4.x | 3.4.x | 3.4.x |
| Mirantis Kubernetes Engine | 3.4.x | 3.4.x | 3.5.x | 3.4.x | 3.4.x |
| Google Anthos | 1.6 | 1.8 | no | 1.9 | 1.9 |
| VMware Tanzu | no | no | NFS | NFS | NFS |
| Rancher Kubernetes Engine | yes | yes | yes | yes | yes |
Expand All @@ -32,26 +32,25 @@ The CSI Drivers by Dell implement an interface between [CSI](https://kubernetes-
{{<table "table table-striped table-bordered table-sm">}}
| Features | PowerMax | PowerFlex | Unity | PowerScale | PowerStore |
|--------------------------|:--------:|:---------:|:------:|:----------:|:----------:|
| CSI Specification | v1.5 | v1.5 | v1.5 | v1.5 | v1.5 |
| Static Provisioning | yes | yes | yes | yes | yes |
| Dynamic Provisioning | yes | yes | yes | yes | yes |
| Expand Persistent Volume | yes | yes | yes | yes | yes |
| Create VolumeSnapshot | yes | yes | yes | yes | yes |
| Create Volume from Snapshot | yes | yes | yes | yes | yes |
| Delete Snapshot | yes | yes | yes | yes | yes |
| [Access Mode](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)| RWO/ROX<br><br>RWX (Raw block only) | RWO/ROX/RWOP<br><br>RWX (Raw block only) | RWO/ROX/RWOP<br><br>RWX (Raw block & NFS only) | RWO/RWX/ROX/<br>RWOP | RWO/ROX/RWOP<br><br>RWX (Raw block & NFS only) |
| [Access Mode](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)| RWO/<br>RWOP(FC/iSCSI)<br>RWO/<br>RWX/<br>ROX/<br>RWOP(Raw block) | RWO/ROX/RWOP<br><br>RWX (Raw block only) | RWO/ROX/RWOP<br><br>RWX (Raw block & NFS only) | RWO/RWX/ROX/<br>RWOP | RWO/RWOP<br>(FC/iSCSI)<br>RWO/<br>RWX/<br>ROX/<br>RWOP<br>(RawBlock, NFS) |
| CSI Volume Cloning | yes | yes | yes | yes | yes |
| CSI Raw Block Volume | yes | yes | yes | no | yes |
| CSI Ephemeral Volume | no | yes | yes | yes | yes |
| Topology | yes | yes | yes | yes | yes |
| Multi-array | yes | yes | yes | yes | yes |
| Volume Health Monitoring | no | yes | yes | yes | yes |
| Volume Health Monitoring | yes | yes | yes | yes | yes |
{{</table>}}
### Supported Storage Platforms
{{<table "table table-striped table-bordered table-sm">}}
| | PowerMax | PowerFlex | Unity | PowerScale | PowerStore |
|---------------|:-------------------------------------------------------:|:----------------:|:--------------------------:|:----------------------------------:|:----------------:|
| Storage Array |5978.479.479, 5978.711.711<br>Unisphere 9.2| 3.5.x, 3.6.x | 5.0.5, 5.0.6, 5.0.7, 5.1.0, 5.1.2 | OneFS 8.1, 8.2, 9.0, 9.1, 9.2, 9.3 | 1.0.x, 2.0.x |
| Storage Array |5978.479.479, 5978.711.711<br>Unisphere 9.2| 3.5.x, 3.6.x | 5.0.7, 5.1.0, 5.1.2 | OneFS 8.1, 8.2, 9.0, 9.1, 9.2, 9.3 | 1.0.x, 2.0.x, 2.1.x |
{{</table>}}
### Backend Storage Details
{{<table "table table-striped table-bordered table-sm">}}
Expand Down
4 changes: 2 additions & 2 deletions content/docs/csidriver/features/powerscale.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ Following are the manifests for the Volume Snapshot Class:

1. VolumeSnapshotClass
```yaml
# For kubernetes version 20 and above (v1 snaps)
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
Expand Down Expand Up @@ -542,7 +542,7 @@ For example, if a volume were to be deleted from the array, or unmounted outside
## Single Pod Access Mode for PersistentVolumes- ReadWriteOncePod (ALPHA FEATURE)
Use `ReadWriteOncePod(RWOP)` access mode if you want to ensure that only one pod across the whole cluster can read that PVC or write to it. This is only supported for CSI Driver for PowerScale 2.1.0 and Kubernetes version 1.22+.
Use `ReadWriteOncePod(RWOP)` access mode if you want to ensure that only one pod across the whole cluster can read that PVC or write to it. This is supported for CSI Driver for PowerScale 2.1.0+ and Kubernetes version 1.22+.
To use this feature, enable the ReadWriteOncePod feature gate for kube-apiserver, kube-scheduler, and kubelet, by setting command line arguments:
`--feature-gates="...,ReadWriteOncePod=true"`
Expand Down
16 changes: 11 additions & 5 deletions content/docs/csidriver/features/powerstore.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,7 @@ To create `NFS` volume you need to provide `nasName:` parameters that point to t
volumeAttributes:
size: "20Gi"
nasName: "csi-nas-name"
nfsAcls: "0777"
```

## Controller HA
Expand Down Expand Up @@ -413,7 +414,7 @@ allowedTopologies:
- "true"
```

This example matches all nodes where the driver has a connection to PowerStore with an IP of `127.0.0.1` via FibreChannel. Similar examples can be found in mentioned folder for NFS and iSCSI.
This example matches all nodes where the driver has a connection to PowerStore with an IP of `127.0.0.1` via FibreChannel. Similar examples can be found in mentioned folder for NFS, iSCSI and NVMe.

You can check what labels your nodes contain by running `kubectl get nodes --show-labels`

Expand All @@ -424,7 +425,7 @@ For any additional information about the topology, see the [Kubernetes Topology

## Reuse PowerStore hostname

The CSI PowerStore driver version 1.2 and later can automatically detect if the current node was already registered as a Host on the storage array before. It will check if Host initiators and node initiators (FC or iSCSI) match. If they do, the driver will not create a new host and will take the existing name of the Host as nodeID.
The CSI PowerStore driver version 1.2 and later can automatically detect if the current node was already registered as a Host on the storage array before. It will check if Host initiators and node initiators (FC, iSCSI or NVMe) match. If they do, the driver will not create a new host and will take the existing name of the Host as nodeID.

## Multiarray support

Expand All @@ -444,8 +445,10 @@ Create a file called `config.yaml` and populate it with the following content
password: "password" # password for connecting to API
skipCertificateValidation: true # use insecure connection or not
default: true # treat current array as a default (would be used by storage classes without arrayIP parameter)
blockProtocol: "ISCSI" # what SCSI transport protocol use on node side (FC, ISCSI, None, or auto)
nasName: "nas-server" # what NAS must be used for NFS volumes
blockProtocol: "ISCSI" # what transport protocol use on node side (FC, ISCSI, NVMeTCP, None, or auto)
nasName: "nas-server" # what NAS must be used for NFS volumes
nfsAcls: "0777" # (Optional) defines permissions - POSIX mode bits or NFSv4 ACLs, to be set on NFS target mount directory.
# NFSv4 ACls are supported for NFSv4 shares on NFSv4 enabled NAS servers only. POSIX ACLs are not supported and only POSIX mode bits are supported for NFSv3 shares.
- endpoint: "https://10.0.0.2/api/rest"
globalID: "unique"
username: "user"
Expand Down Expand Up @@ -639,7 +642,7 @@ spec:

>Note: The access mode ReadWriteOnce allows multiple pods to access a single volume within a single worker node and the behavior is consistent across all supported Kubernetes versions.
## POSIX and NFSv4 ACLs
## POSIX mode bits and NFSv4 ACLs

CSI PowerStore driver version 2.2.0 and later allows users to set user-defined permissions on NFS target mount directory using POSIX mode bits or NFSv4 ACLs.

Expand All @@ -662,9 +665,12 @@ nfsAcls: "A::OWNER@:rwatTnNcCy,A::GROUP@:rxtncy,A::EVERYONE@:rxtncy,A::user@doma
```
>Note: If no values are specified, default value of "0777" will be set.
>POSIX ACLs are not supported and only POSIX mode bits are supported for NFSv3 shares.
## NVMe/TCP Support
CSI Driver for Dell Powerstore 2.2.0 and above supports NVMe/TCP provisioning. To enable NVMe/TCP provisioning, blockProtocol on secret should be specified as `NVMeTCP`.
In case blockProtocol is specified as `auto`, the driver will be able to find the initiators on the host and choose the protocol accordingly. If the host has multiple protocols enabled, then FC gets the highest priority followed by iSCSI and then NVMeTCP.

>Note: NVMe/TCP is not supported on RHEL 7.x versions.
Loading

0 comments on commit 809b7e5

Please sign in to comment.