Skip to content

Commit

Permalink
Fix the CSM-docs issues (#1216)
Browse files Browse the repository at this point in the history
  • Loading branch information
WilsonRadadia20 authored Aug 9, 2024
1 parent 6947db3 commit b28beb9
Show file tree
Hide file tree
Showing 22 changed files with 92 additions and 100 deletions.
14 changes: 7 additions & 7 deletions content/docs/cosidriver/features/objectscale.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ The first step before you can start provisioning object storage, is to create a

The following example shows how to create a `BucketClass`:

```sh
```bash
cat <<EOF | kubectl create --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketClass
Expand All @@ -221,7 +221,7 @@ _Greenfield Provisioning_ means creating a new bucket from scratch, without any

The following example shows how to create a `BucketClaim` for greenfield provisioning.

```sh
```bash
cat <<EOF | kubectl create --namespace=my-namespace --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketClaim
Expand All @@ -241,7 +241,7 @@ _Brownfield Provisioning_ means using an existing bucket, that can already conta

The following example shows how to create `Bucket` and `BucketClaim` for brownfield provisioning.

```sh
```bash
cat <<EOF | kubectl create --namespace=my-namespace --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: Bucket
Expand Down Expand Up @@ -275,7 +275,7 @@ There are a few crucial details regarding bucket deletion. The first one is `del

The following example shows how to delete a `BucketClaim`.

```sh
```bash
kubectl --namespace=my-namespace delete bucketclaim my-bucketclaim
```

Expand All @@ -289,7 +289,7 @@ The first step before you start granting access to the object storage for your a

The following example shows how to create a `BucketAccessClass`:

```sh
```bash
cat <<EOF | kubectl create --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketAccessClass
Expand All @@ -314,7 +314,7 @@ The underlying workflow for granting access to the object storage primitive is:

The following example shows how to grant an access using `BucketAccess` resource:

```sh
```bash
cat <<EOF | kubectl create --namespace=my-namespace --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketAccess
Expand All @@ -341,7 +341,7 @@ When resource of `BucketAccess` kind is removed from Kubernetes it triggers the

The following example shows how to revoke a `BucketAccess`:

```sh
```bash
kubectl --namespace=my-namespace delete bucketaccess my-bucketaccess
```

Expand Down
2 changes: 1 addition & 1 deletion content/docs/cosidriver/installation/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Installing any of the CSI Driver components using Helm requires a few utilities
6. Install the driver by running the following command (assuming that the current working directory is _charts_ and _my-cosi-settings.yaml_ is also present in _charts_ directory).

```sh
```bash
helm install dell-cosi ./cosi --namespace=dell-cosi --values ./my-cosi-values.yaml --set-file configuration.data=./my-cosi-configuration.yaml
```

Expand Down
2 changes: 0 additions & 2 deletions content/docs/csidriver/release/powerflex.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ description: Release notes for PowerFlex CSI driver
| sdc:3.6.1 is causing issues while installing the csi-powerflex driver on ubuntu. | Workaround: <br /> Change the powerflexSdc to sdc:3.6 in values.yaml https://github.com/dell/csi-powerflex/blob/72b27acee7553006cc09df97f85405f58478d2e4/helm/csi-vxflexos/values.yaml#L13 <br /> |
A CSI ephemeral pod may not get created in OpenShift 4.13 and fail with the error `"error when creating pod: the pod uses an inline volume provided by CSIDriver csi-vxflexos.dellemc.com, and the namespace has a pod security enforcement level that is lower than privileged."` | This issue occurs because OpenShift 4.13 introduced the CSI Volume Admission plugin to restrict the use of a CSI driver capable of provisioning CSI ephemeral volumes during pod admission. Therefore, an additional label `security.openshift.io/csi-ephemeral-volume-profile` in [csidriver.yaml](https://github.com/dell/helm-charts/blob/csi-vxflexos-2.10.0/charts/csi-vxflexos/templates/csidriver.yaml) file with the required security profile value should be provided. Follow [OpenShift 4.13 documentation for CSI Ephemeral Volumes](https://docs.openshift.com/container-platform/4.13/storage/container_storage_interface/ephemeral-storage-csi-inline.html) for more information. |
| If the volume limit is exhausted and there are pending pods and PVCs due to `exceed max volume count`, the pending PVCs will be bound to PVs and the pending pods will be scheduled to nodes when the driver pods are restarted. | It is advised not to have any pending pods or PVCs once the volume limit per node is exhausted on a CSI Driver. There is an open issue reported with kubenetes at https://github.com/kubernetes/kubernetes/issues/95911 with the same behavior. |
| The PowerFlex Dockerfile is incorrectly labeling the version as 2.7.0 for the 2.8.0 version. | Describe the driver pod using ```kubectl describe pod $podname -n vxflexos``` to ensure v2.8.0 is installed. |
| Resource quotas may not work properly with the CSI PowerFlex driver. PowerFlex is only able to assign storage in 8Gi chunks, so if a create volume call is made with a size not divisible by 8Gi, CSI-PowerFlex will round up to the next 8Gi boundary when it provisions storage -- however, the resource quota will not record this size but rather the original size in the create request. This means that, for example, if a 10Gi resource quota is set, and a user provisions 10 1Gi PVCs, 80Gi of storage will actually be allocated, which is well over the amount specified in the resource quota. | For now, users should only provision volumes in 8Gi-divisible chunks if they want to use resource quotas. |
| Helm install of CSM for PowerFlex v1.10.0 is failing due to a duplicate `mountPath: /host_opt_emc_path` being added to volumeMounts charts/csi-vxflexos/templates/node.yaml. Error message is `Error: INSTALLATION FAILED: 1 error occurred: DaemonSet.apps "vxflexos-node" is invalid: spec.template.spec.initContainers[0].volumeMounts[4].mountPath: Invalid value: "/host_opt_emc_path": must be unique` | The issue can be resolved by removing the duplicate entry in [https://github.com/dell/helm-charts/blob/main/charts/csi-vxflexos/templates/node.yaml](https://github.com/dell/helm-charts/blob/main/charts/csi-vxflexos/templates/node.yaml) |


### Note:
Expand Down
1 change: 0 additions & 1 deletion content/docs/csidriver/troubleshooting/powerscale.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,4 @@ Here are some installation failures that might be encountered and how to mitigat
| When an attempt is made to create more than one ReadOnly PVC from the same volume snapshot, the second and subsequent requests result in PVCs in state `Pending`, with a warning `another RO volume from this snapshot is already present`. This is because the driver allows only one RO volume from a specific snapshot at any point in time. This is to allow faster creation(within a few seconds) of a RO PVC from a volume snapshot irrespective of the size of the volume snapshot. | Wait for the deletion of the first RO PVC created from the same volume snapshot. |
|Driver install or upgrade fails because of an incompatible Kubernetes version, even though the version seems to be within the range of compatibility. For example: Error: UPGRADE FAILED: chart requires kubeVersion: >= 1.22.0 < 1.25.0 which is incompatible with Kubernetes V1.22.11-mirantis-1 | If you are using an extended Kubernetes version, please see the [helm Chart](https://github.com/dell/helm-charts/blob/main/charts/csi-isilon/Chart.yaml) and use the alternate kubeVersion check that is provided in the comments. Please note that this is not meant to be used to enable the use of pre-release alpha and beta versions, which is not supported.|
| Standby controller pod is in crashloopbackoff state | Scale down the replica count of the controller pod's deployment to 1 using ```kubectl scale deployment <deployment_name> --replicas=1 -n <driver_namespace>``` |
| Driver install fails because of the incompatible helm values file specified in ```dell-csi-helm-installer``` - expected: v2.9.x, found: v2.8.0. | Change driver version in each file in ```dell/csi-powerscale/dell-csi-helm-installer``` from 2.8.0 to 2.9.x |
| fsGroupPolicy may not work as expected without root privileges for NFS only [https://github.com/kubernetes/examples/issues/260](https://github.com/kubernetes/examples/issues/260) | To get the desired behavior set “RootClientEnabled” = “true” in the storage class parameter |
4 changes: 2 additions & 2 deletions content/docs/deployment/csminstallationwizard/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,8 @@ The [Dell Container Storage Modules Installation Wizard](./src/index.html) is a
4. When the PowerFlex driver is installed using values generated by installation wizard, the user needs to update the secret for driver by patching the MDM keys, as follows:

```terminal
`echo -n '<MDM_IPS>' | base64`
`kubectl patch secret vxflexos-config -n vxflexos -p "{\"data\": { \"MDM\": \"<GENERATED_BASE64>\"}}"`
echo -n '<MDM_IPS>' | base64
kubectl patch secret vxflexos-config -n vxflexos -p "{\"data\": { \"MDM\": \"<GENERATED_BASE64>\"}}"
```

5. If Observability is checked in the wizard, refer to [Observability](../csmoperator/modules/observability#post-installation-dependencies) to export metrics to Prometheus and load the Grafana dashboards.
Expand Down
89 changes: 43 additions & 46 deletions content/docs/deployment/csmoperator/modules/authorization.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,77 +135,74 @@ Follow the instructions available in CSM Authorization for [Configuring the CSM

Follow the instructions available in CSM Authorization for [Configuring a Dell CSI Driver with CSM for Authorization](../../../helm/modules/installation/authorization/#configuring-a-dell-csi-driver-with-csm-for-authorization).

### Upgrade CSM Authorization
## Upgrade CSM Authorization

This section outlines the upgrade steps for Container Storage Modules (CSM) for Authorization. The upgrade of CSM for Authorization is handled in 2 parts:
1) Upgrading the Authorization proxy server
2) Upgrading CSI Driver, Authorization sidecar with Authorization module enabled


## Upgrading the Authorization Proxy Server
### Upgrading the Authorization Proxy Server

1. Modifying the existing Authorization Proxy Server installation directly via `kubectl edit`
1. Modifying the existing Authorization Proxy Server installation directly via `kubectl edit`

```sh
kubectl get csm -n <module-namespace>
```
```bash
kubectl get csm -n <module-namespace>
```

For example - If the Authorization Proxy Server is installed in authorization namespace then run this command to get the object name
For example - If the Authorization Proxy Server is installed in authorization namespace then run this command to get the object name

```sh
$ kubectl get csm -n authorization
```
```bash
kubectl get csm -n authorization
```

use the object name in `kubectl edit` command.
use the object name in `kubectl edit` command.

```sh
kubectl edit csm <object-name> -n <module-namespace>
```
```bash
kubectl edit csm <object-name> -n <module-namespace>
```

For example - If the object name is authorization then use the name as authorization and if the namespace is authorization, then run this command to edit the object
For example - If the object name is authorization then use the name as authorization and if the namespace is authorization, then run this command to edit the object

```sh
kubectl edit csm authorization -n authorization
```
```bash
kubectl edit csm authorization -n authorization
```

2. Modify the installation
2. Modify the installation

- Update the CSM Authorization Proxy Server configVersion
- Update the images for proxyService, tenantService, roleService and storageService
- Update the CSM Authorization Proxy Server configVersion
- Update the images for proxyService, tenantService, roleService and storageService


## Upgrading CSI Driver, Authorization sidecar with Authorization module enabled
### Upgrading CSI Driver, Authorization sidecar with Authorization module enabled

1. Modifying the existing driver and module installation directly via `kubectl edit`
1. Modifying the existing driver and module installation directly via `kubectl edit`

```sh
kubectl get <driver-object> -n <driver-namespace>
```
```bash
kubectl get csm -n <driver-namespace>
```

For example - If the CSI PowerFlex driver is installed in vxflexos namepace then run this command to get the object name
For example - If the CSI PowerFlex driver is installed in vxflexos namepace then run this command to get the object name

```sh
kubectl get csm -n vxflexos
```
```bash
kubectl get csm -n vxflexos
```
use the object name in `kubectl edit` command.

use the object name in `kubectl edit` command.

```sh
kubectl edit csm <driver-object>/<object-name> -n <driver-namespace>
```

For example - If the object name is vxflexos then use the name as vxflexos and if the driver is installed in vxflexos namespace, then run this command to edit the object

```sh
kubectl edit csm vxflexos -n vxflexos
```
```bash
kubectl edit csm <object-name> -n <driver-namespace>
```
For example - If the object name is vxflexos then use the name as vxflexos and if the driver is installed in vxflexos namespace, then run this command to edit the object

2. Modify the installation
```bash
kubectl edit csm vxflexos -n vxflexos
```

- Update the driver config version and image tag
- Update the Authorization config version and karavi-authorization-proxy image.
2. Modify the installation

>NOTE:
- Update the driver config version and image tag
- Update the Authorization config version and karavi-authorization-proxy image.

- In Authorization module upgrade, only `n-1` to `n` upgrade is supported, e.g. if the current observability version is `v1.8.x`, it can be upgraded to `1.9.x`.
>__Note__:
> - In Authorization module upgrade, only `n-1` to `n` upgrade is supported, e.g. if the current observability version is `v1.8.x`, it can be upgraded to `1.9.x`.

8 changes: 4 additions & 4 deletions content/docs/deployment/csmoperator/modules/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,26 +63,26 @@ The Observability module installed by the Dell CSM Operator can be updated like
- Modifying the existing driver and module installation directly via `kubectl edit`
```sh
```bash
kubectl get <driver-object> -n <driver-namespace>
```
For example - If the CSI PowerScale driver is installed then run this command to get the object name
```sh
```bash
# Replace driver-namespace with the namespace where the CSI PowerScale driver is installed
$ kubectl get csm -n <driver-namespace>
```
use the object name in `kubectl edit` command.
```sh
```bash
kubectl edit csm <driver-object>/<object-name> -n <driver-namespace>
```
For example - If the object name is isilon then use the name as isilon
```sh
```bash
# Replace object-name with the isilon
kubectl edit csm isilon -n <driver-namespace>
```
Expand Down
2 changes: 1 addition & 1 deletion content/docs/prerequisites/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Container Storage Modules (CSM) does not officially support specific operating s
{{<table "table table-striped table-bordered table-sm">}}
| CSM Module | PowerMax | PowerFlex | Unity XT | PowerScale | PowerStore |
|---------------------------------------------------------------|:--------:|:---------:|:--------:|:----------:|:----------:|
| [CSM Authorization - v1.x GA](../authorization/) | Yes | Yes | Yes | Yes | No |
| [CSM Authorization - v1.x GA](../authorization/) | Yes | Yes | No | Yes | No |
| [CSM Authorization - v2.0 Tech Preview](../authorization/) | No | Yes | No | No | No |
| [CSM Observability](../observability/) | Yes | Yes | No | Yes | Yes |
| [CSM Replication](../replication/) | Yes | Yes | No | Yes | Yes |
Expand Down
14 changes: 7 additions & 7 deletions content/v1/cosidriver/features/objectscale.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ The first step before you can start provisioning object storage, is to create a

The following example shows how to create a `BucketClass`:

```sh
```bash
cat <<EOF | kubectl create --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketClass
Expand All @@ -221,7 +221,7 @@ _Greenfield Provisioning_ means creating a new bucket from scratch, without any

The following example shows how to create a `BucketClaim` for greenfield provisioning.

```sh
```bash
cat <<EOF | kubectl create --namespace=my-namespace --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketClaim
Expand All @@ -241,7 +241,7 @@ _Brownfield Provisioning_ means using an existing bucket, that can already conta

The following example shows how to create `Bucket` and `BucketClaim` for brownfield provisioning.

```sh
```bash
cat <<EOF | kubectl create --namespace=my-namespace --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: Bucket
Expand Down Expand Up @@ -275,7 +275,7 @@ There are a few crucial details regarding bucket deletion. The first one is `del

The following example shows how to delete a `BucketClaim`.

```sh
```bash
kubectl --namespace=my-namespace delete bucketclaim my-bucketclaim
```

Expand All @@ -289,7 +289,7 @@ The first step before you start granting access to the object storage for your a

The following example shows how to create a `BucketAccessClass`:

```sh
```bash
cat <<EOF | kubectl create --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketAccessClass
Expand All @@ -314,7 +314,7 @@ The underlying workflow for granting access to the object storage primitive is:

The following example shows how to grant an access using `BucketAccess` resource:

```sh
```bash
cat <<EOF | kubectl create --namespace=my-namespace --filename -
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketAccess
Expand All @@ -341,7 +341,7 @@ When resource of `BucketAccess` kind is removed from Kubernetes it triggers the

The following example shows how to revoke a `BucketAccess`:

```sh
```bash
kubectl --namespace=my-namespace delete bucketaccess my-bucketaccess
```

Expand Down
2 changes: 1 addition & 1 deletion content/v1/cosidriver/installation/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Installing any of the CSI Driver components using Helm requires a few utilities
6. Install the driver by running the following command (assuming that the current working directory is _charts_ and _my-cosi-settings.yaml_ is also present in _charts_ directory).

```sh
```bash
helm install dell-cosi ./cosi --namespace=dell-cosi --values ./my-cosi-values.yaml --set-file configuration.data=./my-cosi-configuration.yaml
```

Expand Down
Loading

0 comments on commit b28beb9

Please sign in to comment.