Skip to content

CLI to manage Eclipse Che server and workspaces

License

Notifications You must be signed in to change notification settings

nickboldt/chectl

 
 

Repository files navigation

chectl

Eclipse Che CLI

oclif Build Status

asciicast

Report issues

Issues are tracked on the main Eclipse Che Repository: https://github.com/eclipse/che/issues

New questions New bug

Table Of Contents

Installation

There are two channels of chectl: stable and next

Stable is for all tagged versions of Eclipse Che. Next is updated after each commit/Pull Request being merged in master branch of the Chectl repository.

If you're using Windows x64, here is how to install chectl by using one single PowerShell command:

  • For stable channel:
C:\Users> Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://www.eclipse.org/che/chectl/win/'))
  • For next channel:
C:\Users> $CHANNEL="next"; Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://www.eclipse.org/che/chectl/win/'))

If you're using linux or macOS, here is how to install chectl by using one single command:

  • For stable channel:
$ bash <(curl -sL  https://www.eclipse.org/che/chectl/)
  • For next channel:
$ bash <(curl -sL  https://www.eclipse.org/che/chectl/) --channel=next

Assemblies of chectl are available at https://github.com/che-incubator/chectl/releases

Manual install:

  1. Download a .tgz file based on your Operating System / Arch
  2. Unpack the assembly
  3. move chectl folder into a folder like $HOME/chectl
  4. add $HOME/chectl/bin to `$PATH``

Usage

$ chectl server:start
running command...

$ chectl server:stop
running command...

$ chectl workspace:start --devfile
running command...

$ chectl --help [COMMAND]
USAGE
  $ chectl COMMAND
...

Commands

chectl autocomplete [SHELL]

display autocomplete installation instructions

USAGE
  $ chectl autocomplete [SHELL]

ARGUMENTS
  SHELL  shell type

OPTIONS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

EXAMPLES
  $ chectl autocomplete
  $ chectl autocomplete bash
  $ chectl autocomplete zsh
  $ chectl autocomplete --refresh-cache

See code: @oclif/plugin-autocomplete

chectl devfile:generate

generate and print a devfile to stdout given some Kubernetes resources and other Che workspaces features (project, language-support, commands etc...)

USAGE
  $ chectl devfile:generate

OPTIONS
  -h, --help                 show CLI help
  --command=command          Command to include in the workspace
  --dockerimage=dockerimage  dockerimage component to include in the Devfile
  --editor=editor            Specify the Che editor component. Currently supported editors: theia-next,theia-1.0.0
  --git-repo=git-repo        Source code git repository to include in the workspace

  --language=language        Add support for a particular language. Currently supported languages:
                             java,typescript,go,python,c#

  --name=name                Workspace name

  --namespace=namespace      Kubernetes namespace where the resources are defined

  --plugin=plugin            Che plugin to include in the workspace. The format is JSON. For example this is a valid Che
                             Plugin specification: {"type": "TheEndpointName.ChePlugin", "alias": "java-ls", "id":
                             "redhat/java/0.38.0"}

  --selector=selector        label selector to filter the Kubernetes resources. For example
                             --selector="app.kubernetes.io/name=employee-manager"

See code: src/commands/devfile/generate.ts

chectl help [COMMAND]

display help for chectl

USAGE
  $ chectl help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

chectl server:delete

delete any Che related resource: Kubernetes/OpenShift/Helm

USAGE
  $ chectl server:delete

OPTIONS
  -h, --help                               show CLI help

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/server/delete.ts

chectl server:logs

Collect Eclipse Che logs

USAGE
  $ chectl server:logs

OPTIONS
  -d, --directory=directory                Directory to store logs into
  -h, --help                               show CLI help

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  --deployment-name=deployment-name        [default: che] Che deployment name

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/server/logs.ts

chectl server:start

start Eclipse Che Server

USAGE
  $ chectl server:start

OPTIONS
  -a, --installer=helm|operator|minishift-addon
      Installer type

  -b, --domain=domain
      Domain of the Kubernetes cluster (e.g. example.k8s-cluster.com or <local-ip>.nip.io)

  -d, --directory=directory
      Directory to store logs into

  -h, --help
      show CLI help

  -i, --cheimage=cheimage
      [default: quay.io/eclipse/che-server:nightly] Che server container image

  -m, --multiuser
      Starts che in multi-user mode

  -n, --chenamespace=chenamespace
      [default: che] Kubernetes namespace where Che server is supposed to be deployed

  -o, --cheboottimeout=cheboottimeout
      (required) [default: 40000] Che server bootstrap timeout (in milliseconds)

  -p, --platform=minikube|minishift|k8s|openshift|microk8s|docker-desktop|crc
      Type of Kubernetes platform. Valid values are "minikube", "minishift", "k8s (for kubernetes)", "openshift", "crc 
      (for CodeReady Containers)", "microk8s".

  -s, --tls
      Enable TLS encryption.
                           Note that for kubernetes 'che-tls' with TLS certificate must be created in the configured 
      namespace.
                           For OpenShift, router will use default cluster certificates.

  -t, --templates=templates
      [default: templates] Path to the templates folder

  --che-operator-cr-yaml=che-operator-cr-yaml
      Path to a yaml file that defines a CheCluster used by the operator. This parameter is used only when the installer 
      is the operator.

  --che-operator-image=che-operator-image
      [default: quay.io/eclipse/che-operator:nightly] Container image of the operator. This parameter is used only when 
      the installer is the operator

  --deployment-name=deployment-name
      [default: che] Che deployment name

  --devfile-registry-url=devfile-registry-url
      The URL of the external Devfile registry.

  --k8spodreadytimeout=k8spodreadytimeout
      [default: 130000] Waiting time for Pod Ready Kubernetes (in milliseconds)

  --k8spodwaittimeout=k8spodwaittimeout
      [default: 300000] Waiting time for Pod Wait Timeout Kubernetes (in milliseconds)

  --listr-renderer=default|silent|verbose
      [default: default] Listr renderer

  --os-oauth
      Enable use of OpenShift credentials to log into Che

  --plugin-registry-url=plugin-registry-url
      The URL of the external plugin registry.

  --postgres-pvc-storage-class-name=postgres-pvc-storage-class-name
      persistent volume storage class name to use to store Eclipse Che Postgres database

  --self-signed-cert
      Authorize usage of self signed certificates for encryption. Note that `self-signed-cert` secret with CA certificate 
      must be created in the configured namespace.

  --workspace-pvc-storage-class-name=workspace-pvc-storage-class-name
      persistent volume(s) storage class name to use to store Eclipse Che workspaces data

See code: src/commands/server/start.ts

chectl server:stop

stop Eclipse Che Server

USAGE
  $ chectl server:stop

OPTIONS
  -h, --help                               show CLI help

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  --access-token=access-token              Che OIDC Access Token

  --che-selector=che-selector              [default: app=che,component=che] Selector for Che Server resources

  --deployment-name=deployment-name        [default: che] Che deployment name

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/server/stop.ts

chectl server:update

update Eclipse Che Server

USAGE
  $ chectl server:update

OPTIONS
  -a, --installer=helm|operator|minishift-addon                                Installer type
  -h, --help                                                                   show CLI help

  -n, --chenamespace=chenamespace                                              [default: che] Kubernetes namespace where
                                                                               Che server is supposed to be deployed

  -p, --platform=minikube|minishift|k8s|openshift|microk8s|docker-desktop|crc  Type of Kubernetes platform. Valid values
                                                                               are "minikube", "minishift", "k8s (for
                                                                               kubernetes)", "openshift", "crc (for
                                                                               CodeReady Containers)", "microk8s".

  -t, --templates=templates                                                    [default: templates] Path to the
                                                                               templates folder

  --che-operator-image=che-operator-image                                      [default:
                                                                               quay.io/eclipse/che-operator:nightly]
                                                                               Container image of the operator. This
                                                                               parameter is used only when the installer
                                                                               is the operator

  --deployment-name=deployment-name                                            [default: che] Che deployment name

  --listr-renderer=default|silent|verbose                                      [default: default] Listr renderer

  --skip-version-check                                                         Skip user confirmation on version check

See code: src/commands/server/update.ts

chectl update [CHANNEL]

update the chectl CLI

USAGE
  $ chectl update [CHANNEL]

See code: @oclif/plugin-update

chectl workspace:inject

inject configurations and tokens in a Che Workspace

USAGE
  $ chectl workspace:inject

OPTIONS
  -c, --container=container                Target container. If not specified, configuration files will be injected in
                                           all containers of a Che Workspace pod

  -h, --help                               show CLI help

  -k, --kubeconfig                         Inject the local Kubernetes configuration

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  -w, --workspace=workspace                Target workspace. Can be omitted if only one Workspace is running

  --kube-context=kube-context              Kubeconfig context to inject

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/workspace/inject.ts

chectl workspace:list

list Che workspaces

USAGE
  $ chectl workspace:list

OPTIONS
  -h, --help                               show CLI help

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  --access-token=access-token              Che OIDC Access Token

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/workspace/list.ts

chectl workspace:logs

Collect workspace(s) logs

USAGE
  $ chectl workspace:logs

OPTIONS
  -d, --directory=directory                Directory to store logs into
  -h, --help                               show CLI help

  -n, --namespace=namespace                (required) The namespace where workspace is located. Can be found in
                                           workspace configuration 'attributes.infrastructureNamespace' field.

  -w, --workspace=workspace                (required) Target workspace id. Can be found in workspace configuration 'id'
                                           field.

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/workspace/logs.ts

chectl workspace:start

create and start a Che workspace

USAGE
  $ chectl workspace:start

OPTIONS
  -f, --devfile=devfile                    path or URL to a valid devfile
  -h, --help                               show CLI help

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  -w, --workspaceconfig=workspaceconfig    path to a valid workspace configuration json file

  --access-token=access-token              Che OIDC Access Token

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

  --name=name                              workspace name: overrides the workspace name to use instead of the one
                                           defined in the devfile. Works only for devfile

See code: src/commands/workspace/start.ts

chectl workspace:stop

stop a running Che workspace

USAGE
  $ chectl workspace:stop

OPTIONS
  -h, --help                               show CLI help

  -n, --chenamespace=chenamespace          [default: che] Kubernetes namespace where Che server is supposed to be
                                           deployed

  --access-token=access-token              Che OIDC Access Token

  --listr-renderer=default|silent|verbose  [default: default] Listr renderer

See code: src/commands/workspace/stop.ts

Contributing

Contributing to chectl is covered in CONTRIBUTING.md

About

CLI to manage Eclipse Che server and workspaces

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.4%
  • Shell 1.6%