diff --git a/modules/installation-guide/examples/che-pvc-strategies.adoc b/modules/installation-guide/examples/che-pvc-strategies.adoc index 46dd4d9c7d..a2237fc969 100644 --- a/modules/installation-guide/examples/che-pvc-strategies.adoc +++ b/modules/installation-guide/examples/che-pvc-strategies.adoc @@ -10,7 +10,7 @@ One PVC for all workspaces in one {platforms-namespace} * Each workspace is in a separate {platforms-namespace} -* Only one workspace is running per {platforms-namespace} at the same time. See xref:installation-guide:running-more-than-one-workspace-at-a-time.adoc[]. +* Only one workspace is running per {platforms-namespace} at the same time. See xref:installation-guide:configuring-the-number-of-workspaces-a-user-can-run.adoc[]. |*per-workspace* | One PVC for one workspace diff --git a/modules/installation-guide/nav.adoc b/modules/installation-guide/nav.adoc index 79e101b0e3..49cfdec30c 100644 --- a/modules/installation-guide/nav.adoc +++ b/modules/installation-guide/nav.adoc @@ -35,7 +35,7 @@ ** xref:configuring-namespace-strategies.adoc[] ** xref:configuring-storage-strategies.adoc[] ** xref:configuring-storage-types.adoc[] -** xref:running-more-than-one-workspace-at-a-time.adoc[] +** xref:configuring-the-number-of-workspaces-a-user-can-run.adoc[] ** xref:configuring-workspace-exposure-strategies.adoc[] ** xref:configuring-workspaces-nodeselector.adoc[] ** xref:configuring-che-hostname.adoc[] diff --git a/modules/installation-guide/pages/configuring-the-number-of-workspaces-a-user-can-run.adoc b/modules/installation-guide/pages/configuring-the-number-of-workspaces-a-user-can-run.adoc new file mode 100644 index 0000000000..980897c82c --- /dev/null +++ b/modules/installation-guide/pages/configuring-the-number-of-workspaces-a-user-can-run.adoc @@ -0,0 +1,7 @@ +[id="configuring-the-number-of-workspaces-a-user-can-run"] +// = Configuring the number of workspaces a user can run +:navtitle: Configuring the number of workspaces +:keywords: installation-guide, running-workspaces +:page-aliases: .:configuring-the-number-of-workspaces-a-user-can-run, .:running-more-than-one-workspace-at-a-time, running-more-than-one-workspace-at-a-time + +include::partial$assembly_configuring-the-number-of-workspaces-a-user-can-run.adoc[] diff --git a/modules/installation-guide/pages/running-more-than-one-workspace-at-a-time.adoc b/modules/installation-guide/pages/running-more-than-one-workspace-at-a-time.adoc deleted file mode 100644 index 2f0edeb0ef..0000000000 --- a/modules/installation-guide/pages/running-more-than-one-workspace-at-a-time.adoc +++ /dev/null @@ -1,8 +0,0 @@ -[id="running-more-than-one-workspace-at-a-time"] -// = Running more than one workspace at a time -:navtitle: Running more than one workspace at a time -:keywords: installation-guide, running-workspaces -:page-aliases: .:running-more-than-one-workspace-at-a-time - -include::partial$proc_running-more-than-one-workspace-at-a-time.adoc[] - diff --git a/modules/installation-guide/partials/assembly_advanced-configuration.adoc b/modules/installation-guide/partials/assembly_advanced-configuration.adoc index c8192bcb09..bc9c97c8a9 100644 --- a/modules/installation-guide/partials/assembly_advanced-configuration.adoc +++ b/modules/installation-guide/partials/assembly_advanced-configuration.adoc @@ -16,7 +16,7 @@ The next sections describe some specific user stories. * xref:configuring-namespace-strategies.adoc[] -* xref:running-more-than-one-workspace-at-a-time.adoc[] +* xref:configuring-the-number-of-workspaces-a-user-can-run.adoc[] * xref:configuring-workspaces-nodeselector.adoc[] diff --git a/modules/installation-guide/partials/assembly_configuring-the-number-of-workspaces-a-user-can-run.adoc b/modules/installation-guide/partials/assembly_configuring-the-number-of-workspaces-a-user-can-run.adoc new file mode 100644 index 0000000000..25d2c0d6a8 --- /dev/null +++ b/modules/installation-guide/partials/assembly_configuring-the-number-of-workspaces-a-user-can-run.adoc @@ -0,0 +1,18 @@ +:parent-context-of-configuring-the-number-of-workspaces-a-user-can-run: {context} + +[id="configuring-the-number-of-workspaces-a-user-can-run_{context}"] += Configuring the number of workspaces a user can run + +:context: configuring-the-number-of-workspaces-a-user-can-run + +This article describes how to configure the number of workspaces a user can run simultaneously. + +include::partial$proc_configuring-the-number-of-workspaces-a-user-can-run-using-the-operator.adoc[leveloffset=+1] + +ifeval::["{project-context}" == "che"] + +include::partial$proc_configuring-the-number-of-workspaces-a-user-can-run-using-configmap.adoc[leveloffset=+1] + +endif::[] + +:context: {parent-context-of-configuring-the-number-of-workspaces-a-user-can-run} \ No newline at end of file diff --git a/modules/installation-guide/partials/con_persistent-volume-configuration.adoc b/modules/installation-guide/partials/con_persistent-volume-configuration.adoc index c185625e93..ba20fbd2a2 100644 --- a/modules/installation-guide/partials/con_persistent-volume-configuration.adoc +++ b/modules/installation-guide/partials/con_persistent-volume-configuration.adoc @@ -38,7 +38,7 @@ If there are several nodes, you can use the `common` strategy, but: * The workspace PVC access mode must be reconfigured to `ReadWriteMany` (RWM), so multiple nodes can use this PVC simultaneously. -* Only one workspace in the same {orch-namespace} may be running. See xref:installation-guide:running-more-than-one-workspace-at-a-time.adoc[]. +* Only one workspace in the same {orch-namespace} may be running. See xref:installation-guide:configuring-the-number-of-workspaces-a-user-can-run.adoc[]. The `common` PVC strategy is not suitable for large multi-node clusters. Therefore, it is best to use it in single-node clusters. However, in combination with the `per-workspace` {orch-namespace} strategy, the `common` PVC strategy is usable for clusters with not more than 75 nodes. The PVC used with this strategy must be large enough to accommodate all projects to prevent a situation in which one project depletes the resources of others. diff --git a/modules/installation-guide/partials/proc_configuring-namespace-strategies.adoc b/modules/installation-guide/partials/proc_configuring-namespace-strategies.adoc index 94e2adff91..0e5aab3f79 100644 --- a/modules/installation-guide/partials/proc_configuring-namespace-strategies.adoc +++ b/modules/installation-guide/partials/proc_configuring-namespace-strategies.adoc @@ -44,7 +44,7 @@ endif::[] NOTE: The underlying environment variable that {prod-short} server uses is `CHE_INFRA_KUBERNETES_NAMESPACE_DEFAULT`. -WARNING: By default, only one workspace in the same {orch-namespace} can be running at one time. See xref:running-more-than-one-workspace-at-a-time.adoc[]. +WARNING: By default, only one workspace in the same {orch-namespace} can be running at one time. See xref:configuring-the-number-of-workspaces-a-user-can-run.adoc[]. [WARNING] ==== diff --git a/modules/installation-guide/partials/proc_configuring-the-number-of-workspaces-a-user-can-run-using-configmap.adoc b/modules/installation-guide/partials/proc_configuring-the-number-of-workspaces-a-user-can-run-using-configmap.adoc new file mode 100644 index 0000000000..052aa7bf3d --- /dev/null +++ b/modules/installation-guide/partials/proc_configuring-the-number-of-workspaces-a-user-can-run-using-configmap.adoc @@ -0,0 +1,34 @@ +[id="configuring-the-number-of-workspaces-a-user-can-run-using-configmap_{context}"] += Configuring the number of workspaces a user can run using ConfigMap + +This procedure describes how to run more than one workspace simultaneously using ConfigMap. + +.Prerequisites +* An instance of `{prod-short}` installed using ConfigMap. +Each new workspace creates at least one new mount point to the storage (PV), in write mode. The default `common` storage strategy in `ReadWriteOnce` access mode reuses the same PV to physically store all data from multiple volumes of all workspaces of the same user, and doesn't support multiple mount points. Therefore to increase the number of simultaneously running workspaces, the combination of PVC strategy and access mode must meet the following criteria: ++ +-- +** `ReadWriteMany` access mode and an arbitrary PVC strategy +** `ReadWriteOnce` access mode and `per-workspace` or `unique` PVC strategy +-- ++ +For more information, see xref:configuring-storage-strategies.adoc[]. +* Determine the values of the following placeholders: ++ +[cols="1,2"] +|=== +| `__` +| The namespace of the product. The default option for `{platforms-namespace}` is `{prod-namespace}`. + +| `__` +| The number of workspaces a user can run simultaneously. The default value is `1`. If the value is `-1`, an unlimited number of workspaces can run per user. If it is a precise positive value, that many workspaces can run per user. +|=== + +.Procedure +. Configure the number of workspaces a user can run simultaneously: ++ +[subs="+quotes,+attributes"] +---- +$ helm upgrade che -n --set \ +che.limits.userWorkspacesRunCount= +---- diff --git a/modules/installation-guide/partials/proc_configuring-the-number-of-workspaces-a-user-can-run-using-the-operator.adoc b/modules/installation-guide/partials/proc_configuring-the-number-of-workspaces-a-user-can-run-using-the-operator.adoc new file mode 100644 index 0000000000..a44a7e045c --- /dev/null +++ b/modules/installation-guide/partials/proc_configuring-the-number-of-workspaces-a-user-can-run-using-the-operator.adoc @@ -0,0 +1,40 @@ + +[id="configuring-the-number-of-workspaces-a-user-can-run-using-the-operator_{context}"] += Configuring the number of workspaces a user can run using the Operator + +This procedure describes how to run more than one workspace simultaneously using the Operator. + +.Prerequisites +* An instance of `{prod-short}` installed using the Operator. +Each new workspace creates at least one new mount point to the storage (PV), in write mode. The default `common` storage strategy in `ReadWriteOnce` access mode reuses the same PV to physically store all data from multiple volumes of all workspaces of the same user, and doesn't support multiple mount points. Therefore to increase the number of simultaneously running workspaces, the combination of PVC strategy and access mode must meet the following criteria: ++ +-- +** `ReadWriteMany` access mode and an arbitrary PVC strategy +** `ReadWriteOnce` access mode and `per-workspace` or `unique` PVC strategy +-- ++ +For more information, see xref:configuring-storage-strategies.adoc[]. +* Determine the value of the following placeholder: ++ +[cols="1,2"] +|=== +| `__` +| The number of workspaces a user can run simultaneously. The default value is `1`. If the value is `-1`, an unlimited number of workspaces can run per user. If it is a precise positive value, that many workspaces can run per user. +|=== + +.Procedure +. In the `CheCluster` Custom Resource `server` settings, add the `+CHE_LIMITS_USER_WORKSPACES_RUN_COUNT+` property to `customCheProperties`: ++ +==== +[source,yaml] +---- +apiVersion: org.eclipse.che/v1 +kind: CheCluster +# [...] +spec: + server: + # [...] + customCheProperties: + CHE_LIMITS_USER_WORKSPACES_RUN_COUNT: "" +---- +==== diff --git a/modules/installation-guide/partials/proc_running-more-than-one-workspace-at-a-time.adoc b/modules/installation-guide/partials/proc_running-more-than-one-workspace-at-a-time.adoc deleted file mode 100644 index 5f4574470e..0000000000 --- a/modules/installation-guide/partials/proc_running-more-than-one-workspace-at-a-time.adoc +++ /dev/null @@ -1,43 +0,0 @@ -// Module included in the following assemblies: -// -// advanced-configuration - -[id="running-more-than-one-workspace-at-a-time_{context}"] -= Running more than one workspace at a time - -This procedure describes how to run more than one workspace simultaneously. This makes it possible for multiple workspace contexts per user to run in parallel. - -.Prerequisites - -* The `{platforms-cli}` tool is available. -* An instance of {prod-short} running in {platforms-name}. -+ -[NOTE] -==== -The following commands use the default {platforms-namespace}, `{prod-namespace}`, as a user's example for the `-n` option. -==== - -.Procedure - -. Set the `per-workspace` or `unique` PVC strategy if the underlying storage backend does not support or not configured to use the `ReadWriteMany` access mode. See xref:configuring-storage-strategies.adoc[]. -+ -IMPORTANT: The default `common` PVC strategy, which uses a single PVC per user, supports running multiple workspaces simultaneously only if the persistent volumes on the cluster are configured to use the `ReadWriteMany` access mode. -That way, any of the user's concurrent workspaces can read from and write to the common PVC. -In some cases, configuring `ReadWriteMany` is not possible due to the storage limitations, for example, link:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html[EBS] only supports `ReadWriteOnce` access mode. -. Change the default limit of `1` to `-1` to allow an unlimited number of concurrent workspaces, or to the precise value, for example, `10` to allow running `10` concurrent workspaces per user simultaneously: - -ifeval::["{project-context}" == "che"] -* For Helm Chart deployments: -+ -[subs="+quotes,+attributes"] ----- -$ helm upgrade che -n {prod-namespace} --set che.limits.userWorkspacesRunCount=-1 ----- -* For Operator deployments: -+ -endif::[] -[subs="+quotes,+attributes"] ----- -$ {orch-cli} patch checluster/{prod-checluster} -n {prod-namespace} --type merge \ - -p '{ "spec": { "server": {"customCheProperties": {"CHE_LIMITS_USER_WORKSPACES_RUN_COUNT": "-1"} } }}' -----