che-operator

module
v0.0.0-...-da0a2c8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2026 License: EPL-2.0

README

Contribute Dev

Eclipse Che Operator

codecov

Description

Eclipse Che operator uses Operator SDK and Go Kube client to deploy, update and manage Kubernetes/OpenShift resources that constitute an Eclipse Che cluster.

Che operator is implemented using operator framework and the Go programming language. Eclipse Che configuration is defined using a custom resource definition object and stored in the custom Kubernetes resource named checluster (or plural checlusters) in the Kubernetes API group org.eclipse.che.

Development

Quick Start
git clone https://github.com/eclipse-che/che-operator.git
cd che-operator
make build  # Build the operator binary
make test   # Run unit tests to verify setup
Update golang dependencies
make update-go-dependencies

New golang dependencies in the vendor folder should be committed and included in the pull request.

Run unit tests
make test
Format the code and fix imports
make fmt
Run static code analyzers
make lint
Update development resources

You have to update development resources if you updated any files in config folder or api/v2/checluster_types.go file:

build/scripts/docker-run.sh make update-dev-resources
Build Che operator image
make docker-build IMG=<YOUR_OPERATOR_IMAGE>
Deploy Che operator from the source code:

For OpenShift cluster:

build/scripts/docker-run.sh /bin/bash -c "
  oc login \
    --token=<...> \
    --server=<...> \
    --insecure-skip-tls-verify=true && \
  build/scripts/olm/test-catalog-from-sources.sh
"

For Kubernetes cluster:

./build/scripts/minikube-tests/test-operator-from-sources.sh
Debug Che operator

You can run/debug this operator on your local machine (without deploying to a k8s cluster).

make debug

Then use VSCode debug configuration Che Operator to attach to a running process.

Validation licenses for runtime dependencies

Che operator is an Eclipse Foundation project. So we have to use only open source runtime dependencies with Eclipse compatible license https://www.eclipse.org/legal/licenses.php. Runtime dependencies license validation process described here: https://www.eclipse.org/projects/handbook/#ip-third-party To merge code with third party dependencies you have to follow process: https://www.eclipse.org/projects/handbook/#ip-prereq-diligence When you are using new golang dependencies you have to validate the license for transitive dependencies too.

Builds

This repo contains several actions, including:

  • release latest stable
  • next builds
  • PR

License

Che is open sourced under the Eclipse Public License 2.0.

Directories

Path Synopsis
api
v1
Package v1 contains API Schema definitions for the org.eclipse.che v1 API group +kubebuilder:object:generate=true +groupName=org.eclipse.che
Package v1 contains API Schema definitions for the org.eclipse.che v1 API group +kubebuilder:object:generate=true +groupName=org.eclipse.che
v2
Package v2 contains API Schema definitions for the org v2 API group +kubebuilder:object:generate=true +groupName=org.eclipse.che
Package v2 contains API Schema definitions for the org v2 API group +kubebuilder:object:generate=true +groupName=org.eclipse.che
controllers
che
devworkspace/solver
Package solver contains the implementation of the "devworkspace routing solver" which provides che-specific logic to the otherwise generic dev workspace routing controller.
Package solver contains the implementation of the "devworkspace routing solver" which provides che-specific logic to the otherwise generic dev workspace routing controller.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL