chectl
Eclipse Che CLI
Report issues
Issues are tracked on the main Eclipse Che Repository: https://github.com/eclipse/che/issues
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 :
- Download the latest release :
$ curl -LO <URL of the latest release that you can find following previous link ( select the tag : chectl-macos )>
- Rename the file
$ mv chectl-macos /usr/local/bin/chectl
- 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]
chectl devfile:generate
chectl help [COMMAND]
chectl server:delete
chectl server:start
chectl server:stop
chectl server:update
chectl update [CHANNEL]
chectl workspace:inject
chectl workspace:list
chectl workspace:start
chectl workspace:stop
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 and multi-user mode
-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/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 [default: https://che-devfile-registry.openshift.io/] The URL of the
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 [default: https://che-plugin-registry.openshift.io/v3] The URL of the
plugin registry.
--self-signed-cert Authorize usage of self signed certificates for encryption
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] 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
--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 <chectl@eclipse.org>
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.