Skip to content

we-wake-act21/theia-cloud

 
 

Repository files navigation

Theia Cloud

The goal of Theia Cloud is to simplify the deployment of Theia-based (and similar) products on Kubernetes. We follow a convention over configuration approach allowing users to get started fast. At the same time, we aim for extensibility allowing developers to customize all aspects of the kubernetes deployment as required.

For more information, please also visit our website.

Feedback, Help and Support

If you encounter any problems feel free to open an issue on the repo. For questions and discussions please use the the Github discussions. You can also reach us via email. In addition, EclipseSource also offers professional support for Theia and Theia Cloud.

Components

Theia Cloud consists of the following components.

Kubernetes Custom Resource Definitions and Operator

Theia Cloud brings simple custom resource definitions (CRDs) that allow to specify the required configuration, like the docker image of the Theia-based product.
A Java-based operator will listen for the creation, modification, and deletion of custom resources based on those CRDs and will manage the application.
See Architecture.md for more information on the architecture.

Theia Cloud Service

This REST Service acts as the API for creating and stopping Theia-based products for an authenticated user as well as providing additional information.
The Theia Cloud service creates, modifies, and deletes the custom resources the operator listens to.

Sample Dashboard and reusable JS/UI components

Theia Cloud comes with a basic landing page/dashboard which allows to launch sessions.

We offer a common ts library for the API of the Theia Cloud service, which may be reused by clients to write their own custom dashboards.

We plan to offer reusable ui components in the future as well.

Building

All components are deployed as docker images and may be built with docker. See Building.md for more information. We offer prebuilt images ready to use.

Installation

We offer a helm chart at https://github.com/eclipsesource/theia-cloud-helm which may be used to install Theia Cloud. Please check our getting started guides below as well, which will explain the possible values in more detail.

We offer three charts:

  • theia-cloud-base installs cluster wide resources that may be reused by multiple Theia Cloud installations in different namespaces
  • theia-cloud-crds (starting with version 0.8.1) installs the custom resource definitions for Theia Cloud and migration servers for older custom resources. This may be reused by multiple Theia Cloud installations in different namespaces.
  • theia-cloud installs the Theia Cloud operators, service, and landing-page. It depends on the two above charts.

Starting with version 0.8.1 you may use helm upgrade to update to newer Theia Cloud version.
Older versions (before the introduction of theia-cloud-crds) require a manual uninstall and reinstall as well as a manual CRD upgrade step.

helm repo add theia-cloud-remote https://github.eclipsesource.com/theia-cloud-helm
helm repo update

# Last Release:
helm install theia-cloud-base theia-cloud-remote/theia-cloud-base --set issuer.email=your-mail@example.com

helm install theia-cloud theia-cloud-remote/theia-cloud --namespace theiacloud --create-namespace

# Cutting Edge:
helm install theia-cloud-base theia-cloud-remote/theia-cloud-base --set issuer.email=your-mail@example.com --devel

helm install theia-cloud-crds theia-cloud-remote/theia-cloud-crds  --namespace theiacloud --create-namespace --devel

helm install theia-cloud theia-cloud-remote/theia-cloud --namespace theiacloud --create-namespace --devel

# Optional: switch to the newly created namespace
kubectl config set-context --current --namespace=theiacloud

# Uninstall
helm uninstall theia-cloud -n theiacloud

Getting started with

...Terraform

...Minikube

...GKE

...configuring the Keycloak Realm

Security

Our Security Vulnerability Process may be found here.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 47.8%
  • HTML 32.1%
  • TypeScript 14.1%
  • HCL 4.2%
  • Vue 0.6%
  • JavaScript 0.4%
  • Other 0.8%