Skip to content

Commit 86389fc

Browse files
authored
fix : reset workspace storage defaults when PVC config removed (#2061)
Previously, removing a workspace PVC Config (e.g., `perUserStrategyPvcConfig`) did not reset workspaceConfig fields. As a result, stale values in persisted instead of reverting to defaults. This change explicitly resets: - `StorageAccessMode` to `{ReadWriteOnce}` - `StorageClassName` to `nil` - `DefaultStorageSize` to `nil` before applying any PVC config, ensuring that removing PVC config restores default workspace storage settings. Signed-off-by: Rohan Kumar <[email protected]>
1 parent c67a644 commit 86389fc

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

pkg/deploy/dev-workspace-config/dev_workspace_config.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,9 @@ func updateWorkspaceStorageConfig(devEnvironments *chev2.CheClusterDevEnvironmen
176176
constants.CommonPVCStorageStrategy: devEnvironments.Storage.PerUserStrategyPvcConfig,
177177
constants.PerWorkspacePVCStorageStrategy: devEnvironments.Storage.PerWorkspaceStrategyPvcConfig,
178178
}[pvcStrategy]
179-
179+
workspaceConfig.StorageAccessMode = nil
180+
workspaceConfig.StorageClassName = nil
181+
workspaceConfig.DefaultStorageSize = nil
180182
if pvc != nil {
181183
workspaceConfig.StorageAccessMode = pvc.StorageAccessMode
182184
if pvc.StorageClass != "" {

pkg/deploy/dev-workspace-config/dev_workspace_config_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,28 @@ func TestReconcileDevWorkspaceConfigStorage(t *testing.T) {
175175
},
176176
},
177177
},
178+
{
179+
name: "Not setting PerUserStrategyPvcConfig should reset DevWorkspaceConfig to default StorageAccessMode",
180+
cheCluster: &chev2.CheCluster{
181+
ObjectMeta: metav1.ObjectMeta{
182+
Namespace: "eclipse-che",
183+
Name: "eclipse-che",
184+
},
185+
Spec: chev2.CheClusterSpec{
186+
DevEnvironments: chev2.CheClusterDevEnvironments{
187+
DisableContainerBuildCapabilities: pointer.Bool(true),
188+
Storage: chev2.WorkspaceStorage{
189+
PvcStrategy: constants.PerUserPVCStorageStrategy,
190+
},
191+
},
192+
},
193+
},
194+
expectedOperatorConfig: &controllerv1alpha1.OperatorConfiguration{
195+
Workspace: &controllerv1alpha1.WorkspaceConfig{
196+
DeploymentStrategy: "Recreate",
197+
},
198+
},
199+
},
178200
{
179201
name: "Create DevWorkspaceOperatorConfig with nil StorageAccessMode",
180202
cheCluster: &chev2.CheCluster{

0 commit comments

Comments
 (0)