diff --git a/pkg/volume/csi/csi_plugin.go b/pkg/volume/csi/csi_plugin.go index 60f04a2419..d1b25cc17e 100644 --- a/pkg/volume/csi/csi_plugin.go +++ b/pkg/volume/csi/csi_plugin.go @@ -248,6 +248,7 @@ func (p *csiPlugin) ConstructVolumeSpec(volumeName, mountPath string) (*volume.S glog.V(4).Info(log("plugin.ConstructVolumeSpec extracted [%#v]", volData)) + fsMode := api.PersistentVolumeFilesystem pv := &api.PersistentVolume{ ObjectMeta: meta.ObjectMeta{ Name: volData[volDataKey.specVolID], @@ -259,6 +260,7 @@ func (p *csiPlugin) ConstructVolumeSpec(volumeName, mountPath string) (*volume.S VolumeHandle: volData[volDataKey.volHandle], }, }, + VolumeMode: &fsMode, }, } diff --git a/pkg/volume/csi/csi_plugin_test.go b/pkg/volume/csi/csi_plugin_test.go index ce76592e4e..ff23c5c380 100644 --- a/pkg/volume/csi/csi_plugin_test.go +++ b/pkg/volume/csi/csi_plugin_test.go @@ -186,6 +186,14 @@ func TestPluginConstructVolumeSpec(t *testing.T) { t.Errorf("expected volID %s, got volID %s", tc.data[volDataKey.volHandle], volHandle) } + if spec.PersistentVolume.Spec.VolumeMode == nil { + t.Fatalf("Volume mode has not been set.") + } + + if *spec.PersistentVolume.Spec.VolumeMode != api.PersistentVolumeFilesystem { + t.Errorf("Unexpected volume mode %q", *spec.PersistentVolume.Spec.VolumeMode) + } + if spec.Name() != tc.specVolID { t.Errorf("Unexpected spec name %s", spec.Name()) } @@ -463,6 +471,14 @@ func TestPluginConstructBlockVolumeSpec(t *testing.T) { continue } + if spec.PersistentVolume.Spec.VolumeMode == nil { + t.Fatalf("Volume mode has not been set.") + } + + if *spec.PersistentVolume.Spec.VolumeMode != api.PersistentVolumeBlock { + t.Errorf("Unexpected volume mode %q", *spec.PersistentVolume.Spec.VolumeMode) + } + volHandle := spec.PersistentVolume.Spec.CSI.VolumeHandle if volHandle != tc.data[volDataKey.volHandle] { t.Errorf("expected volID %s, got volID %s", tc.data[volDataKey.volHandle], volHandle)