This repository contains the helm charts for Theia Cloud.
There are three charts:
theia-cloud-baseinstalls cluster wide resources that may be used by multiple Theia Cloud installationstheia-cloud-crdsinstalls the custom resource definitionstheia-cloudinstalls Theia Cloud itself and depends ontheia-cloud-baseandtheia-cloud-crds
Released charts are published as OCI artifacts to ghcr.io/eduide/charts.
theia-deployment should consume those published chart versions directly for normal staging and production deployments.
Pull requests also publish preview OCI chart versions using a pr-<number> suffix on top of the chart version already present in Chart.yaml.
theia-deployment can consume those previews through a simple tag input such as pr-123.
The charts depend on well-established software in the Kubernetes ecosystem. Please make sure to install the dependencies before releasing with helm.
-
cert-manager.io is used for certificate management, supports internal/testing issuers and supports Let's Encrypt certificates. Installation instructions can be found here, a helm chart here.
-
Envoy Gateway (Gateway API) is used to route traffic to Theia Cloud components. Ensure Gateway API CRDs and Envoy Gateway are installed in your cluster and the GatewayClass name matches
theia-cloud.gateway.className(default:envoy).
You can find more information in the official Theia Cloud documentation.
The chart version should get updated on every change/commit/PR.
However only changed charts should get an increased version, e.g. when a commit changes the theia-cloud chart, only this chart version has to be increased.
See below for more information:
# Releases
# follow semantic versioning (starting with release 0.9.0)
version: 1.0.0
# Pre-Releases
# append -next.X to the next version. X should be increased on every change/commit/PR
version: 1.0.0-next.0
version: 1.0.0-next.1The appVersion is pointing to the <version>-next tag this means that the images consumed are bound to change, when a new pre-release of that component is published.
Therefore, you should only use full releases for deployments, as the next tag might change at any time.
If you still want to use a next version you should pin the used images to a specific version (<version>-next.<commitSHA>).
New release every three months.
Provide a commit where the next parts are removed from the version and the appVersion fields of ALL charts.
Also set the images used in charts to the version of the release.
The release should be done after the main repository provided a release and the docker images were pushed.
With next change after a release needs the version number should be bumped and -next.0/-next should be added to the version/appVersion fields.
Furthermore, the new version, together with a release estimation date, should be added to the changelog.
docker pull jnorwood/helm-docs:latest && docker run --rm --volume "$(pwd)/charts:/helm-docs" -u $(id -u) jnorwood/helm-docs:latestor run the Rebuild READMEs task.