Fast distributed SQL query engine for big data analytics that helps you explore your data universe
Homepage: https://trino.io/
-
nameOverride
- string, default:nil
Override resource names to avoid name conflicts when deploying multiple releases in the same namespace. Example:
coordinatorNameOverride: trino-coordinator-adhoc workerNameOverride: trino-worker-adhoc nameOverride: trino-adhoc
-
coordinatorNameOverride
- string, default:nil
-
workerNameOverride
- string, default:nil
-
image.registry
- string, default:""
Image registry, defaults to empty, which results in DockerHub usage
-
image.repository
- string, default:"trinodb/trino"
Repository location of the Trino image, typically
organization/imagename
-
image.tag
- string, default:""
Image tag, defaults to the Trino release version specified as
appVersion
from Chart.yaml -
image.digest
- string, default:""
Optional digest value of the image specified as
sha256:abcd...
. A specified value overridestag
. -
image.useRepositoryAsSoleImageReference
- bool, default:false
When true, only the content in
repository
is used as image reference -
image.pullPolicy
- string, default:"IfNotPresent"
-
imagePullSecrets[0].name
- string, default:"registry-credentials"
-
server.workers
- int, default:2
-
server.node.environment
- string, default:"production"
-
server.node.dataDir
- string, default:"/data/trino"
-
server.node.pluginDir
- string, default:"/usr/lib/trino/plugin"
-
server.log.trino.level
- string, default:"INFO"
-
server.config.path
- string, default:"/etc/trino"
-
server.config.http.port
- int, default:8080
-
server.config.https.enabled
- bool, default:false
-
server.config.https.port
- int, default:8443
-
server.config.https.keystore.path
- string, default:""
-
server.config.authenticationType
- string, default:""
Trino supports multiple authentication types: PASSWORD, CERTIFICATE, OAUTH2, JWT, KERBEROS.
-
server.config.query.maxMemory
- string, default:"4GB"
-
server.exchangeManager.name
- string, default:"filesystem"
-
server.exchangeManager.baseDir
- string, default:"/tmp/trino-local-file-system-exchange-manager"
-
server.workerExtraConfig
- string, default:""
-
server.coordinatorExtraConfig
- string, default:""
-
server.autoscaling.enabled
- bool, default:false
-
server.autoscaling.maxReplicas
- int, default:5
-
server.autoscaling.targetCPUUtilizationPercentage
- int, default:50
-
server.autoscaling.behavior
- object, default:{}
Configuration for scaling up and down. Example:
scaleDown: stabilizationWindowSeconds: 300 policies: - type: Percent value: 100 periodSeconds: 15 scaleUp: stabilizationWindowSeconds: 0 policies: - type: Percent value: 100 periodSeconds: 15 - type: Pods value: 4 periodSeconds: 15 selectPolicy: Max
-
accessControl
- object, default:{}
System access control configuration. Example:
type: configmap refreshPeriod: 60s # Rules file is mounted to /etc/trino/access-control configFile: "rules.json" rules: rules.json: |- { "catalogs": [ { "user": "admin", "catalog": "(mysql|system)", "allow": "all" }, { "group": "finance|human_resources", "catalog": "postgres", "allow": true }, { "catalog": "hive", "allow": "all" }, { "user": "alice", "catalog": "postgresql", "allow": "read-only" }, { "catalog": "system", "allow": "none" } ], "schemas": [ { "user": "admin", "schema": ".*", "owner": true }, { "user": "guest", "owner": false }, { "catalog": "default", "schema": "default", "owner": true } ] }
-
resourceGroups
- object, default:{}
Resource groups file is mounted to /etc/trino/resource-groups/resource-groups.json Example:
resourceGroupsConfig: |- { "rootGroups": [ { "name": "global", "softMemoryLimit": "80%", "hardConcurrencyLimit": 100, "maxQueued": 100, "schedulingPolicy": "fair", "jmxExport": true, "subGroups": [ { "name": "admin", "softMemoryLimit": "30%", "hardConcurrencyLimit": 20, "maxQueued": 10 }, { "name": "finance_human_resources", "softMemoryLimit": "20%", "hardConcurrencyLimit": 15, "maxQueued": 10 }, { "name": "general", "softMemoryLimit": "30%", "hardConcurrencyLimit": 20, "maxQueued": 10 }, { "name": "readonly", "softMemoryLimit": "10%", "hardConcurrencyLimit": 5, "maxQueued": 5 } ] } ], "selectors": [ { "user": "admin", "group": "global.admin" }, { "group": "finance|human_resources", "group": "global.finance_human_resources" }, { "user": "alice", "group": "global.readonly" }, { "group": "global.general" } ] }
-
additionalNodeProperties
- list, default:[]
Additional node properties. Example, assuming the NODE_ID environment variable has been set:
- node.id=${NODE_ID}
-
additionalConfigProperties
- list, default:[]
Additional config properties. Example:
- internal-communication.shared-secret=random-value-999 - http-server.process-forwarded=true
-
additionalLogProperties
- list, default:[]
Additional log properties. Example:
- io.airlift=DEBUG
-
additionalExchangeManagerProperties
- list, default:[]
-
eventListenerProperties
- list, default:[]
Event listener properties. To configure multiple event listeners, add them in
coordinator.additionalConfigFiles
andworker.additionalConfigFiles
, and set theevent-listener.config-files
property inadditionalConfigProperties
to their locations. Example:- event-listener.name=custom-event-listener - custom-property1=custom-value1 - custom-property2=custom-value2
-
additionalCatalogs
- object, default:{}
Configure additional catalogs. The TPCH and TPCDS catalogs are always enabled by default, with 4 splits per node. Example:
objectstore: | connector.name=iceberg iceberg.catalog.type=glue jmx: | connector.name=memory memory: | connector.name=memory memory.max-data-per-node=128MB
-
env
- list, default:[]
additional environment variables added to every pod, specified as a list with explicit values Example:
- name: NAME value: "value"
-
envFrom
- list, default:[]
additional environment variables added to every pod, specified as a list of either ConfigMap or Secret references Example:
- secretRef: name: extra-secret
-
initContainers
- object, default:{}
Additional containers that run to completion during pod initialization. Example:
coordinator: - name: init-coordinator image: busybox:1.28 imagePullPolicy: IfNotPresent command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"] worker: - name: init-worker image: busybox:1.28 command: ['sh', '-c', 'echo The worker is running! && sleep 3600']
-
sidecarContainers
- object, default:{}
Additional containers that starts before the Trino container and continues to run. Example:
coordinator: - name: side-coordinator image: busybox:1.28 imagePullPolicy: IfNotPresent command: ['sleep', '1'] worker: - name: side-worker image: busybox:1.28 imagePullPolicy: IfNotPresent command: ['sleep', '1']
-
securityContext.runAsUser
- int, default:1000
-
securityContext.runAsGroup
- int, default:1000
-
containerSecurityContext
- object, default:{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}}
Container security context configuration.
-
containerSecurityContext.allowPrivilegeEscalation
- bool, default:false
Control whether a process can gain more privileges than its parent process.
-
containerSecurityContext.capabilities.drop
- list, default:["ALL"]
A list of the Linux kernel capabilities that are dropped from every container. Valid values are listed at https://man7.org/linux/man-pages/man7/capabilities.7.html Ensure to remove the "CAP_" prefix which the kernel attaches to the names of permissions.
-
shareProcessNamespace.coordinator
- bool, default:false
-
shareProcessNamespace.worker
- bool, default:false
-
service.annotations
- object, default:{}
-
service.type
- string, default:"ClusterIP"
-
service.port
- int, default:8080
-
auth
- object, default:{}
Available authentication methods. Use username and password provided as a password file:
passwordAuth: "username:encrypted-password-with-htpasswd"
Set the name of a secret containing this file in the password.db key
passwordAuthSecret: "trino-password-authentication"
Additionally, set users' groups:
refreshPeriod: 5s groups: "group_name:user_1,user_2,user_3"
-
serviceAccount.create
- bool, default:false
Specifies whether a service account should be created
-
serviceAccount.name
- string, default:""
The name of the service account to use. If not set and create is true, a name is generated using the fullname template
-
serviceAccount.annotations
- object, default:{}
Annotations to add to the service account
-
configMounts
- list, default:[]
Allows mounting additional Trino configuration files from Kubernetes config maps on all nodes. Example:
- name: sample-config-mount configMap: sample-config-map path: /config-map/sample.json
-
secretMounts
- list, default:[]
Allows mounting additional Trino configuration files from Kubernetes secrets on all nodes. Example:
- name: sample-secret secretName: sample-secret path: /secrets/sample.json
-
coordinator.jvm.maxHeapSize
- string, default:"8G"
-
coordinator.jvm.gcMethod.type
- string, default:"UseG1GC"
-
coordinator.jvm.gcMethod.g1.heapRegionSize
- string, default:"32M"
-
coordinator.config.memory.heapHeadroomPerNode
- string, default:""
-
coordinator.config.query.maxMemoryPerNode
- string, default:"1GB"
-
coordinator.additionalJVMConfig
- list, default:[]
-
coordinator.additionalExposedPorts
- object, default:{}
Additional ports configured in the coordinator container and the service. Example:
https: servicePort: 8443 name: https port: 8443 protocol: TCP
-
coordinator.resources
- object, default:{}
It is recommended not to specify default resources and to leave this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. If you do want to specify resources, use the following example, and adjust it as necessary. Example:
limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi
-
coordinator.livenessProbe
- object, default:{}
Liveness probe options Example:
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1
-
coordinator.readinessProbe
- object, default:{}
Readiness probe Example:
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1
-
coordinator.lifecycle
- object, default:{}
Coordinator container lifecycle events Example:
preStop: exec: command: ["/bin/sh", "-c", "sleep 120"]
-
coordinator.terminationGracePeriodSeconds
- int, default:30
-
coordinator.nodeSelector
- object, default:{}
-
coordinator.tolerations
- list, default:[]
-
coordinator.affinity
- object, default:{}
-
coordinator.additionalConfigFiles
- object, default:{}
Additional config files placed in the default configuration directory. Example:
secret.txt: | secret-value
-
coordinator.additionalVolumes
- list, default:[]
One or more additional volumes to add to the coordinator. Example:
- name: extras emptyDir: {}
-
coordinator.additionalVolumeMounts
- list, default:[]
One or more additional volume mounts to add to the coordinator. Example:
- name: extras mountPath: /usr/share/extras readOnly: true
-
coordinator.annotations
- object, default:{}
-
coordinator.labels
- object, default:{}
-
coordinator.configMounts
- list, default:[]
Allows mounting additional Trino configuration files from Kubernetes config maps on the coordinator node. Example:
- name: sample-config-mount configMap: sample-config-mount path: /config-mount/sample.json
-
coordinator.secretMounts
- list, default:[]
Allows mounting additional Trino configuration files from Kubernetes secrets on the coordinator node. Example:
- name: sample-secret secretName: sample-secret path: /secrets/sample.json
-
worker.jvm.maxHeapSize
- string, default:"8G"
-
worker.jvm.gcMethod.type
- string, default:"UseG1GC"
-
worker.jvm.gcMethod.g1.heapRegionSize
- string, default:"32M"
-
worker.config.memory.heapHeadroomPerNode
- string, default:""
-
worker.config.query.maxMemoryPerNode
- string, default:"1GB"
-
worker.additionalJVMConfig
- list, default:[]
-
worker.additionalExposedPorts
- object, default:{}
Additional container ports configured in all worker pods. Example:
https: servicePort: 8443 name: https port: 8443 protocol: TCP
-
worker.resources
- object, default:{}
It is recommended not to specify default resources and to leave this as a conscious choice for the user. This also increases chances charts run on environments with little resources, such as Minikube. If you do want to specify resources, use the following example, and adjust it as necessary. Example:
limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi
-
worker.livenessProbe
- object, default:{}
Liveness probe Example:
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1
-
worker.readinessProbe
- object, default:{}
Readiness probe Example:
initialDelaySeconds: 20 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1
-
worker.lifecycle
- object, default:{}
To enable graceful shutdown, define a lifecycle preStop like bellow, Set the
terminationGracePeriodSeconds
to a value greater than or equal to the configuredshutdown.grace-period
. Configureshutdown.grace-period
inadditionalConfigProperties
asshutdown.grace-period=2m
(default is 2 minutes). Also configureaccessControl
because thedefault
system access control does not allow graceful shutdowns. Example:preStop: exec: command: ["/bin/sh", "-c", "curl -v -X PUT -d '\"SHUTTING_DOWN\"' -H \"Content-type: application/json\" http://localhost:8081/v1/info/state"]
-
worker.terminationGracePeriodSeconds
- int, default:30
-
worker.nodeSelector
- object, default:{}
-
worker.tolerations
- list, default:[]
-
worker.affinity
- object, default:{}
-
worker.additionalConfigFiles
- object, default:{}
Additional config files placed in the default configuration directory. Example:
secret.txt: | secret-value
-
worker.additionalVolumes
- list, default:[]
One or more additional volume mounts to add to all workers. Example:
- name: extras emptyDir: {}
-
worker.additionalVolumeMounts
- list, default:[]
One or more additional volume mounts to add to all workers. Example:
- name: extras mountPath: /usr/share/extras readOnly: true
-
worker.annotations
- object, default:{}
-
worker.labels
- object, default:{}
-
worker.configMounts
- list, default:[]
Allows mounting additional Trino configuration files from Kubernetes config maps on all worker nodes. Example:
- name: sample-config-mount configMap: sample-config-mount path: /config-mount/sample.json
-
worker.secretMounts
- list, default:[]
Allows mounting additional Trino configuration files from Kubernetes secrets on all worker nodes. Example:
- name: sample-secret secretName: sample-secret path: /secrets/sample.json
-
kafka.mountPath
- string, default:"/etc/trino/schemas"
-
kafka.tableDescriptions
- object, default:{}
Custom kafka table descriptions that will be mounted in mountPath. Example:
testschema.json: |- { "tableName": "testtable", "schemaName": "testschema", "topicName": "testtopic", "key": { "dataFormat": "json", "fields": [ { "name": "_key", "dataFormat": "VARCHAR", "type": "VARCHAR", "hidden": "false" } ] }, "message": { "dataFormat": "json", "fields": [ { "name": "id", "mapping": "id", "type": "BIGINT" }, { "name": "test_field", "mapping": "test_field", "type": "VARCHAR" } ] } }
-
jmx.enabled
- bool, default:false
Set to true to enable the RMI server to expose Trino's JMX metrics.
-
jmx.registryPort
- int, default:9080
-
jmx.serverPort
- int, default:9081
-
jmx.exporter.enabled
- bool, default:false
Set to true to export JMX Metrics via HTTP for Prometheus consumption
-
jmx.exporter.image
- string, default:"bitnami/jmx-exporter:latest"
-
jmx.exporter.pullPolicy
- string, default:"Always"
-
jmx.exporter.port
- int, default:5556
-
jmx.exporter.configProperties
- list, default:[]
JMX Config Properties is mounted to /etc/jmx-exporter/jmx-exporter-config.yaml Example:
configProperties: |- startDelaySeconds: 0 ssl: false lowercaseOutputName: false lowercaseOutputLabelNames: false includeObjectNames: ["java.lang:type=Threading"] autoExcludeObjectNameAttributes: true excludeObjectNameAttributes: "java.lang:type=OperatingSystem": - "ObjectName" "java.lang:type=Runtime": - "ClassPath" - "SystemProperties" rules: - pattern: 'java\.lang<type=Threading><(.*)>ThreadCount: (.*)' name: java_lang_Threading_ThreadCount value: '$2' help: 'ThreadCount (java.lang<type=Threading><>ThreadCount)' type: UNTYPED
-
serviceMonitor.enabled
- bool, default:false
Set to true to create resources for the prometheus-operator.
-
serviceMonitor.labels
- object, default:{"prometheus":"kube-prometheus"}
Labels for serviceMonitor, so that Prometheus can select it
-
serviceMonitor.interval
- string, default:"30s"
The serviceMonitor web endpoint interval
-
commonLabels
- object, default:{}
Labels that get applied to every resource's metadata
-
ingress.enabled
- bool, default:false
-
ingress.className
- string, default:""
-
ingress.annotations
- object, default:{}
-
ingress.hosts
- list, default:[]
Ingress rules. Example:
- host: trino.example.com paths: - path: / pathType: ImplementationSpecific
-
ingress.tls
- list, default:[]
Autogenerated from chart metadata using helm-docs v1.13.1