/theia-controller

kubernetes CRD controller to manage theias (vscode alternative) - imagine jupyterhub.

Primary LanguageGoApache License 2.0Apache-2.0

theia-controller

kubernetes CRD controller to manage theia (vscode alternative) - imagine jupyterhub.

Referenced mostly from

TODOs

  • Add a react UI to list, stop, and start theia instances
  • (stretch-goal) Add authentications, etc, and integrate with Kubeflow

Docker

See https://hub.docker.com/r/e2fyi/theia-controller

Developer notes

Generate/update codes and CRD manifest

make generate
make manifest

Kustomize

kubebuilder requires kustomize v3.1.0+. kubectl is currently still on v2, so you will need to download kustomize binary from their site.

Deploying theia-controller

# create and deploy the basic controller
kustomize build manifest/kustomize/base > manifest/generated/theia-controller.yaml
kubectl apply -f manifest/generated/theia-controller.yaml

# create and deploy the controller with istio integration
kustomize build manifest/kustomize/istio > manifest/generated/theia-controller-istio.yaml
kubectl apply -f manifest/generated/theia-controller-istio.yaml

Creating a theia statefulset

# deploys a theia CR
kubectl apply -f manifest/examples

If istio is deployed in the cluster, you can access the theia webapp via the route http://<istio-gateway-hostname>/theia/<namespace>/<cr-name> (e.g. http://x.x.x.x/theia/default/my-theia).