This repository contains the helm charts for Theia Cloud.
There are three charts:
theia-cloud-base
installs cluster wide resources that may be used by multiple Theia Cloud installationstheia-cloud-crds
installs the custom resource definitionstheia-cloud
installs Theia Cloud itself and depends ontheia-cloud-base
andtheia-cloud-crds
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.
-
ingress-nginx is used to performantly assemble nginx configuration files and synchronizes changes. Learn more about it here.
Note: Since ingress-nginx version 1.10 , the annotation nginx.ingress.kubernetes.io/configuration-snippet
is disabled by default and needs to be enabled.
To enable this option, you need to set the flag allow-snippet-annotations: "true"
in the ingress-nginx values.
kubectl -n ingress-nginx patch cm ingress-nginx-controller --patch '{"data":{"allow-snippet-annotations":"true"}}'
kubectl -n ingress-nginx delete pod -l app.kubernetes.io/name=ingress-nginx
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.1
The 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:latest
or run the Rebuild READMEs
task.