diff --git a/pkg/volume/flexvolume/driver-call.go b/pkg/volume/flexvolume/driver-call.go
index <HASH>..<HASH> 100644
--- a/pkg/volume/flexvolume/driver-call.go
+++ b/pkg/volume/flexvolume/driver-call.go
@@ -223,6 +223,7 @@ type DriverCapabilities struct {
 	Attach          bool `json:"attach"`
 	SELinuxRelabel  bool `json:"selinuxRelabel"`
 	SupportsMetrics bool `json:"supportsMetrics"`
+	FSGroup         bool `json:"fsGroup"`
 }
 
 func defaultCapabilities() *DriverCapabilities {
@@ -230,6 +231,7 @@ func defaultCapabilities() *DriverCapabilities {
 		Attach:          true,
 		SELinuxRelabel:  true,
 		SupportsMetrics: false,
+		FSGroup:         true,
 	}
 }
 
diff --git a/pkg/volume/flexvolume/mounter.go b/pkg/volume/flexvolume/mounter.go
index <HASH>..<HASH> 100644
--- a/pkg/volume/flexvolume/mounter.go
+++ b/pkg/volume/flexvolume/mounter.go
@@ -92,7 +92,9 @@ func (f *flexVolumeMounter) SetUpAt(dir string, fsGroup *int64) error {
 	}
 
 	if !f.readOnly {
-		volume.SetVolumeOwnership(f, fsGroup)
+		if f.plugin.capabilities.FSGroup {
+			volume.SetVolumeOwnership(f, fsGroup)
+		}
 	}
 
 	return nil
if driver disable support of FSGroup, mounter will not process the volume ownership