Calculating Che resource requirements

The Che Operator, DevWorkspace Controller, and user workspaces consist of a set of pods. The pods contribute to the resource consumption in CPU and memory limits and requests.

Procedure
  1. Identify the workspace resource requirements which depend on the devfile that is used for defining the development environment. This includes identifying the workspace components explicitly specified in the components section of the devfile.

    • Here is an example devfile with the following components:

      Example 1. tools

      The tools component of the devfile defines the following requests and limits:

          memoryLimit: 6G
          memoryRequest: 512M
          cpuRequest: 1000m
          cpuLimit: 4000m
    • During the workspace startup, an internal che-gateway container is implicitly provisioned with the following requests and limits:

          memoryLimit: 256M
          memoryRequest: 64M
          cpuRequest: 50m
          cpuLimit: 500m
  2. Calculate the sums of the resources required for each workspace. If you intend to use multiple devfiles, repeat this calculation for every expected devfile.

    Example 2. Workspace requirements for the example devfile in the previous step
    Purpose Pod Container name Memory limit Memory request CPU limit CPU request

    Developer tools

    workspace

    tools

    6 GiB

    512 MiB

    4000 m

    1000 m

    Che gateway

    workspace

    che-gateway

    256 MiB

    64 MiB

    500 m

    50 m

    Total

    6.3 GiB

    576 MiB

    4500 m

    1050 m

  3. Multiply the resources calculated per workspace by the number of workspaces that you expect all of your users to run simultaneously.

  4. Calculate the sums of the requirements for the Che Operator, Operands, and DevWorkspace Controller.

    Table 1. Default requirements for the Che Operator, Operands, and DevWorkspace Controller
    Purpose Pod name Container names Memory limit Memory request CPU limit CPU request

    Che operator

    che-operator

    che-operator

    256 MiB

    64 MiB

    500 m

    100 m

    Che Server

    che

    che-server

    1 GiB

    512 MiB

    1000 m

    100 m

    Che Dashboard

    che-dashboard

    che-dashboard

    256 MiB

    32 MiB

    500 m

    100 m

    Che Gateway

    che-gateway

    traefik

    4 GiB

    128 MiB

    1000 m

    100 m

    Che Gateway

    che-gateway

    configbump

    256 MiB

    64 MiB

    500 m

    50 m

    Che Gateway

    che-gateway

    oauth-proxy

    512 MiB

    64 MiB

    500 m

    100 m

    Che Gateway

    che-gateway

    kube-rbac-proxy

    512 MiB

    64 MiB

    500 m

    100 m

    Devfile registry

    devfile-registry

    devfile-registry

    256 MiB

    32 MiB

    500 m

    100 m

    Plugin registry

    plugin-registry

    plugin-registry

    256 MiB

    32 MiB

    500 m

    100 m

    DevWorkspace Controller Manager

    devworkspace-controller-manager

    devworkspace-controller

    1 GiB

    100 MiB

    1000 m

    250 m

    DevWorkspace Controller Manager

    devworkspace-controller-manager

    kube-rbac-proxy

    N/A

    N/A

    N/A

    N/A

    DevWorkspace webhook server

    devworkspace-webhook-server

    webhook-server

    300 MiB

    20 MiB

    200 m

    100 m

    DevWorkspace Operator Catalog

    devworkspace-operator-catalog

    registry-server

    N/A

    50 MiB

    N/A

    10 m

    DevWorkspace Webhook Server

    devworkspace-webhook-server

    webhook-server

    300 MiB

    20 MiB

    200 m

    100 m

    DevWorkspace Webhook Server

    devworkspace-webhook-server

    kube-rbac-proxy

    N/A

    N/A

    N/A

    N/A

    Total

    9 GiB

    1.2 GiB

    6.9

    1.3