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

Documentation for Powerstore Install support in csm operator #466

Merged
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
2 changes: 1 addition & 1 deletion content/docs/deployment/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The Container Storage Modules along with the required CSI Drivers can each be de

{{< cardpane >}}
{{< card header="[**CSM Operator**](csmoperator/)"
footer="Supports driver [PowerScale](csmoperator/drivers/powerscale/), modules [Authorization](csmoperator/modules/authorization/) [Replication](csmoperator/modules/replication/)">}}
footer="Supports driver [PowerScale](csmoperator/drivers/powerscale/) [PowerStore](csmoperator/drivers/powerstore/) [PowerFlex](csmoperator/drivers/powerflex/), modules [Authorization](csmoperator/modules/authorization/) [Replication](csmoperator/modules/replication/) [Observability](csmoperator/modules/observability/)">}}
Dell CSM Operator is a Kubernetes Operator, which can be used to install and manage the CSI Drivers and CSM Modules provided by Dell for various storage platforms. This operator is available as a community operator for upstream Kubernetes and can be deployed using OperatorHub.io. The operator can be installed using OLM (Operator Lifecycle Manager) or manually.
[...More on installation instructions](csmoperator/)
{{< /card >}}
Expand Down
4 changes: 3 additions & 1 deletion content/docs/deployment/csmoperator/drivers/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ kubectl create -f deploy/kubernetes/snapshot-controller
## Installing CSI Driver via Operator

Refer [PowerScale Driver](../drivers/powerscale) to install the driver via Operator
Refer [PowerFlex Driver](../drivers/powerflex) to install the driver via Operator
Refer [PowerStore Driver](../drivers/powerstore) to install the driver via Operator

>**Note**: If you are using an OLM based installation, example manifests are available in `OperatorHub` UI.
You can edit these manifests and install the driver using the `OperatorHub` UI.
Expand Down Expand Up @@ -77,7 +79,7 @@ The CSI Drivers and CSM Modules installed by the Dell CSM Operator can be update
1. If you are trying to upgrade the CSI driver from an older version, make sure to modify the _configVersion_ field if required.
```yaml
driver:
configVersion: v2.3.0
configVersion: v2.6.0
```
2. Do not try to update the operator by modifying the original `CustomResource` manifest file and running the `kubectl apply -f` command. As part of the driver installation, the Operator sets some annotations on the `CustomResource` object which are further utilized in some workflows (like detecting upgrade of drivers). If you run the `kubectl apply -f` command to update the driver, these annotations are overwritten and this may lead to failures.

Expand Down
94 changes: 94 additions & 0 deletions content/docs/deployment/csmoperator/drivers/powerstore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: PowerStore
linkTitle: "PowerStore"
description: >
Installing Dell CSI Driver for PowerStore via Dell CSM Operator
---

## Installing CSI Driver for PowerStore via Dell CSM Operator

The CSI Driver for Dell PowerStore can be installed via the Dell CSM Operator.
To deploy the Operator, follow the instructions available [here](../../#installation).

Note that the deployment of the driver using the operator does not use any Helm charts and the installation and configuration parameters will be slightly different from the one specified via the Helm installer.

**Note**: MKE (Mirantis Kubernetes Engine) does not support the installation of CSI-PowerStore via Operator.

### Listing installed drivers with the ContainerStorageModule CRD
User can query for all Dell CSI drivers using the following command:
`kubectl get csm --all-namespaces`


### Prerequisite

1. Create namespace.
Execute `kubectl create namespace test-powerstore` to create the test-powerstore namespace (if not already present). Note that the namespace can be any user-defined name, in this example, we assume that the namespace is 'test-powerstore'.

2. Create a file called `config.yaml` that has Powerstore array connection details with the following content
```yaml
arrays:
- endpoint: "https://10.0.0.1/api/rest" # full URL path to the PowerStore API
globalID: "unique" # unique id of the PowerStore array
username: "user" # username for connecting to API
password: "password" # password for connecting to API
skipCertificateValidation: true # indicates if client side validation of (management)server's certificate can be skipped
isDefault: true # treat current array as a default (would be used by storage classes without arrayID parameter)
blockProtocol: "auto" # what SCSI transport protocol use on node side (FC, ISCSI, NVMeTCP, NVMeFC, None, or auto)
nasName: "nas-server" # what NAS should 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.
```
Change the parameters with relevant values for your PowerStore array.
Add more blocks similar to above for each PowerStore array if necessary.

3. Create Kubernetes secret:

Create a file called `secret.yaml` in same folder as `config.yaml` with following content
```yaml
apiVersion: v1
kind: Secret
metadata:
name: test-powerstore-config
namespace: test-powerstore
type: Opaque
data:
config: CONFIG_YAML
```

Combine both files and create Kubernetes secret by running the following command:
```bash
sed "s/CONFIG_YAML/`cat config.yaml | base64 -w0`/g" secret.yaml | kubectl apply -f -
```

### Install Driver

1. Follow all the [prerequisites](#prerequisite) above

2. Create a CR (Custom Resource) for PowerStore using the sample files provided
[here](https://github.com/dell/csm-operator/tree/master/samples). This file can be modified to use custom parameters if needed.

3. Users should configure the parameters in CR. The following table lists the primary configurable parameters of the PowerStore driver and their default values:

| Parameter | Description | Required | Default |
| --------- | ----------- | -------- |-------- |
| replicas | Controls the number of controller pods you deploy. If the number of controller pods is greater than the number of available nodes, the excess pods will be pending state till new nodes are available for scheduling. Default is 2 which allows for Controller high availability. | Yes | 2 |
| namespace | Specifies namespace where the drive will be installed | Yes | "test-powerstore" |
| fsGroupPolicy | Defines which FS Group policy mode to be used, Supported modes `None, File and ReadWriteOnceWithFSType` | No |"ReadWriteOnceWithFSType"|
| storageCapacity | Enable/Disable storage capacity tracking feature | No | true |
| ***Common parameters for node and controller*** |
| X_CSI_POWERSTORE_NODE_NAME_PREFIX | Prefix to add to each node registered by the CSI driver | Yes | "csi-node"
| X_CSI_FC_PORTS_FILTER_FILE_PATH | To set path to the file which provides a list of WWPN which should be used by the driver for FC connection on this node | No | "/etc/fc-ports-filter" |
| ***Controller parameters*** |
| X_CSI_POWERSTORE_EXTERNAL_ACCESS | allows specifying additional entries for hostAccess of NFS volumes. Both single IP address and subnet are valid entries | No | " "|
| X_CSI_NFS_ACLS | Defines permissions - POSIX mode bits or NFSv4 ACLs, to be set on NFS target mount directory. | No | "0777" |
| ***Node parameters*** |
| X_CSI_POWERSTORE_ENABLE_CHAP | Set to true if you want to enable iSCSI CHAP feature | No | false |

4. Execute the following command to create PowerStore custom resource:`kubectl create -f <input_sample_file.yaml>`. This command will deploy the CSI PowerStore driver in the namespace specified in the input YAML file
- Next, the driver should be installed, you can check the condition of driver pods by running `kubectl get all -n <driver-namespace>`

5. [Verify the CSI Driver installation](../#verifying-the-driver-installation)

**Note** :
1. "Kubelet config dir path" is not yet configurable in case of Operator based driver installation.
2. Snapshotter and resizer sidecars are not optional. They are defaults with Driver installation.
10 changes: 4 additions & 6 deletions content/docs/deployment/csmoperator/release/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,15 @@ Description: >
Release notes for Dell Container Storage Modules Operator
---

## Release Notes - Container Storage Modules Operator v1.0.0
## Release Notes - Container Storage Modules Operator v1.1.0

### New Features/Changes
- [Added support for CSI PowerFlex Driver](https://github.com/dell/csm/issues/477)
- [Added support for CSM Observability Module](https://github.com/dell/csm/issues/488)
- [Added support to Kubernetes 1.25](https://github.com/dell/csm/issues/478)
- [Added support for OpenShift 4.11](https://github.com/dell/csm/issues/480)
- [Added support for CSI PowerStore Driver](https://github.com/dell/csm/issues/613)
- [Added support for Kubernetes 1.26](https://github.com/dell/csm/issues/597)


### Fixed Issues
There are no fixed issues in this release.
[Fix for CSM Authorization CRD in the CSM Operator not able to custom configurations](https://github.com/dell/csm/issues/633)

### Known Issues
There are no known issues in this release.