Closed saurabhwani5 closed 9 months ago
Image: quay.io/hemalatha_gajendran/driver_shallowcopy_validation:latest
issue is fixed , we have added the validation where only source volume version 1 to version 1 shallow copy creation is possible where other than that following error message is shown
'message': 'failed to provision volume with StorageClass '
'"restore-sc-nuimnaz": rpc error: code = Internal desc = '
'CreateVolume ValidateShallowCopyVolume failed',
Thanks @hemalathagajendran for fix !!
Describe the bug
When we create other types of shallow copy volumes such as version 2 volume from version 1 independent as the source volume in this scenario shallow copy is not getting created where log error is seen as
ValidateShallowCopyVolume failed
How to Reproduce?
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: scale-pvc-1 spec: accessModes:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibm-spectrum-scale-csi provisioner: spectrumscale.csi.ibm.com parameters: volBackendFs: "fs0" reclaimPolicy: Delete
[OCP]# oc apply -f apply.yaml pod/csi-scale-fsetdemo-pod-1 created persistentvolumeclaim/scale-pvc-1 created storageclass.storage.k8s.io/ibm-spectrum-scale-csi created
[OCP]# oc get pods NAME READY STATUS RESTARTS AGE csi-scale-fsetdemo-pod-1 1/1 Running 0 86s [OCP]# oc get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE scale-pvc-1 Bound pvc-4afa38aa-0b27-4b3a-a8f1-3a5baf4c27e7 1Gi RWX ibm-spectrum-scale-csi 88s [OCP]# oc exec -it csi-scale-fsetdemo-pod-1 -- touch /usr/share/nginx/html/scale/test{1..5} [OCP]# oc exec -it csi-scale-fsetdemo-pod-1 -- ls /usr/share/nginx/html/scale test1 test2 test3 test4 test5 [OCP]# cat snapshot.yaml apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: ibm-spectrum-scale-snapshot spec: volumeSnapshotClassName: ibm-spectrum-scale-snapshotclass source: persistentVolumeClaimName: scale-pvc-1
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: ibm-spectrum-scale-snapshotclass driver: spectrumscale.csi.ibm.com parameters: snapWindow: "30" #Optional : Time in minutes (default=30) deletionPolicy: Delete [OCP]# oc apply -f snapshot.yaml volumesnapshot.snapshot.storage.k8s.io/ibm-spectrum-scale-snapshot created volumesnapshotclass.snapshot.storage.k8s.io/ibm-spectrum-scale-snapshotclass created [OCP]# oc get vs NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE ibm-spectrum-scale-snapshot true scale-pvc-1 1Gi ibm-spectrum-scale-snapshotclass snapcontent-50fe2ef6-4821-4dd5-94e1-e0e2695ee5d6 2m14s 2m25s
[OCP]# cat shallowCopy.yaml apiVersion: v1 kind: Pod metadata: name: csi-scale-fsetdemo-pod-2 labels: app: nginx spec: containers:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: scale-advance-pvc-1 spec: accessModes:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibm-spectrum-scale-csi-advance provisioner: spectrumscale.csi.ibm.com parameters: volBackendFs: "fs0" version: "2" reclaimPolicy: Delete
[OCP]# oc apply -f shallowCopy.yaml pod/csi-scale-fsetdemo-pod-2 created persistentvolumeclaim/scale-advance-pvc-1 created storageclass.storage.k8s.io/ibm-spectrum-scale-csi-advance created [OCP]#
[OCP]# oc get pvc -w NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE scale-advance-pvc-1 Pending ibm-spectrum-scale-csi-advance 3s scale-pvc-1 Bound pvc-4afa38aa-0b27-4b3a-a8f1-3a5baf4c27e7 1Gi RWX ibm-spectrum-scale-csi 38m
[OCP]# oc describe pvc scale-advance-pvc-1 Name: scale-advance-pvc-1 Namespace: ibm-spectrum-scale-csi StorageClass: ibm-spectrum-scale-csi-advance Status: Pending Volume: Labels:
Annotations: volume.beta.kubernetes.io/storage-provisioner: spectrumscale.csi.ibm.com
volume.kubernetes.io/storage-provisioner: spectrumscale.csi.ibm.com
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
DataSource:
APIGroup: snapshot.storage.k8s.io
Kind: VolumeSnapshot
Name: ibm-spectrum-scale-snapshot
Used By: csi-scale-fsetdemo-pod-2
Events:
Type Reason Age From Message
Warning ProvisioningFailed 47s persistentvolume-controller storageclass.storage.k8s.io "ibm-spectrum-scale-csi-advance" not found Warning ProvisioningFailed 14s (x3 over 39s) spectrumscale.csi.ibm.com_ibm-spectrum-scale-csi-provisioner-765d779f6b-gjkhc_b983f2f8-f0f3-4464-a094-f633e7391e29 failed to provision volume with StorageClass "ibm-spectrum-scale-csi-advance": rpc error: code = Internal desc = CreateVolume ValidateShallowCopyVolume failed Normal Provisioning 10s (x4 over 46s) spectrumscale.csi.ibm.com_ibm-spectrum-scale-csi-provisioner-765d779f6b-gjkhc_b983f2f8-f0f3-4464-a094-f633e7391e29 External provisioner is provisioning volume for claim "ibm-spectrum-scale-csi/scale-advance-pvc-1" Normal ExternalProvisioning 1s (x5 over 46s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "spectrumscale.csi.ibm.com" or manually created by system administrator