Skip to content

Commit

Permalink
v2.4.1 updates (#193)
Browse files Browse the repository at this point in the history
* v2.4.1 docs

Signed-off-by: Michael Mattsson <michael.mattsson@gmail.com>
  • Loading branch information
datamattsson authored Mar 4, 2024
1 parent 4f609a8 commit 46ae18f
Show file tree
Hide file tree
Showing 23 changed files with 386 additions and 155 deletions.
Original file line number Diff line number Diff line change
@@ -1,29 +1,33 @@
# Introduction

The HPE Alletra 9000 and Primera and 3PAR Storage Container Storage Provider (CSP) for Kubernetes is part of the [HPE CSI Driver for Kubernetes](../../csi_driver/index.md). The CSP abstract the data management capabilities of the array for use by Kubernetes.
The HPE Alletra Storage MP, Alletra 9000 and Primera and 3PAR Storage Container Storage Provider (CSP) for Kubernetes is part of the [HPE CSI Driver for Kubernetes](../../csi_driver/index.md). The CSP abstract the data management capabilities of the array for use by Kubernetes.

!!! note
The HPE CSI Driver for Kubernetes is only compatible with HPE Alletra Storage MP running with block services, such as HPE GreenLake for Block Storage.

[TOC]

!!! note
For help getting started with deploying the HPE CSI Driver using HPE Alletra 9000, Primera or 3PAR storage, check out the [tutorial over at HPE Developer](https://developer.hpe.com/blog/9o7zJkqlX5cErkrzgopL/tutorial-how-to-get-started-with-the-hpe-csi-driver-and-hpe-primera-and-).
For help getting started with deploying the HPE CSI Driver using HPE Alletra Storage MP, Alletra 9000, Primera or 3PAR storage, check out the [tutorial over at HPE Developer](https://developer.hpe.com/blog/9o7zJkqlX5cErkrzgopL/tutorial-how-to-get-started-with-the-hpe-csi-driver-and-hpe-primera-and-).

## Platform Requirements

Check the corresponding CSI driver version in the [compatibility and support](../../csi_driver/index.md#compatibility_and_support) table for the latest updates on supported Kubernetes version, orchestrators and host OS.

Refer to the HPE Single Point of Connectivity Knowledge (SPOCK) for specific platform details (requires an HPE Passport account) of the CSP. The documentation reflected here always corresponds to the latest supported version and may contain references to future features and capabilities.

* [HPE Alletra Storage MP](https://h20272.www2.hpe.com/SPOCK/Pages/spock2Html.aspx?htmlFile=hw_greenlake_block.html)
* [HPE Alletra 9000](https://h20272.www2.hpe.com/SPOCK/Pages/spock2Html.aspx?htmlFile=hw_alletra.html)
* [HPE Primera](https://h20272.www2.hpe.com/SPOCK/Pages/spock2Html.aspx?htmlFile=hw_primera.html)
* [HPE 3PAR](https://h20272.www2.hpe.com/SPOCK/Pages/spock2Html.aspx?htmlFile=hw_3par.html)

### Network Port Requirements

The HPE Alletra 9000, Primera and 3PAR Container Storage Provider requires the following TCP ports to be open inbound to the array from the Kubernetes cluster worker nodes running the HPE CSI Driver for Kubernetes.
The HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR Container Storage Provider requires the following TCP ports to be open inbound to the array from the Kubernetes cluster worker nodes running the HPE CSI Driver for Kubernetes.

| Port | Protocol | Description |
| ---- | -------- | ----------- |
| 443 | HTTPS | WSAPI (HPE Alletra 9000/Primera) |
| 443 | HTTPS | WSAPI (HPE Alletra Storage MP, Alletra 9000/Primera) |
| 8080 | HTTPS | WSAPI (HPE 3PAR) |
| 22 | SSH | Array communication |

Expand Down Expand Up @@ -299,4 +303,4 @@ Use this parameter to specify a subset of Fibre Channel (FC) ports on the array

### Support

Please refer to the HPE Alletra 9000 and Primera and 3PAR Storage CSP [support statement](../../legal/support/index.md#hpe_primera_and_hpe_3par_container_storage_provider_support).
Please refer to the HPE Alletra Storage MP, Alletra 9000 and Primera and 3PAR Storage CSP [support statement](../../legal/support/index.md#hpe_primera_and_hpe_3par_container_storage_provider_support).
2 changes: 1 addition & 1 deletion docs/container_storage_provider/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Container Storage Providers

* [HPE Alletra 5000/6000 and Nimble Storage](hpe_alletra_6000/index.md)
* [HPE Alletra 9000, Primera and 3PAR](hpe_alletra_9000/index.md)
* [HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR](hpe_alletra_storage_mp/index.md)
69 changes: 69 additions & 0 deletions docs/csi_driver/archive.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,75 @@ HPE supports up to three minor releases. These release are kept here for histori

[TOC]

#### HPE CSI Driver for Kubernetes 2.2.0

Release highlights:

* Support for Kubernetes 1.24 and Red Hat OpenShift 4.10
* Added Tolerations, Affinity, Labels and Node Selectors to Helm chart
* Improved automatic recovery for the NFS Server Provisioner
* Added multipath handling for Alletra 9000, Primera and 3PAR
* Volume expansion of encrypted volumes

Upgrade considerations:

* Existing [encrypted volumes needs to be migrated](operations.md#migrate_encrypted_volumes) to allow expansion
* Existing claims provisioned with the NFS Server Provisioner [needs to be upgraded](operations.md#upgrade_to_v220).

<table>
<tr>
<th>Kubernetes</th>
<td>1.21-1.24<sup>1</sup></td>
</tr>
<tr>
<th>Helm Chart</th>
<td><a href="https://artifacthub.io/packages/helm/hpe-storage/hpe-csi-driver/2.2.0">v2.2.0</a> on ArtifactHub</td>
</tr>
<tr>
<th>Operators</th>
<td>
<a href="https://operatorhub.io/operator/hpe-csi-operator/stable/hpe-csi-operator.v2.2.1">v2.2.1</a> on OperatorHub<br />
v2.2.1</a> via OpenShift console
</td>
</tr>
<tr>
<th>Worker&nbsp;OS</th>
<td>
RHEL<sup>2</sup> 7.x & 8.x, RHCOS 4.8 & 4.10<br />
Ubuntu 16.04, 18.04 & 20.04<br />
SLES 15 SP2
</tr>
<tr>
<th>Platforms</th>
<td>
Alletra OS 6000 6.0.0.x - 6.1.0.x<br />
Alletra OS 9000 9.3.x - 9.5.x<br />
Nimble OS 5.0.10.x, 5.2.1.x, 6.0.0.x, 6.1.0.x<br />
Primera OS 4.3.x - 4.5.x<br />
3PAR OS 3.3.x
</td>
</tr>
<tr>
<th>Data&nbsp;protocol</th>
<td>Fibre Channel, iSCSI</td>
</tr>
<tr>
<th>Release&nbsp;notes</th>
<td><a href=https://github.com/hpe-storage/csi-driver/blob/master/release-notes/v2.2.0.md>v2.2.0</a> on GitHub</td>
</tr>
<tr>
<th>Blogs</th>
<td>
<a href="https://community.hpe.com/t5/Around-the-Storage-Block/Updates-and-Improvements-to-HPE-CSI-Driver-for-Kubernetes/ba-p/7170878">Updates and Improvements to HPE CSI Driver for Kubernetes</a> (release blog)
</td>
</tr>
</table>

<small>
<sup>1</sup> = For HPE Ezmeral Runtime Enterprise, SUSE Rancher, Mirantis Kubernetes Engine and others; Kubernetes clusters must be deployed within the currently supported range of "Worker OS" platforms listed in the above table. See [partner ecosystems](../partners) for other variations.<br />
<sup>2</sup> = The HPE CSI Driver will recognize CentOS, AlmaLinux and Rocky Linux as RHEL derives and they are supported by HPE.
</small>

#### HPE CSI Driver for Kubernetes 2.1.1

Release highlights:
Expand Down
88 changes: 58 additions & 30 deletions docs/csi_driver/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ Establish a working directory on a bastion Linux host that has HTTP access to th
!!! note
Only the HPE CSI Driver 1.4.0 and later is supported using this methodology.

Create a working directory and set environment variables referenced throughout the procedure. In this example, we'll use HPE CSI Driver v2.4.0 on Kubernetes 1.28. Available versions are found in the [co-deployments GitHub repo](https://github.com/hpe-storage/co-deployments/tree/master/yaml/csi-driver).
Create a working directory and set environment variables referenced throughout the procedure. In this example, we'll use HPE CSI Driver v2.4.1 on Kubernetes 1.29. Available versions are found in the [co-deployments GitHub repo](https://github.com/hpe-storage/co-deployments/tree/master/yaml/csi-driver).

```text
mkdir hpe-csi-driver
cd hpe-csi-driver
export MY_REGISTRY=registry.enterprise.example.com
export MY_CSI_DRIVER=2.4.0
export MY_K8S=1.28
export MY_CSI_DRIVER=2.4.1
export MY_K8S=1.29
```

Next, create a list with the CSI driver images. Copy and paste the entire text blob in one chunk.
Expand All @@ -59,7 +59,7 @@ curl -s https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml
https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v${MY_CSI_DRIVER}/nimble-csp.yaml \
https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v${MY_CSI_DRIVER}/3par-primera-csp.yaml \
| grep image: | awk '{print $2}' | sort | uniq > images
echo quay.io/hpestorage/nfs-provisioner:v3.0.2 >> images
echo quay.io/hpestorage/nfs-provisioner:v3.0.3 >> images
```

!!! important
Expand Down Expand Up @@ -160,6 +160,20 @@ All parameters are mandatory and described below.

Example:

```yaml fct_label="HPE Alletra Storage MP"
apiVersion: v1
kind: Secret
metadata:
name: hpe-backend
namespace: hpe-storage
stringData:
serviceName: alletrastoragemp-csp-svc
servicePort: "8080"
backend: 10.10.0.20
username: 3paradm
password: 3pardata
```

```yaml fct_label="HPE Alletra 5000/6000"
apiVersion: v1
kind: Secret
Expand Down Expand Up @@ -252,6 +266,20 @@ This `Secret` is used by the CSI sidecars in the `StorageClass` to authenticate

To create a new `Secret`, specify the name, `Namespace`, backend username, backend password and the backend IP address to be used by the CSP and save it as `custom-secret.yaml` (a detailed description of the parameters are [available above](#secret_parameters)).

```yaml fct_label="HPE Alletra Storage MP"
apiVersion: v1
kind: Secret
metadata:
name: custom-secret
namespace: hpe-storage
stringData:
serviceName: alletrastoragemp-csp-svc
servicePort: "8080"
backend: 10.10.0.20
username: 3paradm
password: 3pardata
```

```yaml fct_label="HPE Alletra 5000/6000"
apiVersion: v1
kind: Secret
Expand Down Expand Up @@ -406,19 +434,19 @@ kubectl create ns hpe-storage
Worker node IO settings and common `CRDs`:

```text
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-linux-config.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-volumegroup-snapshotgroup-crds.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-linux-config.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-volumegroup-snapshotgroup-crds.yaml
```

Container Storage Provider:

```text fct_label="HPE Alletra 5000/6000 and Nimble Storage"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/nimble-csp.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/nimble-csp.yaml
```

```text fct_label="HPE Alletra 9000, Primera and 3PAR"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/3par-primera-csp.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/3par-primera-crd.yaml
```text fct_label="HPE Alletra Storage MP, HPE Alletra 9000, Primera and 3PAR"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/3par-primera-csp.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/3par-primera-crd.yaml
```

!!! important
Expand All @@ -427,19 +455,19 @@ kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/ma
Install the CSI driver:

```text fct_label="Kubernetes 1.28"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.28.yaml
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.29.yaml
```

```text fct_label="Kubernetes 1.27"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.27.yaml
```text fct_label="Kubernetes 1.28"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.28.yaml
```

```text fct_label="Kubernetes 1.26"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.26.yaml
```text fct_label="Kubernetes 1.27"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.27.yaml
```

```text fct_label="Kubernetes 1.25"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.25.yaml
```text fct_label="Kubernetes 1.26"
kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.26.yaml
```

!!! seealso
Expand All @@ -454,38 +482,38 @@ The following steps outline how to uninstall the CSI driver that has been deploy
Uninstall Worker node settings:

```text
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-linux-config.yaml
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-linux-config.yaml
```

Uninstall relevant Container Storage Provider:

```text fct_label="HPE Alletra 5000/6000 and Nimble Storage"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/nimble-csp.yaml
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/nimble-csp.yaml
```

```text fct_label="HPE Alletra 9000, Primera and 3PAR"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/3par-primera-csp.yaml
```text fct_label="HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/3par-primera-csp.yaml
```

!!! error "HPE Alletra 9000, Primera and 3PAR users"
If you are reinstalling the HPE CSI Driver, **DO NOT** remove the `crd/hpevolumeinfos.storage.hpe.com` resource. This `CustomResourceDefinition` contains important volume metadata used by the HPE Alletra 9000, Primera and 3PAR CSP. HPE CSI Driver **v2.0.0 and below** share the same YAML file for `crds` and CSP and would require a manual removal of the individual `Service` and `Deployment` in the "hpe-storage" `Namespace`.
!!! error "HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR users"
If you are reinstalling the HPE CSI Driver, **DO NOT** remove the `crd/hpevolumeinfos.storage.hpe.com` resource. This `CustomResourceDefinition` contains important volume metadata used by the HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR CSP. HPE CSI Driver **v2.0.0 and below** share the same YAML file for `crds` and CSP and would require a manual removal of the individual `Service` and `Deployment` in the "hpe-storage" `Namespace`.

Uninstall the CSI driver:

```text fct_label="Kubernetes 1.29"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.29.yaml
```

```text fct_label="Kubernetes 1.28"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.28.yaml
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.28.yaml
```

```text fct_label="Kubernetes 1.27"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.27.yaml
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.27.yaml
```

```text fct_label="Kubernetes 1.26"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.26.yaml
```

```text fct_label="Kubernetes 1.25"
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.0/hpe-csi-k8s-1.25.yaml
kubectl delete -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.1/hpe-csi-k8s-1.26.yaml
```

If no longer needed, delete the "hpe-storage" `Namespace`.
Expand Down
39 changes: 33 additions & 6 deletions docs/csi_driver/diagnostics.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ hpe-storage hpe-csi-node-pwq2d 2/2 Running 0
hpe-storage nimble-csp-546c9c4dd4-5lsdt 1/1 Running 0 15s
```

```text fct_label="HPE Alletra 9000, Primera and 3PAR"
```text fct_label="HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR"
kubectl get pods --all-namespaces -l 'app in (primera3par-csp, hpe-csi-node, hpe-csi-controller)'
NAMESPACE NAME READY STATUS RESTARTS AGE
hpe-storage hpe-csi-controller-7d9cd6b855-fqppd 9/9 Running 0 14s
Expand Down Expand Up @@ -88,12 +88,39 @@ The NFS Server Provisioner consists of a number of Kubernetes resources per PVC.
| Object | Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Purpose |
| --------------------- | -------------------- | ------------- |
| ConfigMap | hpe-nfs-config | This `ConfigMap` holds the configuration file for the NFS server. Local tweaks may be wanted. Please see the [config file reference](https://github.com/nfs-ganesha/nfs-ganesha/tree/master/src/config_samples) for more details. |
| Deployment | hpe-nfs-&lt;UUID&gt; | The `Deployment` that is running the NFS `Pod`. |
| Service | hpe-nfs-&lt;UUID&gt; | `Pod` `Service` the NFS clients perform mounts against. |
| PVC | hpe-nfs-&lt;UUID&gt; | The RWO claim serving the NFS workload. |
| Deployment | hpe-nfs-UID | The `Deployment` that is running the NFS `Pod`. |
| Service | hpe-nfs-UID | The `Service` the NFS clients perform mounts against. |
| PVC | hpe-nfs-UID | The RWO claim serving the NFS workload. |

!!! tip
The `<UUID>` stems from the user request RWX claim UUID for easy tracking.
The UID stems from the user request RWX `PVC` for easy tracking. Use `kubectl get pvc/my-pvc -o jsonpath='{.metadata.uid}{"\n"}'` to retrieve it.

### Tracing NFS resources

When troubleshooting NFS deployments it's common that only the source RWX `PVC` and `Namespace` is known. The next few steps explains how resources can be easily traced.

Retrieve the "hpe-nfs-UID" from the NFS `Pod` by specifying `PVC` and `Namespace` of the RWX `PVC`:
```text
kubectl get pods -l provisioned-by=my-pvc,provisioned-from=my-namespace -A -o jsonpath='{.items[].metadata.labels.app}{"\n"}'
```

Next, enumerate the resources from the "hpe-nfs-UID":
```text
kubectl get pvc,svc,deploy -A -o name --field-selector metadata.name=hpe-nfs-UID
```

Example output:

```text
persistentvolumeclaim/hpe-nfs-UID
service/hpe-nfs-UID
deployment.apps/hpe-nfs-UID
```

If only the `PV` name is known, looking from the backend storage perspective, the `PV` name (and `.spec.claimRef.uid`) contains the UID, for example: "pvc-UID".

!!! seealso "Clarification"
The `hpe-nfs-UID` is abbreviated, it will contain a real UID added on, for example "hpe-nfs-98ce7c80-13f9-45d0-9609-089227bf97f1".

## Volume and Snapshot Groups

Expand Down Expand Up @@ -143,7 +170,7 @@ CSP logs can be accessed from their respective services.
kubectl logs -f deploy/nimble-csp -n hpe-storage
```

```text fct_label="HPE Alletra 9000, Primera and 3PAR"
```text fct_label="HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR"
kubectl logs -f deploy/primera3par-csp -n hpe-storage
```

Expand Down
18 changes: 18 additions & 0 deletions docs/csi_driver/examples/operations/patch-nfs-server-2.4.1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
spec:
template:
spec:
containers:
- name: hpe-nfs
image: quay.io/hpestorage/nfs-provisioner:v3.0.3
tolerations:
- effect: NoSchedule
key: csi.hpe.com/hpe-nfs
operator: Exists
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 30
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 30
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 46ae18f

Please sign in to comment.