Pass FsGroup to NodePublishVolume
This commit is contained in:
@@ -235,6 +235,19 @@ func (c *csiMountMgr) SetUpAt(dir string, mounterArgs volume.MounterArgs) error
|
||||
}
|
||||
volAttribs = mergeMap(volAttribs, serviceAccountTokenAttrs)
|
||||
|
||||
driverSupportsCSIVolumeMountGroup := false
|
||||
var nodePublishFSGroupArg *int64
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.DelegateFSGroupToCSIDriver) {
|
||||
driverSupportsCSIVolumeMountGroup, err = csi.NodeSupportsVolumeMountGroup(ctx)
|
||||
if err != nil {
|
||||
return volumetypes.NewTransientOperationFailure(log("mounter.SetUpAt failed to determine if the node service has VOLUME_MOUNT_GROUP capability: %v", err))
|
||||
}
|
||||
|
||||
if driverSupportsCSIVolumeMountGroup {
|
||||
nodePublishFSGroupArg = mounterArgs.FsGroup
|
||||
}
|
||||
}
|
||||
|
||||
err = csi.NodePublishVolume(
|
||||
ctx,
|
||||
volumeHandle,
|
||||
@@ -247,6 +260,7 @@ func (c *csiMountMgr) SetUpAt(dir string, mounterArgs volume.MounterArgs) error
|
||||
nodePublishSecrets,
|
||||
fsType,
|
||||
mountOptions,
|
||||
nodePublishFSGroupArg,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
@@ -264,7 +278,9 @@ func (c *csiMountMgr) SetUpAt(dir string, mounterArgs volume.MounterArgs) error
|
||||
klog.V(2).Info(log("error checking for SELinux support: %s", err))
|
||||
}
|
||||
|
||||
if c.supportsFSGroup(fsType, mounterArgs.FsGroup, c.fsGroupPolicy) {
|
||||
if !driverSupportsCSIVolumeMountGroup && c.supportsFSGroup(fsType, mounterArgs.FsGroup, c.fsGroupPolicy) {
|
||||
// Driver doesn't support applying FSGroup. Kubelet must apply it instead.
|
||||
|
||||
// fullPluginName helps to distinguish different driver from csi plugin
|
||||
err := volume.SetVolumeOwnership(c, mounterArgs.FsGroup, mounterArgs.FSGroupChangePolicy, util.FSGroupCompleteHook(c.plugin, c.spec))
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user