Skip to main content
Version Next

Security — Trino

The tdp-trino chart supports LDAP authentication when ldap.enabled: true in the values file. Behavior summary:

  • ldap.enabled: false (default): HTTP (port 8080), no mandatory authentication, no extra certificate volumes for this flow.
  • ldap.enabled: true (with LDAP values): HTTPS (port 8443), PASSWORD authentication, certificates, and associated secrets.

Optional certificate resources: trinoCerts.pvc, trinoCerts.secret, trinoCerts.copyJob — see the chart's values.yaml.

Preparation

  • LDAP server accessible from the cluster.
  • Keystores/passwords required for HTTPS, stored in Kubernetes Secrets (do not commit real values to Git).

Create Secret with TLS materials (example)

Example
kubectl -n <namespace> create secret generic <certificate-secret-name> \
--from-file=keystore.jks=<local-path>/keystore.jks

Adjust key names to what the chart expects (check in the Helm values export).

LDAP enabled (illustrative)

A supplementary file (e.g. values-ldap.yaml) typically sets ldap.enabled: true and adjusts trino.server.config (HTTPS, authenticationType, etc.). Replace hosts, DNs, and secrets with those from your directory:

ldap:
enabled: true

trino:
server:
config:
https:
enabled: true
port: 8443
keystore:
path: "/etc/trino/certs/keystore.jks"
authenticationType: "PASSWORD"
# Additional volumes, mounts, and files: follow the comments in helm show values

Installation or upgrade:

Example
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/tdp-trino \
-n <namespace> --create-namespace \
-f values.yaml \
-f values-ldap.yaml

Connect with Trino client

HTTP (LDAP disabled):

kubectl -n <namespace> port-forward service/<release> 8080:8080 &
trino --server http://localhost:8080

HTTPS (LDAP enabled):

kubectl -n <namespace> port-forward service/<release> 8443:8443 &
trino --server https://localhost:8443 \
--user <ldap-user> \
--password \
--insecure

In production, prefer validating the certificate instead of using --insecure.

Quick comparison

ModeTypical portAuthenticationHTTPS
ldap.enabled: false8080None (chart default)No
ldap.enabled: true8443PASSWORD (LDAP)Yes

Main Parameters

ParameterLDAP offLDAP on
ldap.enabledfalsetrue
trino.server.config.https.enabledfalsetrue
trino.server.config.authenticationType""PASSWORD
trinoCerts.pvc.enabledfalsetrue (typical)
trinoCerts.secret.enabledfalsetrue (typical)

Best practices

  • Prefer LDAPS (port 636) in production over plain LDAP.
  • Rotate keystore passwords and secrets.
  • Restrict LDAP bind user permissions.

Troubleshooting

ProblemWhat to check
Pod does not start with LDAPKeystore paths, Secret, and trinoCerts.*
Login failureBind/DN pattern and LDAP connectivity
Port errorClient using 8080 vs 8443 depending on mode

For the full list of parameters, use helm show values for the chart version you installed.