Skip to content

Increase hardcoded defaults for project cloner memory and volume size

MR: Increase memory/disk defaults for workspaces (!162119 - merged)

Description

Customers are reporting workspace failures because the project cloner init container does not have enough memory and/or disk space. See this example Zendesk ticket which shows Reason: OOMKilled for a cloner injector container crash.

As an immediate solution, we will increase the hardcoded memory and disk limit.

We will also increase limit in ee/lib/remote_development/workspaces/create/tools_component_injector.rb, to proactively prevent any issues there (256Mi is kind of low)

Note this does NOT increase the request values for memory, so the default memory footprint of workspaces should not be increased - this extra memory overhead will only be used if needed.

The larger long-term solution involves giving admins and users more control over these settings, and also over how the cloning is performed. See these related issues:

Acceptance Criteria

(See Technical Requirements for details)

  • Increase memoryLimit in project_cloner_component_injector.rb and tools_component_injector.rb
  • Increase size in volume_component_injector.rb
  • Update all associated tests and fixture files as necessary.

Technical Requirements

  • In ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb and ee/lib/remote_development/workspaces/create/tools_component_injector.rb, increase memoryLimit from 256Mi to 2Gi. The 'memoryRequest' will remain '128Mi'.
  • In ee/lib/remote_development/workspaces/create/volume_component_injector.rb, increase size from 15Gi to 50Gi

NOTE: The volume in volume_component_injector.rb is the same volume used for ALL containers (both the workspaces and the init containers), so we are increasing it 3X to account for any large disk requirements in any of these containers.

Design Requirements

None, no UX facing changes

Impact Assessment

Fixing this will allow the usage of workspaces for customers with larger repos.

Edited by Chad Woolley