Dothill (Seagate) AssuredSAN provisioner for Kubernetes
A dynamic persistent volume (PV) provisioner for Dothill AssuredSAN based storage systems.
Developped and tested on HPE MSA2050 series.
Should work with its rebrands like :
- Lenovo S2200/ThinkSystem DS Series
- HPE MSA2000/P2000/MSA2040/MSA2050 Series
- Dell EMC PowerVault ME4 Series
- Quantum StorNex
- ...
Quickstart
Install ISCSI and multipath on your node(s)
apt install open-iscsi multipath-tools
yum -y install iscsi-initiator-utils device-mapper-multipath
Deploy the provisioner to your cluster
As the image is on a private registry for now, make sure you have a secret named regcred
accessible from the kube-system
namespace that allows to pull from docker-registry.enix.io
.
kubectl apply -f deploy/
Create a secret containing the Dothill API credentials
Make sure to update the username and password in the file before blindly running this!
kubectl apply -f example/secret.yml
Create the storage class
Again, open the file and update all the fields so it match your configuration.
kubectl apply -f example/storageclass.yml
Run a test pod
To make sure everything went well, there's a example pod you can deploy in the example/
directory. If the pod reach the Running
status, you're good to go!
kubectl apply -f example/pod.yml
Command-line arguments
You can have a list of all available command line flags using the -help
switch.
Logging
Logging can be modified using the -v
flag :
-v 0
: Almost no logs (default if not specified)
-v 1
: Standard logs to follow what's going on
-v 2
: Debug logs (quite awful to see)
By default the rc
image is launched with -v 1
. For advanced logging configuration, see klog.
Configuration
By default, the provider will connect to the cluser by retreiving it's configuration from inside (e.g. by using KUBERNETES_SERVICE_HOST
and data mounted in /var/run
), which mean it won't work if the provisioner is not running inside a pod.
If you need to run this from outside your cluster, you can use the -kubeconfig path/to/your/.kube/config
flag to override the default configuration.