The following pages and posts are tagged with
| Title | Excerpt |
|---|---|
| CLI Reference | CLI syntax and commands The CLI is a Docker-formatted container image that comes with a collection of commands to configure, interact with, and start Che. The CLI also contains commands, such as sync and ssh, for end users to interact with workspaces. ... |
| Configuring Che on Docker | The Che on Docker configuration is handled by modifying the che.env file that is placed in the root directory of a host directory mounted to :/data. This configuration file is generated during the che init phase. If you rerun the che init command in an already initialized... |
| Multi-user: Installation on Docker | System requirements Minimum 4GB of RAM (for the three Che containers and one 2GB workspace) 2 CPUs Ports 8080, 5050, and the ephemeral port range publicly available for inbound connections (32768-65535) ... |
| Single-User: Installation on Docker | This section walks you through the single-user installation of Che on Docker. Prerequisites Use Docker version 17 or higher. Older versions are untested but may work (1.13 or higher). To install the latest Docker version, see https://docs.docker.com/install/. |
| Infrastructures supported in Eclipse Che | Introduction Eclipse Che runs on several infrastructures and container engines: Docker OpenShift: OpenShift Container Platform (OCP), OpenShift Online (OSO), OpenShift Dedicated (OCD), MiniShift Kubernetes |
| Che on Kubernetes: Admin Guide | :page-layout: _auto
:admin-context: Kubernetes
:ctl-command: kubectl
:k8s-namespace: Kubernetes Namespace
:docs-registry-link: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
:che-data-volume-link: https://github.com/eclipse/che/blob/master/deploy/kubernetes/helm/che/templates/deployment.yaml#L57
:cluster-nodes-link: https://kubernetes.io/docs/concepts/architecture/nodes/#management
// This content (file) is included in:
//
// * setup-kubernetes/kubernetes-admin-guide.adoc
// * setup-openshift/openshift-admin-guide.adoc
//
// The 'admin-context' variable (set in the parent files)
// is used to determine K8s or OpenShift use.
// ifeval::[{admin-context} == "OpenShift"]
// :ctl-command: oc
// :k8s-namespace: OpenShift Project
// endif::[]
//
// ifeval::[{admin-context} == "Kubernetes"]
// :ctl-command: kubectl
// :k8s-namespace: Kubernetes Namespace
// endif::[]
hen the deployment YAML files run,
[id="ram-prerequisites"]
== RAM prerequisites
[id="single-user-prerequisites"]
=== Single-user prerequisites
3 GB of RAM is required for single-user Che on {admin-context}.
Single-user Che uses RAM in this distribution:
* Che server pod uses up to 1 GB of RAM. The initial request for RAM is 256 MB. The Che server pod rarely uses more than 800 MB RAM.
* Workspaces use 2 GB of RAM.
[id="multi-user-prerequisites"]
=== Multi-user prerequisites
You must have at least 5 GB of RAM to run multi-user Che. The Keycloak authorization server and PostgreSQL database require the extra RAM. Multi-user Che uses RAM in this distribution:
* Che server: approximately 750 MB
* Keycloak: approximately 1 GB
* PostgreSQL: approximately 515 MB
* Workspaces: 2 GB of RAM per workspace. The total workspace RAM depends on the size of the workspace runtime(s) and the number of concurrent workspace pods.
=== Setting default workspace RAM limits
The default workspace RAM limit and the RAM allocation request can be configured by passing the `pass:[CHE_WORKSPACE_DEFAULT__MEMORY__LIMIT__MB]` and `pass:[CHE_WORKSPACE_DEFAULT__MEMORY__REQUEST__MB]` parameters to a Che deployment.
For example, use the following configuration to limit the amount of RAM used by workspaces to 2048 MB and to request the allocation of 1024 MB of RAM:
[subs="+attributes"]
----
$ {ctl-command} set env dc/che CHE_WORKSPACE_DEFAULT__MEMORY__LIMIT__MB=2048 \
CHE_WORKSPACE_DEFAULT__MEMORY__REQUEST__MB=1024
----
[NOTE]
====
* The user can override the default values when creating a workspace.
* A RAM request greater than the RAM limit is ignored.
====
[id="requirements-for-resource-allocation-and-quotas"]
== Requirements for resource allocation and quotas
Workspace pods are created in the account of the user who deploys Che. The user needs enough quota for RAM, CPU, and storage to create the pods.
[id="setting-up-the-project-workspace"]
== Setting up the project workspace
Workspace objects are created differently depending on the configuration. Eclipse Che currently supports two different configurations:
* Single {admin-context} project
* Multi {admin-context} project
[id="setting-up-a-single-openshift-project"]
=== Setting up a single {admin-context} project
To setup a single {admin-context} project:
. Define the service account used to create workspace objects with the `CHE_OPENSHIFT_SERVICEACCOUNTNAME` variable.
. To ensure this service account is visible to the Che server, put the service and the Che server in the same namespace.
. Give the service account permissions to create and edit {admin-context} resources.
. If the developer needs to create an object outside of the service accounts bound namespace, give the service account cluster-admin rights by running this command:
+
[subs="+attributes"]
----
$ {ctl-command} adm policy add-cluster-role-to-user self-provisioner system:serviceaccount:eclipse-che:che
----
In the command above, `eclipse-che` is the Che namespace.
[id="setting-up-a-multi-openshift-project"]
=== Setting up a multi {admin-context} project
. To create workspace objects in different namespaces for each user, set the `NULL_CHE_INFRA_OPENSHIFT_PROJECT` variable to `NULL`.
. To create resources on behalf of the currently logged-in user, use the user’s {admin-context} tokens.
[id="how-the-che-server-uses-PVCs-and-PVs-for-storage"]
== How the Che server uses PVCs and PVs for storage
Che server, Keycloak and PostgreSQL pods, and workspace pods use Persistent Volume Claims (PVCs), which are bound to the physical Persistent Volumes (PVs) with https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes[ReadWriteOnce access mode]. When the deployment YAML files run, they define the Che PVCs. You can configure link:#storage-strategies-for-che-workspaces[workspace PVC] access mode and claim size with Che deployment environment variables.
[IMPORTANT]
====
The following two conditions prevent the user from running multiple workspaces:
* Che uses the `common` Persistent Volume Claim (PVC) strategy
* Persistent volumes (PVs) use `ReadWriteOnce` (RWO) access mode
To work around this limitation, use one of the following measures:
* Set `ReadWriteMany` (RWX) access mode for PVs
* Use the `unique` PVC strategy
* Use the `per-workspace` strategy
====
[id="storage-requirements-for-che-infrastructure"]
=== Storage requirements for Che infrastructure
* Che server: 1 GB to store logs and initial workspace stacks.
* Keycloak: 2 PVCs, 1 GB each to store logs and Keycloak data.
* PostgreSQL: 1 GB PVC to store database.
[id="storage-strategies-for-che-workspaces"]
=== Storage strategies for Che workspaces
The workspace PVC strategy is configurable:
[width="100%",cols="25%,25%,25%,25%",options="header",]
|===
|strategy |details |pros |cons
|*unique (default)* | One PVC per workspace volume or user-defined PVC |Storage isolation |An undefined number of PVs is required
|*common* | One PVC for all workspaces in one {k8s-namespace}
Sub-paths pre-created |Easy to manage and control storage |Workspaces must be in a separate {k8s-namespace} if PV does not support ReadWriteMany (RWX) access mode
|*per-workspace* | One PVC for one workspace
Sub-paths pre-created |Easy to manage and control storage |Workspace containers must all be in one pod if PV does not support ReadWriteMany (RWX) access mode
|===
[id="unique-pvc-strategy"]
=== Unique PVC strategy
[id="how-the-unique-pvc-strategy-works"]
==== How the unique PVC strategy works
Every Che Volume of workspace gets its own PVC, which means workspace PVCs are created when a workspace starts for the first time. Workspace PVCs are deleted when a corresponding workspace is deleted.
User-defined PVCs are created with few modifications:
- they are provisioned with genarated names to garantee that it is not conflicting with other PVCs in namespace;
- subpaths of mount volumes that reference user-defined PVCs are prefixed with `{workspace id}/{PVC name}`.
It is done to have the same data structure on PV on different PVC strategies;
[id="enabling-a-unique-strategy"]
==== Enabling a unique strategy
If you have already deployed Che with another strategy, set the `CHE_INFRA_KUBERNETES_PVC_STRATEGY` variable to `unique` in `dc/che`.
Note that existing workspaces data won't be migrated and they will use new unique PVC per Che Volume without cleaning up existing PVCs.
If applying the `che-server-template.yaml` configuration, pass `-p CHE_INFRA_KUBERNETES_PVC_STRATEGY=unique` to the `{ctl-command} new-app` command.
[id="common-pvc-strategy"]
=== Common PVC Strategy
[id="how-the-common-pvc-strategy-works"]
==== How the common PVC strategy works
All workspaces (within one {k8s-namespace}) use the same PVC to store data declared in their volumes (projects and workspace logs by default and whatever additional link:volumes.html[volumes] that a user can define.)
User-defined PVCs are ignored and volumes that reference PVCs are replaced with volume that references common PVC.
The corresponding containers volume mounts are relinked to common volume and subpaths are prefixed with `'{workspaceId}/{originalPVCName}'`.
User-defined PVC name is used as Che Volume name. It means that if Machine is configured to use Che Volume with the same name as user-defined
PVC has then they will use the same shared folder in common PVC.
A PV that is bound to PVC `che-claim-workspace` will have the following structure:
----
pv0001
workspaceid1
workspaceid2
workspaceidn
che-logs projects |
| Configuring Kubernetes | :page-layout: _auto You can configure the behavior of the Che server by passing environment variables to the Che deployment. There are multiple ways to edit the Che deployment to add new or edit existing environment variables: * To open the Che deployment YAML file in text editor, use: + ----... |
| Deploying multi-user Che to Kubernetes | :page-layout: _auto This section walks you through multi-user deployment of Che on Kubernetes. *Prerequisites* * A Kubernetes cluster with at least 4 GB RAM and RBAC: ** For Minikube 0.26.0 and higher, use the following command: + ---- minikube start --cpus 2 --memory 4096 --extra-config=apiserver.authorization-mode=RBAC ---- + ** For Minikube... |
| Deploying single-user Che to Kubernetes | :page-layout: _auto This section walks you through single-user deployment of Che on Kubernetes. *Prerequisites* * A Kubernetes cluster with at least 4 GB RAM and RBAC: ** For Minikube 0.26.0 and higher, use the following command: + ---- minikube start --cpus 2 --memory 4096 --extra-config=apiserver.authorization-mode=RBAC ---- + ** For Minikube... |
| Che on OpenShift: Admin Guide | :page-layout: _auto :admin-context: OpenShift :ctl-command: oc :k8s-namespace: OpenShift Project :docs-registry-link: https://docs.okd.io/latest/architecture/infrastructure_components/image_registry.html :che-data-volume-link: https://github.com/eclipse/che/blob/master/deploy/openshift/templates/pvc/che-server-pvc.yaml#L14 :cluster-nodes-link: https://docs.okd.io/latest/admin_guide/manage_nodes.html include::../setup-kubernetes/kubernetes-or-openshift-admin-guide.adoc[] [id="create-workspace-objects-in-personal-namespaces"] == Creating workspace objects in personal namespaces You can register the OpenShift server as an identity provider when Che is installed in multi-user mode. This allows you to create workspace objects in the... |
| Configuration: OpenShift | :page-layout: _auto [id="admin-guide"] == Admin Guide See: link:openshift-admin-guide.html[OpenShift Admin Guide] to general information that works both for OS and K8S. [id="configure-che-server"] == Configure Che Server Che server is configured by updating environment variables passed to Che deployment. You can configure Che Server when initially deploying Che (See: link:openshift-single-user.html[Installation Single User],... |
| Multi-User: Deploying to OpenShift | :page-layout: _auto [id="deploying-che-on-supported-openshift-flavors-and-versions"] == Deploying Che on supported OpenShift flavors and versions Multi-user Eclipse Che can be deployed to OpenShift Container Platform 3.6 and later, OpenShift Dedicated, and OpenShift Online Pro. The deployment script creates three DeploymentConfigs for Che, PostgreSQL, and Keycloak. PVCs, services, and routes (Che and Keycloak only)... |
| Single-User: Deploy to OpenShift | :page-layout: _auto [id="supported-openshift-flavors-and-versions"] == Supported OpenShift Flavors and Versions Single User Eclipse Che can be deployed to Minishift, OCP, OSD and OSO v3.6+. [id="pre-requisites"] == Pre-Requisites OpenShift oc client installed locally [id="admin-guide"] == Admin Guide See: link:kubernetes-admin-guide.html[Kubernetes Admin Guide] [id="deployment-diagram"] == Deployment Diagram There are a few essential Kubernetes and... |
| Quick-Start | :page-layout: _auto Eclipse Che is a developer workspace server and cloud IDE. You install, run, and manage Eclipse Che with with different container orchestration engines such as Docker or OpenShift. Eclipse Che is available in two modes: * *Single-user*: This is suited for personal desktop environments. * *Multi-user*: This is... |
| Single and Multi-User Che | :page-layout: _auto Eclipse Che is available in two different modes: single-user and multi-user. **Single-user Che** To use Che on your local machine or to evaluate the platform, start with single-user Che. The advantages of using single-user Che are: * The command line interface pulls fewer images. * The user dashboard... |