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