Skip to content

EduIDE/EduIDE-Helm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

148 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EduIDE Cloud Helm Charts

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 installations
  • theia-cloud-crds installs the custom resource definitions
  • theia-cloud installs Theia Cloud itself and depends on theia-cloud-base and theia-cloud-crds

Release Model

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.

Cluster Prerequisites

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.

Versioning

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

Release a new version

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.

How to generate Chart READMEs

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go Template 100.0%