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
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-nginxYou 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.