Skip to content

Latest commit

 

History

History
 
 

hpe-flexvolume-driver

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

HPE Volume Driver for Kubernetes FlexVolume Plugin Helm chart

The HPE Volume Driver for Kubernetes FlexVolume Plugin leverages HPE storage platforms to provide scalable and persistent storage for stateful applications. This chart also deploys the HPE Dynamic Provisioner for Kubernetes.

Prerequisites

  • Upstream Kubernetes version 1.11 or later
  • Other Kubernetes distributions supported
  • Rancher 2.x
  • OpenShift 3.10, 3.11 (4.x will not be supported, see CSI Driver Helm chart)
  • More distributions will be listed as tests are ongoing
  • Recent Ubuntu, CentOS or RHEL compute nodes connected to their respective official package repositories

Depending on which pluginType is being used, other prerequisites and requirements may apply.

HPE Nimble Storage (nimble)

  • NimbleOS 5.0.8 or later
  • NimbleOS 5.1.3 or later

HPE Cloud Volumes

  • Amazon EKS 1.12.x/1.13.x
  • Microsoft AKS 1.12.x/1.13.x
  • US Regions Only

Configuration & Installation

The following table lists the configurable parameters of the FlexVolume driver chart and their default values.

Parameter Description Default
backend HPE storage platform API endpoint. 192.168.1.1
pluginType Backend plugin type to use. Currently nimble and cv are supported. nimble
username Username for the backend. Access key for HPE Cloud Volumes. admin
password Password for the backend. Access secret for HPE Cloud Volumes. admin
protocol Data plane protocol (fc, iscsi). iscsi
fsType Type of file to format volumes with (ext4, ext3, xfs, btrfs). xfs
logLevel Log level. Can be one of info, debug, trace, warn and error info
mountConflictDelay Wait this long (in seconds) before forcefully taking over a volume from an isolated or crashed node. 120
flavor Kubernetes distribution specific tweaks. Supported flavors include k8s, ocp, eks, aks and rke. k8s
podsMountDir This is the directory where the kubelet bind mounts the volume for pods. May differ between Kubernetes distributions. /var/lib/kubelet/pods
storageClass.name The name to assign the created StorageClass. hpe-standard
storageClass.create Enables creation of StorageClass to consume this hpe-flexvolume-driver instance. true
storageClass.defaultClass Whether to set the created StorageClass as the clusters default StorageClass. false
nimble.config HPE Nimble Storage volume config parameters. -
cv.config HPE Cloud Volumes volume config parameters. -

It's recommended to create a values.yaml file from corresponding release and edit it to fit the environment the chart is being deployed to. Download and edit the sample file.

Example values.yaml using a Nimble backend:

---
backend: 192.168.1.1
username: admin
password: admin
pluginType: nimble
fsType: xfs
storageClass:
  defaultClass: true

This will connect the driver to a Nimble based backend with management IP address of 192.168.1.1 and format new volumes with a XFS filesystem.

The nimble.config or cv.config stanza will be hosted in a ConfigMap and can be used to tweak default parmaters and also override StorageClass parameters. More information on these stanzas can be found in the ADVANCED.md documentation.

Example nimble.config stanza:

nimble:
  config:
    limitIOPS: "-1"
    limitMBPS: "-1"
    perfPolicy: DockerDefault

Example cv.config stanza:

cv:
  config:
    snapPrefix: BaseFor
    automatedConnection: true
    existingCloudSubnet: 10.1.0.0/24
    region: us-east-1
    privateCloud: vpc-data
    cloudComputeProvider: "Amazon AWS"
    perfPolicy: Other
    volumeType: PF
    encryption: true
    protectionTemplate: twicedaily:4
    destroyOnRm: true
    limitIOPS: "1000"
    initiators:
      - '"eth0"'
    privateCloudResourceGroup: ""

Note: Storage class parameters will override the settings in defaults and global section.

Platform notes

Certain distributions demand certain tweaks to the variables for the driver and dynamic provisioner to operate correctly. See each platform for details.

Upstream Kubernetes

This is the default operating mode, no tweaks are needed.

Red Hat OpenShift and OKD

Applicable to Red Hat OpenShift 3.10 and 3.11. 4.x is not supported*.

Key Value Description
podsMountDir /var/lib/origin/openshift.local.volumes This is the directory where the kubelet bind mounts the volume for pods.

* = If experimentation is desirable with OpenShift 4.x, set flexVolumeExec default path for ocp to /etc/kubernetes/kubelet-plugins/volume/exec. The driver will only work on RHEL 7.x nodes.

Rancher

Applicable to installing the Helm Chart via the Rancher catalog system.

Key Value Description
flavor rke Required and prepopulated by default.
podsMountDir /var/lib/kubelet/volumeplugins This is the directory where the kubelet bind mounts the volume for pods. Required and prepopulated by default.

Installing the Chart

To install the chart with the name hpe-flexvolume:

helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/
helm install hpe-storage/hpe-flexvolume-driver --namespace kube-system --name hpe-flexvolume -f values.yaml

Note: Omitting the --name flag will generate a human readable name.

Check status of the Chart

To check status of the hpe-flexvolume deployment:

helm status hpe-flexvolume

Uninstalling the Chart

To uninstall/delete the hpe-flexvolume deployment:

helm delete hpe-flexvolume --purge

Alternative install method

In some cases it's more practical provide the local configuration via the helm command directly. Specify each parameter using the --set key=value[,key=value] argument to helm install. For example:

helm install --name hpe-flexvolume hpe/hpe-flexvolume-driver \
--set backend=X.X.X.X --set username=admin --set password=xxxxxxxxx \
--set protocol=iscsi --set fsType=xfs

Using the HPE Volume Driver for Kubernetes FlexVolume Plugin

To enable dynamic provisioning of PersistentVolume through the use of PersistentVolumeClaim API objects, a StorageClass needs to be declared on the cluster. Please see the HPE Volume Driver for Kubernetes FlexVolume Plugin repository for the official documentation for this Helm chart. Also, it's helpful to be familar with persistent storage concepts in Kubernetes prior to deploying stateful workloads.

Support

The HPE Volume Driver for Kubernetes FlexVolume Plugin Helm chart is supported by the respective platform team. Currently supported platforms:

  • HPE Nimble Storage
  • HPE Cloud Volumes

Please file issues through the regular support channels for the particular platform. Feature requests or general questions to developers may be filed through the GitHub issue tracker for this project.

You may also join our Slack community to chat with HPE folks close to this project for inquiries not requring our immediate response. We hang out in #NimbleStorage and #Kubernetes at slack.hpedev.io.

Contributing

We value all feedback and contributions. If you find any issues or want to contribute, please feel free to open an issue or file a PR. More details in CONTRIBUTING.md

License

This is open source software licensed using the Apache License 2.0. Please see LICENSE for details.