Skip to content

Commit

Permalink
FSGroupPolicy issue fix (#466)
Browse files Browse the repository at this point in the history
  • Loading branch information
adarsh-dell authored Feb 14, 2024
1 parent a0a79d6 commit 47b0ea0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
27 changes: 11 additions & 16 deletions pkg/drivers/commonconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -371,22 +371,6 @@ func GetCSIDriver(ctx context.Context, cr csmv1.ContainerStorageModule, operator
}

var csidriver storagev1.CSIDriver
err = yaml.Unmarshal(buf, &csidriver)
if err != nil {
log.Errorw("GetCSIDriver yaml marshall failed", "Error", err.Error())
return nil, err
}

if cr.Spec.Driver.CSIDriverSpec.FSGroupPolicy != "" {
fsGroupPolicy := storagev1.NoneFSGroupPolicy
if cr.Spec.Driver.CSIDriverSpec.FSGroupPolicy == "ReadWriteOnceWithFSType" {
fsGroupPolicy = storagev1.ReadWriteOnceWithFSTypeFSGroupPolicy
} else if cr.Spec.Driver.CSIDriverSpec.FSGroupPolicy == "File" {
fsGroupPolicy = storagev1.FileFSGroupPolicy
}
csidriver.Spec.FSGroupPolicy = &fsGroupPolicy
log.Debugw("GetCSIDriver", "fsGroupPolicy", fsGroupPolicy)
}

YamlString := utils.ModifyCommonCR(string(buf), cr)
switch cr.Spec.Driver.CSIDriverType {
Expand All @@ -406,6 +390,17 @@ func GetCSIDriver(ctx context.Context, cr csmv1.ContainerStorageModule, operator
log.Errorw("GetCSIDriver yaml marshall failed", "Error", err.Error())
return nil, err
}
// overriding default FSGroupPolicy if this was provided in manifest
if cr.Spec.Driver.CSIDriverSpec.FSGroupPolicy != "" {
fsGroupPolicy := storagev1.NoneFSGroupPolicy
if cr.Spec.Driver.CSIDriverSpec.FSGroupPolicy == "ReadWriteOnceWithFSType" {
fsGroupPolicy = storagev1.ReadWriteOnceWithFSTypeFSGroupPolicy
} else if cr.Spec.Driver.CSIDriverSpec.FSGroupPolicy == "File" {
fsGroupPolicy = storagev1.FileFSGroupPolicy
}
csidriver.Spec.FSGroupPolicy = &fsGroupPolicy
log.Debugw("GetCSIDriver", "fsGroupPolicy", fsGroupPolicy)
}

return &csidriver, nil
}
13 changes: 12 additions & 1 deletion pkg/drivers/commonconfig_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
csmv1 "github.com/dell/csm-operator/api/v1"
"github.com/dell/csm-operator/tests/shared"
"github.com/stretchr/testify/assert"
storagev1 "k8s.io/api/storage/v1"
)

var (
Expand Down Expand Up @@ -61,9 +62,19 @@ func TestGetCsiDriver(t *testing.T) {
ctx := context.Background()
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_, err := GetCSIDriver(ctx, tt.csm, config, tt.driverName)
csiDriver, err := GetCSIDriver(ctx, tt.csm, config, tt.driverName)
if tt.expectedErr == "" {
assert.Nil(t, err)
switch tt.csm.Spec.Driver.CSIDriverSpec.FSGroupPolicy {
case "":
assert.Equal(t, storagev1.ReadWriteOnceWithFSTypeFSGroupPolicy, *csiDriver.Spec.FSGroupPolicy)
case "ReadWriteOnceWithFSType":
assert.Equal(t, storagev1.ReadWriteOnceWithFSTypeFSGroupPolicy, *csiDriver.Spec.FSGroupPolicy)
case "File":
assert.Equal(t, storagev1.FileFSGroupPolicy, *csiDriver.Spec.FSGroupPolicy)
default:
assert.Equal(t, storagev1.NoneFSGroupPolicy, *csiDriver.Spec.FSGroupPolicy)
}
} else {
assert.Containsf(t, err.Error(), tt.expectedErr, "expected error containing %q, got %s", tt.expectedErr, err)
}
Expand Down

0 comments on commit 47b0ea0

Please sign in to comment.