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

ValueDefaultDescriptionOptionalExpected value(s)Range
deploymentModesingleDeployment pattern selectortruesingle or multinodeN/A
image.repository""Tableau image repositoryfalsecontainer image repo stringnon-empty string
image.tag""Tableau image tagfalseimage tag stringnon-empty string
image.pullPolicyIfNotPresentImage pull policytrueAlways,IfNotPresent,NeverN/A
image.pullSecrets[]Image pull secret refstruestring array of secret namesN/A
serviceAccount.createtrueCreate dedicated ServiceAccounttruebooleanN/A
serviceAccount.name""ServiceAccount name overridetruestringDNS label
serviceAccount.annotations{}ServiceAccount annotationstruemap[string]stringN/A
securityContext.runAsUser999Container UIDtrueinteger>=0
securityContext.runAsGroup998Container GIDtrueinteger>=0
podSecurityContext.runAsUser999Pod-level UIDtrueinteger>=0
podSecurityContext.runAsGroup998Pod-level GIDtrueinteger>=0
podSecurityContext.fsGroup998Shared volume FS grouptrueinteger>=0
podSecurityContext.fsGroupChangePolicyOnRootMismatchFS group ownership policytrueOnRootMismatch or AlwaysN/A
primary.replicaCount1Primary StatefulSet replicastrueinteger>=1
primary.hostnameprimaryPrimary hostname hinttruestringnon-empty
primary.resources.limits.cpu"16"Primary CPU limittrueKubernetes CPU quantity>0
primary.resources.limits.memory"64Gi"Primary memory limittrueKubernetes memory quantity>0
primary.resources.requests.cpu"8"Primary CPU requesttrueKubernetes CPU quantity>0
primary.resources.requests.memory"32Gi"Primary memory requesttrueKubernetes memory quantity>0
primary.nodeSelector{}Primary node selectortruemap[string]stringN/A
primary.tolerations[]Primary tolerationstruearray of toleration objectsN/A
primary.affinity{}Primary affinity rulestrueaffinity objectN/A
worker.replicaCount1Worker StatefulSet replicastrueinteger>=0
worker.hostnameworkerWorker hostname hinttruestringnon-empty
worker.resources.limits.cpu"16"Worker CPU limittrueKubernetes CPU quantity>0
worker.resources.limits.memory"64Gi"Worker memory limittrueKubernetes memory quantity>0
worker.resources.requests.cpu"8"Worker CPU requesttrueKubernetes CPU quantity>0
worker.resources.requests.memory"32Gi"Worker memory requesttrueKubernetes memory quantity>0
worker.nodeSelector{}Worker node selectortruemap[string]stringN/A
worker.tolerations[]Worker tolerationstruearray of toleration objectsN/A
worker.affinity{}Worker affinity rulestrueaffinity objectN/A
worker.healthChecks.enabledfalseEnable worker probestruebooleanN/A
env.ACCEPTEULA"1"Accept Tableau EULAtrue"1" or "0"N/A
env.LICENSE_KEY""Licence key via envtruestringnon-empty if used
env.TABLEAU_HOSTNAME""Explicit Tableau hostnametruestringDNS name/FQDN
env.TSM_ONLY"0"Run TSM-only modetrue"1" or "0"N/A
env.TSM_REMOTE_UID""TSM remote UIDtruenumeric string>=0
env.TSM_REMOTE_USERNAME""TSM remote usernametruestringN/A
env.TSM_REMOTE_PASSWORD""TSM remote password via envtruestringnon-empty if used
env.TABLEAU_USERNAME""Tableau admin username via envtruestringnon-empty if used
env.TABLEAU_PASSWORD""Tableau admin password via envtruestringnon-empty if used
env.ALWAYS_WRITE_BOOTSTRAP_FILE"0"Write bootstrap file from primarytrue"1" or "0"N/A
env.BOOTSTRAP_INSTALL"0"Worker bootstrap install modetrue"1" or "0"N/A
env.WAIT_FOR_BOOTSTRAP_FILE"0"Worker bootstrap install modetrue"1" or "0"N/A
env.HTTP_PROXY""Wait for bootstrap filetrueURL stringN/A
env.HTTPS_PROXY""HTTPS proxy URLtrueURL stringN/A
env.NO_PROXY""HTTPS proxy URLtruecomma-separated hosts/CIDRsN/A
env.PORT_RANGE_MIN8600Dynamic port range minNo-proxy listtruenumeric string1-65535
env.PORT_RANGE_MAX9000Dynamic port range maxtruenumeric string1-65535; >= min
env.COORDINATION_SERVICE_CLIENT_PORT""ZK client port overridetruenumeric string1-65535
env.COORDINATION_SERVICE_PEER_PORT""ZK peer port overridetruenumeric string1-65535
env.LICENSE_SERVICE_VENDOR_DAEMON_PORT""ZK leader port overridetruenumeric string1-65535
env.COORDINATION_SERVICE_LEADER_PORT""Licence daemon port overridetruenumeric string1-65535
env.AGENT_FILE_TRANSFER_PORT""Agent file transfer port overridetruenumeric string1-65535
env.CONTROLLER_PORT""Controller port overridetruenumeric string1-65535
persistence.enabledtrueEnable data PVCstruebooleanN/A
persistence.storageClass""Data PVC storage classtruestringexisting StorageClass
persistence.accessModeReadWriteOnceData PVC access modetrueReadWriteOnce,ReadOnlyMany,ReadWriteManyN/A
persistence.size100GiData PVC sizetrueKubernetes quantity>0
persistence.bootstrap.enabledtrueEnable bootstrap PVC (multi-node)truebooleanN/A
persistence.bootstrap.storageClass""Bootstrap PVC storage classtruestringexisting StorageClass
persistence.bootstrap.accessModeReadWriteManyBootstrap PVC access modetruetypically ReadWriteManyN/A
persistence.bootstrap.size1GiBootstrap PVC sizetrueKubernetes quantity>0
persistence.bootstrap.createPVfalseLet chart create static PVtruebooleanN/A
persistence.bootstrap.volumeName""Explicit bootstrap PV name bindingtruestringexisting PV name
persistence.bootstrap.pv.name""PV name when createPV=truetruestringDNS-1123
persistence.bootstrap.pv.capacity1GiPV capacitytrueKubernetes quantity>0
persistence.bootstrap.pv.reclaimPolicyRetainPV reclaim policytrueRetain,Delete,RecycleN/A
persistence.bootstrap.pv.volumeModeFilesystemPV volume modetrueFilesystem or BlockN/A
persistence.bootstrap.pv.csi.driverefs.csi.aws.comCSI driver for bootstrap PVtrueCSI driver nameN/A
persistence.bootstrap.pv.csi.volumeHandle""EFS/FileSystem handletrueprovider-specific IDnon-empty if createPV=true
persistence.bootstrap.pv.csi.volumeAttributes{}CSI volume attributes maptruemap[string]stringN/A
persistence.bootstrap.permissionsFix.enabledfalseEnable bootstrap permission inittruebooleanN/A
persistence.bootstrap.permissionsFix.imagebusybox:1.36Permission-fix imagetruevalid image refN/A
persistence.bootstrap.permissionsFix.runAsUser0UID for permission-fix inittrueinteger>=0
persistence.bootstrap.permissionsFix.fsOwner999chown UID for bootstrap dirtrueinteger>=0
persistence.bootstrap.permissionsFix.fsGroup998chown GID for bootstrap dirtrueinteger>=0
persistence.bootstrap.permissionsFix.dirMode"2775"chmod mode for bootstrap dirtruestring octal mode0000-7777
config.configJsonJSON blockTableau config.json contenttruevalid JSON stringN/A
config.regInfoJsonJSON blockTableau registration JSONtruevalid JSON stringN/A
config.tabsvcYmlYAML blockTableau tabsvc.yml contenttruevalid YAML stringN/A
  Licence key via chart secrettruestringnon-empty if used
secrets.tsmRemotePassword""TSM remote password via secrettruestringnon-empty if used
secrets.tableauUsername""Tableau admin username via secrettruestringnon-empty if used
secrets.tableauPassword""Tableau admin password via secrettruestringnon-empty if used
service.primary.typeClusterIPPrimary service typetrueClusterIP,NodePort,LoadBalancerN/A
service.primary.ports.http80Primary HTTP porttrueinteger1-65535
service.primary.ports.gateway8080Primary gateway porttrueinteger1-65535
service.primary.ports.ssl8443Primary SSL porttrueinteger1-65535
service.primary.ports.tsm8850Primary TSM porttrueinteger1-65535
service.primary.ports.dynamic.start8600Dynamic port starttrueinteger1-65535
service.primary.ports.dynamic.end9000Dynamic port endtrueinteger1-65535; >= star
service.primary.annotations{}Primary service annotationstruemap[string]stringN/A
service.worker.ports.httpClusterIPWorker service typetrueClusterIP,NodePort,LoadBalancerN/A
service.worker.ports.http80Worker HTTP porttrueinteger1-65535
service.worker.ports.gateway8080Worker gateway porttrueinteger1-65535
service.worker.ports.ssl8443Worker SSL porttrueinteger1-65535
service.worker.ports.tsm8850Worker TSM porttrueinteger1-65535
service.worker.ports.dynamic.start8600Worker dynamic starttrueinteger1-65535
service.worker.ports.dynamic.end9000Worker dynamic endtrueinteger1-65535; >= start
service.worker.annotations{}Worker service annotationstruemap[string]stringN/A
ingress.enabledfalseEnable ingresstruebooleanN/A
ingress.className""Ingress class nametruestringexisting class
ingress.annotations{}Ingress annotationstruemap[string]stringN/A
ingress.hosts[{host: tableau.example.com, paths:[...]}]Ingress host/path configtruearray of host/path objectsN/A
ingress.tls[]Ingress TLS entriestruearray of TLS objectsN/A
healthChecks.startup.enabledtrueEnable startup probetruebooleanN/A
healthChecks.startup.initialDelaySeconds300Startup probe delaytrueinteger>=0
healthChecks.startup.periodSeconds15Startup probe periodtrueinteger>=1
healthChecks.startup.timeoutSeconds30Startup probe timeouttrueinteger>=1
healthChecks.startup.failureThreshold200Startup failure thresholdtrueinteger>=1
healthChecks.liveness.enabledtrueEnable liveness probetruebooleanN/A
healthChecks.liveness.initialDelaySeconds300Liveness probe delaytrueinteger>=0
healthChecks.liveness.periodSeconds30Liveness probe periodtrueinteger>=1
healthChecks.liveness.timeoutSeconds10Liveness probe timeouttrueinteger>=1
healthChecks.liveness.successThreshold1Liveness success thresholdtrueinteger>=1
healthChecks.liveness.failureThreshold3Liveness failure thresholdtrueinteger>=1
healthChecks.readiness.enabledtrueEnable readiness probetruebooleanN/A
healthChecks.readiness.initialDelaySeconds300Readiness probe delaytrueinteger>=0
healthChecks.readiness.periodSeconds10Readiness probe periodtrueinteger>=1
healthChecks.readiness.timeoutSeconds5Readiness probe timeouttrueinteger>=1
healthChecks.readiness.successThreshold1Readiness success thresholdtrueinteger>=1
healthChecks.readiness.failureThreshold3Readiness failure thresholdtrueinteger>=1
podDisruptionBudget.enabledfalseEnable PodDisruptionBudgettruebooleanN/A
podDisruptionBudget.minAvailable1Minimum pods availabletrueinteger or percentage string>=0
labels{}Extra common labelstruemap[string]stringN/A
annotations{}Extra common annotationstruemap[string]stringN/A
podLabels{}Extra pod labelstruemap[string]stringN/A
podAnnotations{}Extra pod annotationstruemap[string]stringN/A
hooks.autoApplyWorkerTopology.enabledfalseEnable post-install/upgrade topology hooktruebooleanN/A
hooks.autoApplyWorkerTopology.kubectlImagebitnami/kubectl:latestHook job kubectl imagetruevalid image refN/A
hooks.autoApplyWorkerTopology.timeoutSeconds3600Hook timeout while waiting for workerstrue integer >=60integer >=60>=60

Additional Resources

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