/dsri-helm-charts

Helm charts for the Data Science Research Infrastructure at Maastricht University

Primary LanguageSmartyMIT LicenseMIT

DSRI Helm Charts

Release Charts Artifact Hub

Helm charts to easily deploy Data Science workspaces and services on Kubernetes and OpenShift. Developed for the Data Science Research Infrastructure at Maastricht University

Checkout the charts folder to browse the charts available:

Install

To deploy charts from the terminal you will need to have helm installed on your machine, you can follow this documentation to install it.

Add the DSRI Helm Charts repository:

helm repo add dsri https://maastrichtu-ids.github.io/dsri-helm-charts/
helm repo update

Quickstart an application

Quickstart JupyterLab on OpenShift with default settings and using existing anyuid service account to run as root:

helm install jupyterlab dsri/jupyterlab \
  --set serviceAccount.name=anyuid,openshiftRoute.enabled=true \
  --set password=changeme

Delete:

helm uninstall jupyterlab

Refer to the README.md for each application in the charts folder for more details.

Develop

Install:

pipx install yamllint

Lint to check for errors:

helm lint charts/*
yamllint charts/jupyterlab/templates/deployment.yaml

Test a chart without deploying:

helm install --dry-run --debug ./charts/libre-chat --generate-name
# You can change some properties on the fly:
helm install --dry-run --debug ./charts/jupyterlab --set serviceAccount.name=anyuid,openshiftRoute.enabled=true,password=changeme --generate-name

Deploy from local source code:

helm install code-server ./charts/jupyterlab --set serviceAccount.name=anyuid,openshiftRoute.enabled=true,password=changeme

Delete:

helm uninstall jupyterlab

Create a new chart:

helm create charts/your-new-chart

Generate docs

Install helm-docs (requires golang installed):

go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest

Generate a README.md for all charts by running helm-docs from the root of the git repository:

helm-docs

Automatically generate docs when commiting using pre-commit hooks:

pip install pre-commit
pre-commit install
pre-commit install-hooks

Add charts to your OpenShift Catalog

You can easily add this Helm charts repository to your OpenShift cluster catalog if you have admin privileges:

cat <<EOF | oc apply -f -
apiVersion: helm.openshift.io/v1beta1
kind: HelmChartRepository
metadata:
  name: dsri-helm-charts
spec:
  name: dsri-helm-charts
  connectionConfig:
    url: https://maastrichtu-ids.github.io/dsri-helm-charts/
EOF

Credits

JSON schema generated using https://www.jsonschema.net

Example JSON schema in RedHat Helm chart: https://github.com/redhat-developer/redhat-helm-charts/blob/master/alpha/nodejs-ex-k/values.schema.json