Helm charts for Trino and Trino Gateway https://trinodb.github.io/charts/
  • Go Template 65.4%
  • Shell 34.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Manfred Moser 19a890d26f Release Trino Gateway chart 1.22.0 for app 22
Bump the chart version to 1.22.0 and the app version to 22.
2026-10-20 11:44:49 -07:00
.github Stop naming the default Trino tag in CI job names 2026-10-18 09:36:35 +02:00
charts Release Trino Gateway chart 1.22.0 for app 22 2026-10-20 11:44:49 -07:00
tests Update the end-to-end test fixtures 2026-10-18 09:36:35 +02:00
.gitignore Replace both test scripts with a single driver 2026-10-10 15:04:29 +02:00
.helmignore Import the Trino Gateway chart 2024-11-17 09:43:04 +01:00
.pre-commit-config.yaml Update test dependencies not covered by Dependabot 2026-09-26 14:24:16 +02:00
LICENSE Added license 2021-01-13 09:52:29 -05:00
README.md Release Trino Gateway chart 1.22.0 for app 22 2026-10-20 11:44:49 -07:00

Trino Community Kubernetes Helm Charts

CI/CD

A repository of Helm charts for the Trino community. The following charts are included:

Usage

Helm must be installed to use the charts. Refer to Helm's documentation to get started.

Once Helm is set up properly, add the repo as follows:

helm repo add trino https://trinodb.github.io/charts/

Run helm search repo trino to see the latest charts with the string trino in the name to get an output similar to the following:

NAME               	CHART VERSION	APP VERSION	DESCRIPTION
trino/trino        	1.45.0       	484        	Fast distributed SQL query engine for big data ...
trino/trino-gateway	1.22.0       	22         	A Helm chart for Trino Gateway

Use helm search repo trino -l for information about all available versions.

After configuring your Kubernetes cluster, you can install Trino with the chart trino/trino using:

helm install my-trino trino/trino --version 1.45.0

The charts are also published as OCI artifacts to the GitHub Container Registry, so they can be pulled through a registry proxy that does not support Helm chart repositories. Install from there without adding a repo using:

helm install my-trino oci://ghcr.io/trinodb/charts/trino --version 1.45.0

Also, you can check the manifests using:

helm template my-trino trino/trino --namespace <YOUR_NAMESPACE>

Similarly install Trino Gateway with the trino/trino-gateway chart.

Documentation

More information about Trino, Trino Gateway, and the charts is available in the following resources:

Development

Each test case is a values file under a chart's ci directory. ct lint validates every chart against every one of them, and tests/run.sh installs the chart once per case into a throwaway namespace and runs the chart's Helm tests against it.

brew install helm kind chart-testing
kind create cluster
./tests/run.sh trino

Some cases need something else in the cluster first. Those prerequisites are a Helm chart of their own, tests/fixtures, and --fixtures selects the ones to install, so a run only pays for what it uses:

Fixture Needed by
prometheus trino/complete, gateway/complete
keda trino/complete
postgres trino/resource-groups-properties, every gateway case
gateway-api trino/gateway, trino/gateway-https
./tests/run.sh trino --cases complete --fixtures prometheus,keda
./tests/run.sh gateway --fixtures all

Use --cases to run only some of them, --tag to test a different Trino version, and --keep to leave the namespace in place so failing resources can be inspected. See ./tests/run.sh --help for the rest.

./tests/run.sh trino --cases graceful-shutdown --keep

The prometheus and keda fixtures create cluster scoped resources that belong to their Helm release: CRDs, ClusterRoles, ClusterRoleBindings and an APIService. Only one run using them can be in flight per cluster, and tests/run.sh has to uninstall the release rather than only delete the namespace, which is what its teardown does. If such a run is killed before it can clean up, those resources are left owned by a release that no longer exists and the next run cannot adopt them. Recover by deleting whatever the dead release still owns:

for kind in clusterrole clusterrolebinding apiservice crd; do
  kubectl get "$kind" -o json |
    jq -r --arg ns "$STALE_NAMESPACE" \
      '.items[] | select(.metadata.annotations["meta.helm.sh/release-namespace"] == $ns)
       | "\(.kind)/\(.metadata.name)"'
done | xargs -r kubectl delete

The documentation is automatically generated from the chart files. Install a git hook to have it automatically updated when committing changes. Make sure you install the pre-commit binary, then run:

pre-commit install
pre-commit install-hooks