We use trident with OCP (OpenShift Container Platform) 3.9.
# oc version
oc v3.9.30
kubernetes v1.9.1+a0ce1bc657
features: Basic-Auth GSSAPI Kerberos SPNEGO
Server https://console.<DOMAIN>:8443
openshift v3.9.30
kubernetes v1.9.1+a0ce1bc657
We did the update to trident version 18.07 to get the benefits of #118 .
# ~/trident-installer/tridentctl version -n trident
+----------------+----------------+
| SERVER VERSION | CLIENT VERSION |
+----------------+----------------+
| 18.07.0 | 18.07.0 |
+----------------+----------------+
The setup doesn麓t work as documented.
We would like to use multiple backends with multiple storageclasses, so that the customer can decide between storageclasses and these storageclasses point to an explicit backend.
The reason for an explicit backend is for individual prefix which must be include for the storage quality.
We created the storageclass with the following yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: trident-basic-sq1-nobackup
provisioner: netapp.io/trident
parameters:
backendType: "ontap-nas"
storagePools: "ontapnas_bsc_sq1_no_backup_fm03v09dl04.<DOMAIN>:*"
When we define the parameter storagePools in the storageclass YAML with "ontapnas_bsc_sq1_no_backup_fm03v09dl04.<DOMAIN>:*" and then try to create a PVC , then we get the following error.
oc describe pvc vol00001
Name: vol00001
Namespace: mktest
StorageClass: trident-basic-sq1-nobackup
Status: Pending
Volume:
Labels: <none>
Annotations: volume.beta.kubernetes.io/storage-provisioner=netapp.io/trident
Finalizers: []
Capacity:
Access Modes:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ProvisioningFailed 1m netapp.io/trident no available backends for storage class trident-basic-sq1-nobackup
Normal ExternalProvisioning 1m (x2 over 1m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "netapp.io/trident" or manually created by system administrator
The setup works when we remove the :* in the storagePools parameter.
With the adopted YAML are all backends with the type ontap-nas assigned to all storageclasses which uses this backendType.
In this case using different storageclasses and backends makes no sense, because all backends are used round robin when a PVC is created.
Due to this fact it look to us that the parameter storagePools is ignored.
Here some more data about our setup.
# ~/trident-installer/tridentctl get backend -n trident
+------------------------------------------------+-------------------+--------+---------+
| NAME | STORAGE DRIVER | ONLINE | VOLUMES |
+------------------------------------------------+-------------------+--------+---------+
| ontapnas_fm03v09dl04.<DOMAIN> | ontap-nas | true | 0 |
| ontapnaseco_fm03v09dl04.<DOMAIN> | ontap-nas-economy | true | 2 |
| ontapnas_bsc_sq1_no_backup_fm03v09dl04.<DOMAIN> | ontap-nas | true | 0 |
| ontapnas_eco_sq1_backup_fm03v09dl04.<DOMAIN> | ontap-nas-economy | true | 0 |
+------------------------------------------------+-------------------+--------+---------+
# oc get sc
NAME PROVISIONER AGE
standard (default) kubernetes.io/cinder 42d
trident-basic netapp.io/trident 19d
trident-basic-sq1-nobackup netapp.io/trident 31m
trident-eco-sq1-backup netapp.io/trident 1h
trident-economy netapp.io/trident 19d
md5-f832801108417638feb2ce039cc29fe6
# ~/trident-installer/tridentctl get backend -n trident ontapnas_bsc_sq1_no_backup_fm03v09dl04.<DOMAIN> -o yaml
items:
- config:
serialNumbers: []
storageDriverName: ontap-nas
storagePrefix: trident_sq1_nas_nfs
version: 1
name: ontapnas_bsc_sq1_no_backup_fm03v09dl04.<DOMAIN>
online: true
storage:
fm03n01_sq1_aggr02:
name: fm03n01_sq1_aggr02
storageAttributes:
backendType:
offer:
- ontap-nas
clones:
offer: true
encryption:
offer: true
media:
offer:
- ssd
provisioningType:
offer:
- thick
- thin
snapshots:
offer: true
storageClasses:
- trident-basic
fm03n02_sq1_aggr02:
name: fm03n02_sq1_aggr02
storageAttributes:
backendType:
offer:
- ontap-nas
clones:
offer: true
encryption:
offer: true
media:
offer:
- ssd
provisioningType:
offer:
- thick
- thin
snapshots:
offer: true
storageClasses:
- trident-basic
volumes: []
Hi,
That field is a regex (regular expression) and not a fileglob.
Can you please try this and see if it works for you?
:.* (with a dot) instead of
:* (without a dot)
Hi,
sorry for the delay, i didn麓t had to chance to test yesterday.
You麓re right :.* (with a dot) works!
I created 6 PVC and all of them used the selected backend.
Most helpful comment
Hi,
sorry for the delay, i didn麓t had to chance to test yesterday.
You麓re right
:.*(with a dot) works!I created 6 PVC and all of them used the selected backend.