Tableau Server Helm Chart - Reference

Important: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts.

Introduction

This topic provides reference information for deploying Tableau Server on Kubernetes using a Helm chart.

Values property matrix

The table below lists all leaf properties from values.yaml.

  • Value: dotted key path

  • Optional: whether the property can be omitted for chart rendering

  • Expected value(s): valid type or allowed values

  • Range: numeric or semantic range where applicable

Value Default Description Optional Expected value(s) Range
deploymentMode single Deployment pattern selector true single or multinode N/A
image.repository "" Tableau image repository false container image repo string non-empty string
image.tag "" Tableau image tag false image tag string non-empty string
image.pullPolicy IfNotPresent Image pull policy true Always,IfNotPresent,Never N/A
image.pullSecrets [] Image pull secret refs true string array of secret names N/A
serviceAccount.create true Create dedicated ServiceAccount true boolean N/A
serviceAccount.name "" ServiceAccount name override true string DNS label
serviceAccount.annotations {} ServiceAccount annotations true map[string]string N/A
securityContext.runAsUser 999 Container UID true integer >=0
securityContext.runAsGroup 998 Container GID true integer >=0
podSecurityContext.runAsUser 999 Pod-level UID true integer >=0
podSecurityContext.runAsGroup 998 Pod-level GID true integer >=0
podSecurityContext.fsGroup 998 Shared volume FS group true integer >=0
podSecurityContext.fsGroupChangePolicy OnRootMismatch FS group ownership policy true OnRootMismatch or Always N/A
primary.replicaCount 1 Primary StatefulSet replicas true integer >=1
primary.hostname primary Primary hostname hint true string non-empty
primary.resources.limits.cpu "16" Primary CPU limit true Kubernetes CPU quantity >0
primary.resources.limits.memory "64Gi" Primary memory limit true Kubernetes memory quantity >0
primary.resources.requests.cpu "8" Primary CPU request true Kubernetes CPU quantity >0
primary.resources.requests.memory "32Gi" Primary memory request true Kubernetes memory quantity >0
primary.nodeSelector {} Primary node selector true map[string]string N/A
primary.tolerations [] Primary tolerations true array of toleration objects N/A
primary.affinity {} Primary affinity rules true affinity object N/A
worker.replicaCount 1 Worker StatefulSet replicas true integer >=0
worker.hostname worker Worker hostname hint true string non-empty
worker.resources.limits.cpu "16" Worker CPU limit true Kubernetes CPU quantity >0
worker.resources.limits.memory "64Gi" Worker memory limit true Kubernetes memory quantity >0
worker.resources.requests.cpu "8" Worker CPU request true Kubernetes CPU quantity >0
worker.resources.requests.memory "32Gi" Worker memory request true Kubernetes memory quantity >0
worker.nodeSelector {} Worker node selector true map[string]string N/A
worker.tolerations [] Worker tolerations true array of toleration objects N/A
worker.affinity {} Worker affinity rules true affinity object N/A
worker.healthChecks.enabled false Enable worker probes true boolean N/A
env.ACCEPTEULA "1" Accept Tableau EULA true "1" or "0" N/A
env.LICENSE_KEY "" License key via env true string non-empty if used
env.TABLEAU_HOSTNAME "" Explicit Tableau hostname true string DNS name/FQDN
env.TSM_ONLY "0" Run TSM-only mode true "1" or "0" N/A
env.TSM_REMOTE_UID "" TSM remote UID true numeric string >=0
env.TSM_REMOTE_USERNAME "" TSM remote username true string N/A
env.TSM_REMOTE_PASSWORD "" TSM remote password via env true string non-empty if used
env.TABLEAU_USERNAME "" Tableau admin username via env true string non-empty if used
env.TABLEAU_PASSWORD "" Tableau admin password via env true string non-empty if used
env.ALWAYS_WRITE_BOOTSTRAP_FILE "0" Write bootstrap file from primary true "1" or "0" N/A
env.BOOTSTRAP_INSTALL "0" Worker bootstrap install mode true "1" or "0" N/A
env.WAIT_FOR_BOOTSTRAP_FILE "0" Worker bootstrap install mode true "1" or "0" N/A
env.HTTP_PROXY "" Wait for bootstrap file true URL string N/A
env.HTTPS_PROXY "" HTTPS proxy URL true URL string N/A
env.NO_PROXY "" HTTPS proxy URL true comma-separated hosts/CIDRs N/A
env.PORT_RANGE_MIN 8600 Dynamic port range minNo-proxy list true numeric string 1-65535
env.PORT_RANGE_MAX 9000 Dynamic port range max true numeric string 1-65535; >= min
env.COORDINATION_SERVICE_CLIENT_PORT "" ZK client port override true numeric string 1-65535
env.COORDINATION_SERVICE_PEER_PORT "" ZK peer port override true numeric string 1-65535
env.LICENSE_SERVICE_VENDOR_DAEMON_PORT "" ZK leader port override true numeric string 1-65535
env.COORDINATION_SERVICE_LEADER_PORT "" License daemon port override true numeric string 1-65535
env.AGENT_FILE_TRANSFER_PORT "" Agent file transfer port override true numeric string 1-65535
env.CONTROLLER_PORT "" Controller port override true numeric string 1-65535
persistence.enabled true Enable data PVCs true boolean N/A
persistence.storageClass "" Data PVC storage class true string existing StorageClass
persistence.accessMode ReadWriteOnce Data PVC access mode true ReadWriteOnce,ReadOnlyMany,ReadWriteMany N/A
persistence.size 100Gi Data PVC size true Kubernetes quantity >0
persistence.bootstrap.enabled true Enable bootstrap PVC (multinode) true boolean N/A
persistence.bootstrap.storageClass "" Bootstrap PVC storage class true string existing StorageClass
persistence.bootstrap.accessMode ReadWriteMany Bootstrap PVC access mode true typically ReadWriteMany N/A
persistence.bootstrap.size 1Gi Bootstrap PVC size true Kubernetes quantity >0
persistence.bootstrap.createPV false Let chart create static PV true boolean N/A
persistence.bootstrap.volumeName "" Explicit bootstrap PV name binding true string existing PV name
persistence.bootstrap.pv.name "" PV name when createPV=true true string DNS-1123
persistence.bootstrap.pv.capacity 1Gi PV capacity true Kubernetes quantity >0
persistence.bootstrap.pv.reclaimPolicy Retain PV reclaim policy true Retain,Delete,Recycle N/A
persistence.bootstrap.pv.volumeMode Filesystem PV volume mode true Filesystem or Block N/A
persistence.bootstrap.pv.csi.driver efs.csi.aws.com CSI driver for bootstrap PV true CSI driver name N/A
persistence.bootstrap.pv.csi.volumeHandle "" EFS/FileSystem handle true provider-specific ID non-empty if createPV=true
persistence.bootstrap.pv.csi.volumeAttributes {} CSI volume attributes map true map[string]string N/A
persistence.bootstrap.permissionsFix.enabled false Enable bootstrap permission init true boolean N/A
persistence.bootstrap.permissionsFix.image busybox:1.36 Permission-fix image true valid image ref N/A
persistence.bootstrap.permissionsFix.runAsUser 0 UID for permission-fix init true integer >=0
persistence.bootstrap.permissionsFix.fsOwner 999 chown UID for bootstrap dir true integer >=0
persistence.bootstrap.permissionsFix.fsGroup 998 chown GID for bootstrap dir true integer >=0
persistence.bootstrap.permissionsFix.dirMode "2775" chmod mode for bootstrap dir true string octal mode 0000-7777
config.configJson JSON block Tableau config.json content true valid JSON string N/A
config.regInfoJson JSON block Tableau registration JSON true valid JSON string N/A
config.tabsvcYml YAML block Tableau tabsvc.yml content true valid YAML string N/A
    License key via chart secret true string non-empty if used
secrets.tsmRemotePassword "" TSM remote password via secret true string non-empty if used
secrets.tableauUsername "" Tableau admin username via secret true string non-empty if used
secrets.tableauPassword "" Tableau admin password via secret true string non-empty if used
service.primary.type ClusterIP Primary service type true ClusterIP,NodePort,LoadBalancer N/A
service.primary.ports.http 80 Primary HTTP port true integer 1-65535
service.primary.ports.gateway 8080 Primary gateway port true integer 1-65535
service.primary.ports.ssl 8443 Primary SSL port true integer 1-65535
service.primary.ports.tsm 8850 Primary TSM port true integer 1-65535
service.primary.ports.dynamic.start 8600 Dynamic port start true integer 1-65535
service.primary.ports.dynamic.end 9000 Dynamic port end true integer 1-65535; >= star
service.primary.annotations {} Primary service annotations true map[string]string N/A
service.worker.ports.http ClusterIP Worker service type true ClusterIP,NodePort,LoadBalancer N/A
service.worker.ports.http 80 Worker HTTP port true integer 1-65535
service.worker.ports.gateway 8080 Worker gateway port true integer 1-65535
service.worker.ports.ssl 8443 Worker SSL port true integer 1-65535
service.worker.ports.tsm 8850 Worker TSM port true integer 1-65535
service.worker.ports.dynamic.start 8600 Worker dynamic start true integer 1-65535
service.worker.ports.dynamic.end 9000 Worker dynamic end true integer 1-65535; >= start
service.worker.annotations {} Worker service annotations true map[string]string N/A
ingress.enabled false Enable ingress true boolean N/A
ingress.className "" Ingress class name true string existing class
ingress.annotations {} Ingress annotations true map[string]string N/A
ingress.hosts [{host: tableau.example.com, paths:[...]}] Ingress host/path config true array of host/path objects N/A
ingress.tls [] Ingress TLS entries true array of TLS objects N/A
healthChecks.startup.enabled true Enable startup probe true boolean N/A
healthChecks.startup.initialDelaySeconds 300 Startup probe delay true integer >=0
healthChecks.startup.periodSeconds 15 Startup probe period true integer >=1
healthChecks.startup.timeoutSeconds 30 Startup probe timeout true integer >=1
healthChecks.startup.failureThreshold 200 Startup failure threshold true integer >=1
healthChecks.liveness.enabled true Enable liveness probe true boolean N/A
healthChecks.liveness.initialDelaySeconds 300 Liveness probe delay true integer >=0
healthChecks.liveness.periodSeconds 30 Liveness probe period true integer >=1
healthChecks.liveness.timeoutSeconds 10 Liveness probe timeout true integer >=1
healthChecks.liveness.successThreshold 1 Liveness success threshold true integer >=1
healthChecks.liveness.failureThreshold 3 Liveness failure threshold true integer >=1
healthChecks.readiness.enabled true Enable readiness probe true boolean N/A
healthChecks.readiness.initialDelaySeconds 300 Readiness probe delay true integer >=0
healthChecks.readiness.periodSeconds 10 Readiness probe period true integer >=1
healthChecks.readiness.timeoutSeconds 5 Readiness probe timeout true integer >=1
healthChecks.readiness.successThreshold 1 Readiness success threshold true integer >=1
healthChecks.readiness.failureThreshold 3 Readiness failure threshold true integer >=1
podDisruptionBudget.enabled false Enable PodDisruptionBudget true boolean N/A
podDisruptionBudget.minAvailable 1 Minimum pods available true integer or percent string >=0
labels {} Extra common labels true map[string]string N/A
annotations {} Extra common annotations true map[string]string N/A
podLabels {} Extra pod labels true map[string]string N/A
podAnnotations {} Extra pod annotations true map[string]string N/A
hooks.autoApplyWorkerTopology.enabled false Enable post-install/upgrade topology hook true boolean N/A
hooks.autoApplyWorkerTopology.kubectlImage bitnami/kubectl:latest Hook job kubectl image true valid image ref N/A
hooks.autoApplyWorkerTopology.timeoutSeconds 3600 Hook timeout while waiting for workers true integer >=60 integer >=60 >=60

Additional Resources

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!