Skip to content

CLI to manage Eclipse Che server and workspaces

License

Notifications You must be signed in to change notification settings

vitaliy-guliy/chectl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Binary downloads of chectl can be found on the Release page.

Download the chectl binary and add it to your PATH.

If you're using macOS, here is how to install chectl binary with curl on macOS :

  1. Download the latest release :
$ curl -LO <URL of the latest release that you can find following previous link ( select the tag : chectl-macos )> 
  1. Rename the file
$ mv chectl-macos /usr/local/bin/chectl
  1. Make the chectl binary executable
$ chmod +x /usr/local/bin/chectl

Currently chectl requires minikube and helm to be locally installed.

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 was deployed
  --listr-renderer=listr-renderer  [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

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

chectl server:start

start Eclipse Che Server

USAGE
  $ chectl server:start

OPTIONS
  -a, --installer=installer                    Installer type. Valid values are "helm", "operator" and "minishift-addon"

  -b, --domain=domain                          Domain of the Kubernetes/OpenShift cluster (e.g.
                                               starter-us-east-2.openshiftapps.com or <local-ip>.nip.io)

  -h, --help                                   show CLI help

  -i, --cheimage=cheimage                      [default: 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 resources will be deployed

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

  -p, --platform=platform                      [default: minikube] Type of Kubernetes platform. Valid values are
                                               "minikube", "minishift", "k8s", "openshift", "microk8s".

  -s, --tls                                    Enable TLS encryption. Note that `che-tls` with TLS certificate must be
                                               created in the configured namespace.

  --self-signed-cert                           Authorize usage of self signed certificates for encryption.

  -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

  --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=listr-renderer              [default: default] Listr renderer. Can be 'default', 'silent' or
                                               'verbose'

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

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

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 resources will 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=listr-renderer    [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

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

chectl server:update

update Eclipse Che Server

USAGE
  $ chectl server:update

OPTIONS
  -h, --help                       show CLI help
  -n, --chenamespace=chenamespace  [default: che] Kubernetes namespace where Che resources will be deployed
  --listr-renderer=listr-renderer  [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

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 workspace is running

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

  --listr-renderer=listr-renderer  [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

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 deployed
  --listr-renderer=listr-renderer  [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

See code: src/commands/workspace/list.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 deployed
  -w, --workspaceconfig=workspaceconfig  path to a valid workspace configuration json file
  --access-token=access-token            Che OIDC Access Token
  --listr-renderer=listr-renderer        [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

  --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 deployed
  --listr-renderer=listr-renderer  [default: default] Listr renderer. Can be 'default', 'silent' or 'verbose'

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

Contributing

Clone the repository:

git clone https://github.com/che-incubator/chectl.git
cd chectl

Build the source code and run chectl:

yarn
./bin/run --help

Run the tests:

yarn test

Package the binary

yarn pack
pkg . -t node10-linux-x64,node10-macos-x64,node10-win-x64 --out-path ./bin/

Providing Pull Request

chectl is using several Pull Request checks

  • Conventional Commits convention for the commit messages. There is a required Pull Request check named Semantic Pull Request that is ensuring that all commits messages are correctly setup. In order to merge a Pull Request, it has to be green.

  • Signed Commits. Each commit needs to have the Signed-off part It needs to be added on the commit message:

feat(hello): This is my first commit message

Signed-off-by: John Doe <[email protected]>

Git even has a -s command line option to append this automatically to your commit message:

$ git commit -s -m 'feat(hello): This is my first commit message'
  • Unit tests with Travis-CI. It will ensure that yarn test command is passing.

All these checks are mandatory in order to have the Pull Request merged.

About

CLI to manage Eclipse Che server and workspaces

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.9%
  • Other 0.1%