Skip to content

Commit d084044

Browse files
committed
feat : [CRW-5722] Add configuration option in DevWorkspaceOperatorConfig for storage access mode (#1019)
- Add configuration option named StorageAccessMode in WorkspaceConfig struct - Set PVC accessMode if abovementioned option is set in WorkspaceConfig, default to ReadWriteOnce Signed-off-by: Rohan Kumar <[email protected]>
1 parent 2e7face commit d084044

14 files changed

+131
-10
lines changed

apis/controller/v1alpha1/devworkspaceoperatorconfig_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ type WorkspaceConfig struct {
135135
// DefaultStorageSize defines an optional struct with fields to specify the sizes of Persistent Volume Claims for storage
136136
// classes used by DevWorkspaces.
137137
DefaultStorageSize *StorageSizes `json:"defaultStorageSize,omitempty"`
138+
// StorageAccessMode are the desired access modes the volume should have. It defaults
139+
// to ReadWriteOnce if not specified
140+
StorageAccessMode []corev1.PersistentVolumeAccessMode `json:"storageAccessMode,omitempty"`
138141
// PersistUserHome defines configuration options for persisting the `/home/user/`
139142
// directory in workspaces.
140143
PersistUserHome *PersistentHomeConfig `json:"persistUserHome,omitempty"`

apis/controller/v1alpha1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/bundle/manifests/controller.devfile.io_devworkspaceoperatorconfigs.yaml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/deployment/kubernetes/combined.yaml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/deployment/kubernetes/objects/devworkspaceoperatorconfigs.controller.devfile.io.CustomResourceDefinition.yaml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/deployment/openshift/combined.yaml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/deployment/openshift/objects/devworkspaceoperatorconfigs.controller.devfile.io.CustomResourceDefinition.yaml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deploy/templates/crd/bases/controller.devfile.io_devworkspaceoperatorconfigs.yaml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/config/sync.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,9 @@ func mergeConfig(from, to *controller.OperatorConfiguration) {
341341
if from.Workspace.ContainerSecurityContext != nil {
342342
to.Workspace.ContainerSecurityContext = mergeContainerSecurityContext(to.Workspace.ContainerSecurityContext, from.Workspace.ContainerSecurityContext)
343343
}
344+
//if from.Workspace.StorageAccessMode != nil {
345+
// to.Workspace.StorageAccessMode = from.Workspace.StorageAccessMode
346+
//}
344347
if from.Workspace.DefaultStorageSize != nil {
345348
if to.Workspace.DefaultStorageSize == nil {
346349
to.Workspace.DefaultStorageSize = &controller.StorageSizes{}

pkg/config/sync_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ func TestMergesAllFieldsFromClusterConfig(t *testing.T) {
107107
*deploymentStrategy = appsv1.RecreateDeploymentStrategyType
108108
}
109109
},
110+
func(accessModes *[]corev1.PersistentVolumeAccessMode, c fuzz.Continue) {
111+
accessModes = nil
112+
},
110113
fuzzQuantity,
111114
fuzzResourceList,
112115
fuzzResourceRequirements,
@@ -428,6 +431,9 @@ func TestMergeConfigHandlesProxySettings(t *testing.T) {
428431
func TestMergeConfigLooksAtAllFields(t *testing.T) {
429432
f := fuzz.New().NilChance(0).Funcs(
430433
func(embeddedResource *runtime.RawExtension, c fuzz.Continue) {},
434+
func(accessModes *[]corev1.PersistentVolumeAccessMode, c fuzz.Continue) {
435+
accessModes = nil
436+
},
431437
fuzzQuantity,
432438
fuzzResourceList,
433439
fuzzResourceRequirements,

0 commit comments

Comments
 (0)