Available in some commercial editions: EE
Deckhouse provides support for HPE 3PAR storage systems, enabling volume management in Kubernetes using a CSI driver. This ensures a reliable, scalable, and high-performance storage solution suitable for mission-critical workloads. To support HPE 3PAR storage systems, the csi-hpe
module is used, allowing the creation of StorageClass in Kubernetes through the HPEStorageClass resource.
User-created StorageClass for the csi.hpe.com
CSI driver is not allowed.
Only HPE 3PAR** storage systems are supported. For other HPE storage systems, please contact technical support.
This page provides instructions on connecting HPE 3PAR to Deckhouse, configuring the connection, creating StorageClass, and verifying storage functionality.
System requirements
- A deployed and configured HPE storage system;
- Unique IQNs in
/etc/iscsi/initiatorname.iscsi
on each Kubernetes node.
Setup and Configuration
Note that all commands must be run on a machine that has administrator access to the Kubernetes API.
Enabling the module
Enable the csi-hpe
module. This will result in the following actions across all cluster nodes:
- registration of the CSI driver;
- launch of service pods for the
csi-hpe
components.
d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: csi-hpe
spec:
enabled: true
version: 1
EOF
Wait for the module to become Ready
.
kubectl get module csi-hpe -w
Creating a StorageClass
To create a StorageClass, you need to use the HPEStorageClass and HPEStorageConnection resource. Here is an example command to create such a resource:
d8 k apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: HPEStorageConnection
metadata:
name: hpe
spec:
controlPlane:
backendAddress: "172.17.1.55" # mutable, SAN API address
username: "3paradm" # mutable, API username
password: "3pardata" # mutable, API password
serviceName: "primera3par-csp-svc"
servicePort: "8080"
EOF
d8 k apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: HPEStorageClass
metadata:
name: hpe
spec:
pool: "test-cpg"
accessProtocol: "iscsi" # fc or iscsi (default iscsi), immutable
fsType: "xfs" # xfs, ext3, ext4, btrfs (default ext4), mutable
storageConnectionName: "hpe" # immutable
reclaimPolicy: Delete # Delete of Retain
cpg: "test-cpg"
EOF
You can check objects creation (Phase must be Created
):
d8 k get hpestorageconnections.storage.deckhouse.io <hpestorageconnection name>
d8 k get hpestorageclasses.storage.deckhouse.io <hpestorageclass name>
How to check module health?
To do this, you need to check the status of the pods in the d8-csi-hpe
namespace. All pods should be in the Running
or Completed
state and should be running on all nodes.
d8 k -n d8-csi-hpe get pod -owide -w