Open nixpanic opened 5 years ago
/assign @humblec
@nixpanic the data source is added for the spec, I don't see a code changes in the external-provisioner
This is the template i used for testing, am i missing anything here?
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: glusterfs-pv-restore
spec:
storageClassName: glusterfs-csi
dataSource:
name: gcs-example-volume
kind: VolumeSource
apiGroup: snapshot.storage.k8s.io
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
[root@master ~]# kubectl create -f vol-csi.yaml The PersistentVolumeClaim "glusterfs-pv-restore" is invalid: spec.dataSource: Unsupported value: "VolumeContentSource.snapshot.storage.k8s.io": supported values: "VolumeSnapshot.snapshot.storage.k8s.io" [root@master ~]# vi vol-csi.yaml [root@master ~]# kubectl create -f vol-csi.yaml The PersistentVolumeClaim "glusterfs-pv-restore" is invalid: spec.dataSource: Unsupported value: "VolumeSource.snapshot.storage.k8s.io": supported values: "VolumeSnapshot.snapshot.storage.k8s.io"
[root@master ~]# kubectl explain pvc.spec.dataSource
KIND: PersistentVolumeClaim
VERSION: v1
RESOURCE: dataSource <Object>
DESCRIPTION:
This field requires the VolumeSnapshotDataSource alpha feature gate to be
enabled and currently VolumeSnapshot is the only supported data source. If
the provisioner can support VolumeSnapshot data source, it will create a
new volume and data will be restored to the volume at the same time. If the
provisioner does not support VolumeSnapshot data source, volume will not be
created and the failure will be reported as an event. In the future, we
plan to support more data source types and the behavior of the provisioner
may change.
TypedLocalObjectReference contains enough information to let you locate the
typed referenced object inside the same namespace.
FIELDS:
apiGroup <string>
APIGroup is the group for the resource being referenced. If APIGroup is not
specified, the specified Kind must be in the core API group. For any other
third-party types, APIGroup is required.
kind <string> -required-
Kind is the type of resource being referenced
name <string> -required-
Name is the name of resource being referenced
kubernetes used for testing
[root@master ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.0-beta.2", GitCommit:"a4ff09c41589c48547e04f85391aa5610ebe0e17", GitTreeState:"clean", BuildDate:"2018-11-23T00:55:34Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.0-beta.2", GitCommit:"a4ff09c41589c48547e04f85391aa5610ebe0e17", GitTreeState:"clean", BuildDate:"2018-11-23T00:47:47Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Thanks @Madhu-1 , I have opened an issue in external attacher repo https://github.com/kubernetes-csi/external-provisioner/issues/172
moved out of GCS/0.4 as this cannot be completed as we need smart cloning support in sidecar containers.
Describe the feature you'd like to have. Support for the new
CLONE_VOLUME
operation, which can take aVolumeSource
(not snapshot) as origin to clone. This will be used by kubevirt/cdi.What is the value to the end user? (why is it a priority?) Efficient cloning is an important feature for KuneVirt, and we would like Gluster to be one of the commonly used storage backends.
How will we know we have a good solution? (acceptance criteria) Standard CSI CLONE_VOLUME requests should be handled correctly.