Back to Label Studio

Available Helm values for Label Studio Helm Chart

docs/source/guide/helm_values.md

2.2.10-147.2 KB
Original Source
<!-- Fix for long values in table cells --> <style> td:first-child { max-width: 350px; } td:first-child code { white-space: normal; word-break: break-word; margin-left: 0; padding-left: 3px; } td:nth-child(3) { white-space: normal; word-break: break-word; max-width: 130px; } td:last-child { max-width: 150px; } td:last-child code { white-space: normal; word-break: break-all; } </style> <div class="opensource-only">

Refer to these tables with available Helm chart values for your values.yaml file when configuring your Label Studio deployment on Kubernetes. See Deploy Label Studio on Kubernetes for more.

</div> <div class="enterprise-only">

Refer to these tables with available Helm chart values for your values.yaml file when configuring your Label Studio deployment on Kubernetes. See Deploy Label Studio on Kubernetes for more.

</div>

Global parameters

Global parameters for the Helm chart.

ParameterDescriptionDefault
global.imagePullSecretsGlobal Docker registry secret names as an array[]
global.image.repositoryImage repositoryheartexlabs/label-studio
global.image.pullPolicyImage pull policyIfNotPresent
global.image.tagImage tag (immutable tags are recommended)develop
global.pgConfig.hostPostgreSQL hostname""
global.pgConfig.portPostgreSQL port5432
global.pgConfig.dbNamePostgreSQL database name""
global.pgConfig.userNamePostgreSQL database user account""
global.pgConfig.password.secretNameName of an existing secret holding the password of PostgreSQL database user account""
global.pgConfig.password.secretKeyKey of an existing secret holding the password of PostgreSQL database user account""
global.pgConfig.ssl.pgSslModePostgreSQL SSL mode""
global.pgConfig.ssl.pgSslSecretNameName of an existing secret holding the ssl certificate for PostgreSQL host""
global.pgConfig.ssl.pgSslRootCertSecretKeyKey of an existing secret holding the ssl certificate for PostgreSQL host""
global.pgConfig.ssl.pgSslCertSecretKeyName of an existing secret holding the ssl certificate private key for PostgreSQL host""
global.pgConfig.ssl.pgSslKeySecretKeyKey of an existing secret holding the ssl certificate private key for PostgreSQL host""
global.redisConfig.hostRedis connection string in a format: redis://[:password]@localhost:6379/1""
global.redisConfig.password.secretNameName of an existing secret holding the password of Redis database""
global.redisConfig.password.secretKeyKey of an existing secret holding the password of Redis database""
global.redisConfig.ssl.redisSslCertReqsWhether to validate the server public key or ignore it. Accepts ("", "optional", "required").""
global.redisConfig.ssl.redisSslSecretNameName of an existing secret holding the ssl certificate for Redis host""
global.redisConfig.ssl.redisSslCaCertsSecretKeyKey of an existing secret holding the ssl certificate for Redis host""
global.redisConfig.ssl.redisSslCertFileSecretKeyName of an existing secret holding the ssl certificate private key for Redis host""
global.redisConfig.ssl.redisSslKeyFileSecretKeyKey of an existing secret holding the ssl certificate private key for Redis host""
global.extraEnvironmentVarsKey/value map of an extra Environment variables, for example, PYTHONUNBUFFERED: 1{}
global.extraEnvironmentSecretsKey/value map of an extra Secrets{}
global.persistence.enabledEnable persistent storage. See more about setting up persistent storagetrue
global.persistence.typePersistent storage typevolume
global.persistence.config.s3.accessKeyAccess key to use to access AWS S3""
global.persistence.config.s3.secretKeySecret key to use to access AWS S3""
global.persistence.config.s3.accessKeyExistingSecretExisting Secret name to extract Access key from to access AWS S3""
global.persistence.config.s3.accessKeyExistingSecretKeyExisting Secret key to extract Access key from to access AWS S3""
global.persistence.config.s3.secretKeyExistingSecretExisting Secret name to extract Access secret key from to access AWS S3""
global.persistence.config.s3.secretKeyExistingSecretKeyExisting Secret key to extract Access secret key from to access AWS S3""
global.persistence.config.s3.regionAWS S3 region""
global.persistence.config.s3.bucketAWS S3 bucket name""
global.persistence.config.s3.folderAWS S3 folder name""
global.persistence.config.s3.urlExpirationSecsThe number of seconds that a presigned URL is valid for86400
global.persistence.config.s3.endpointUrlCustom S3 URL to use when connecting to S3, including scheme""
global.persistence.config.volume.storageClassStorageClass for Persistent Volume""
global.persistence.config.volume.sizePersistent volume size10Gi
global.persistence.config.volume.accessModesPVC Access mode[ReadWriteOnce]
global.persistence.config.volume.annotationsPersistent volume additional annotations{}
global.persistence.config.volume.existingClaimName of an existing PVC to use""
global.persistence.config.volume.resourcePolicyPVC resource policy""
global.persistence.config.volume.annotationsPersistent volume additional annotations{}
global.persistence.config.azure.storageAccountNameAzure Storage Account Name to use to access Azure Blob Storage""
global.persistence.config.azure.storageAccountKeyAzure Storage Account Key to use to access Azure Blob Storage""
global.persistence.config.azure.storageAccountNameExistingSecretExisting Secret name to extract Azure Storage Account Name from to access Azure Blob Storage""
global.persistence.config.azure.storageAccountNameExistingSecretKeyExisting Secret key to extract Azure Storage Account Name from to use to access Azure Blob Storage""
global.persistence.config.azure.storageAccountKeyExistingSecretExisting Secret name to extract Azure Storage Account Key from to access Azure Blob Storage""
global.persistence.config.azure.storageAccountKeyExistingSecretKeyExisting Secret key to extract Azure Storage Account Key from to use to access Azure Blob Storage""
global.persistence.config.azure.containerNameAzure Storage container name""
global.persistence.config.azure.folderAzure Storage folder name""
global.persistence.config.azure.urlExpirationSecsThe number of seconds that a presigned URL is valid for86400
global.persistence.config.gcs.projectIDGCP Project ID to use""
global.persistence.config.gcs.applicationCredentialsJSONService Account key to access GCS""
global.persistence.config.gcs.applicationCredentialsJSONExistingSecretExisting Secret name to extract Service Account Key from to access GCS""
global.persistence.config.gcs.applicationCredentialsJSONExistingSecretKeyExisting Secret key to extract Service Account Key from to access GCS""
global.persistence.config.gcs.bucketGCS bucket name""
global.persistence.config.gcs.folderGCS folder name""
global.persistence.config.gcs.urlExpirationSecsThe number of seconds that a presigned URL is valid for86400
global.featureFlagsKey/value map of Feature Flags{}
global.envInjectSourcesList of file names of a shell scripts to load additional environment variables from. This is useful when using Vault Agent Injector[]
global.cmdWrapperAdditional commands to run prior to starting App. Useful to run wrappers before startup command""
global.customCaCertsList of file names of SSL certificates to add into trust chain[]

App parameters

Parameters specific to the app portion of the Label Studio deployment.

ParameterDescriptionDefault
app.argsOverride default container args (useful when using custom images)["label-studio-uwsgi"]
app.deploymentStrategy.typeDeployment strategy typeRollingUpdate
app.replicasAmount of app pod replicas1
app.NameOverrideString to partially override release template name""
app.FullnameOverrideString to fully override release template name""
app.resources.requests.memoryThe requested memory resources for the App container384Mi
app.resources.requests.cpuThe requested cpu resources for the App container250m
app.resources.limits.memoryThe memory resources limits for the App container""
app.resources.limits.cpuThe cpu resources limits for the App container""
app.initContainer.resources.requestsInit container db-migrations resource requests{}
app.initContainer.resources.limitsInit container db-migrations resource limits{}
app.readinessProbe.enabledEnable redinessProbefalse
app.readinessProbe.pathPath for reasinessProbe/version
app.readinessProbe.failureThresholdWhen a probe fails, Kubernetes will try failureThreshold times before giving up2
app.readinessProbe.initialDelaySecondsNumber of seconds after the container has started before probe initiates60
app.readinessProbe.periodSecondsHow often (in seconds) to perform the probe10
app.readinessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
app.readinessProbe.timeoutSecondsNumber of seconds after which the probe times out5
app.livenessProbe.enabledEnable livenessProbetrue
app.livenessProbe.pathPath for livenessProbe/health
app.livenessProbe.failureThresholdWhen a probe fails, Kubernetes will try failureThreshold times before giving up3
app.livenessProbe.initialDelaySecondsNumber of seconds after the container has started before probe initiates60
app.livenessProbe.periodSecondsHow often (in seconds) to perform the probe10
app.livenessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
app.livenessProbe.timeoutSecondsNumber of seconds after which the probe times out5
app.extraEnvironmentVarsA map of extra environment variables to set{}
app.extraEnvironmentSecretsA map of extra environment secrets to set{}
app.nodeSelectorLabels for pod assignment, formatted as a multi-line string or YAML map{}
app.annotationsk8s annotations to attach to the app pods{}
app.extraLabelsextra k8s labels to attach{}
app.affinityAffinity for pod assignment{}
app.tolerationsToleration settings for pod[]
app.nginx.resources.requestsNginx sidecar container: resource requests{}
app.nginx.resources.limitsNginx sidecar container: resource limits{}
app.dnsPolicyPod DNS policyClusterFirst
app.enableServiceLinksService environment variablesfalse
app.shareProcessNamespaceEnable shared process namespace in a podfalse
app.automountServiceAccountTokenAutomount service account token for the server service accounttrue
app.serviceAccount.createEnable the creation of a ServiceAccount for app podtrue
app.serviceAccount.nameName of the created ServiceAccount
app.serviceAccount.annotationsCustom annotations for app ServiceAccount{}
app.podSecurityContext.enabledEnable pod Security Contexttrue
app.podSecurityContext.fsGroupGroup ID for the pod1001
app.containerSecurityContext.enabledEnable container security contexttrue
app.containerSecurityContext.runAsUserUser ID for the container1001
app.containerSecurityContext.runAsNonRootAvoid privilege escalation to root usertrue
app.extraVolumesArray to add extra volumes[]
app.extraVolumeMountsArray to add extra mounts (normally used with extraVolumes)[]
app.topologySpreadConstraintsTopology Spread Constraints for pod assignment[]
app.nginx.argsOverride default container args (useful when using custom images)["nginx"]
app.nginx.livenessProbe.enabledNginx sidecar container: Enable livenessProbetrue
app.nginx.livenessProbe.pathNginx sidecar container: path for livenessProbe/nginx_health
app.nginx.livenessProbe.failureThresholdNginx sidecar container: when a probe fails, Kubernetes will try failureThreshold times before giving up2
app.nginx.livenessProbe.initialDelaySecondsNginx sidecar container: Number of seconds after the container has started before probe initiates60
app.nginx.livenessProbe.periodSecondsNginx sidecar container: How often (in seconds) to perform the probe5
app.nginx.livenessProbe.successThresholdNginx sidecar container: Minimum consecutive successes for the probe to be considered successful after having failed1
app.nginx.livenessProbe.timeoutSecondsNginx sidecar container: Number of seconds after which the probe times out3
app.nginx.readinessProbe.enabledNginx sidecar container: Enable readinessProbetrue
app.nginx.readinessProbe.pathNginx sidecar container: Path for readinessProbe/version
app.nginx.readinessProbe.failureThresholdNginx sidecar container: When a probe fails, Kubernetes will try failureThreshold times before giving up2
app.nginx.readinessProbe.initialDelaySecondsNginx sidecar container: Number of seconds after the container has started before probe initiates60
app.nginx.readinessProbe.periodSecondsNginx sidecar container: How often (in seconds) to perform the probe10
app.nginx.readinessProbe.successThresholdNginx sidecar container: Minimum consecutive successes for the probe to be considered successful after having failed1
app.nginx.readinessProbe.timeoutSecondsNginx sidecar container: Number of seconds after which the probe times out5
app.service.typek8s service typeClusterIP
app.service.portk8s service port80
app.service.targetPortk8s service target port8085
app.service.portNamek8s service port nameservice
app.service.annotationsCustom annotations for app service{}
app.service.sessionAffinityCustom annotations for app serviceNone
app.service.sessionAffinityConfigAdditional settings for the sessionAffinity{}
app.ingress.enabledSet to true to enable ingress record generationfalse
app.ingress.classNameIngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)""
app.ingress.hostDefault host for the ingress resource""
app.ingress.pathThe Path to LabelStudio. You may need to set this to '/*' in order to use this with ALB ingress controllers./
app.ingress.extraPathsExtra paths to prepend to the host configuration[]
app.ingress.tlsTLS secrets definition[]
app.ingress.annotationsAdditional ingress annotations{}
app.rbac.createSpecifies whether RBAC resources should be created for app servicefalse
app.rbac.rulesCustom RBAC rules to set for app service[]
app.contextPathContext path appended for health/readiness checks/
app.cmdWrapperAdditional commands to run prior to starting App. Useful to run wrappers before startup command""

Rqworker parameters

Parameters specific to the rqworkers service of your Label Studio Enterprise deployment.

ParameterDescriptionDefault
rqworker.enabledEnable rqworker podtrue
rqworker.NameOverrideString to partially override release template name""
rqworker.FullnameOverrideString to fully override release template name""
rqworker.deploymentStrategy.typeDeployment strategy typeRecreate
rqworker.extraEnvironmentVarsA map of extra environment variables to set{}
rqworker.extraEnvironmentSecretsA map of extra environment secrets to set{}
rqworker.nodeSelectorlabels for pod assignment, formatted as a multi-line string or YAML map{}
rqworker.annotationsk8s annotations to attach to the rqworker pods{}
rqworker.extraLabelsextra k8s labels to attach{}
rqworker.affinityAffinity for pod assignment{}
rqworker.tolerationsToleration settings for pod[]
rqworker.queues.high.replicasRqworker queue "high" replicas amount1
rqworker.queues.high.argsRqworker queue "high" launch arguments"high"
rqworker.queues.low.replicasRqworker queue "low" replicas amount1
rqworker.queues.low.argsRqworker queue "low" launch arguments"low"
rqworker.queues.default.replicasRqworker queue "default" replicas amount1
rqworker.queues.default.argsRqworker queue "default" launch arguments"default"
rqworker.queues.critical.replicasRqworker queue "critical" replicas amount1
rqworker.queues.critical.argsRqworker queue "critical" launch arguments"critical"
rqworker.queues.all.replicasRqworker queue "all" replicas amount1
rqworker.queues.all.argsRqworker queue "all" launch arguments"low", "default", "critical", "high"
rqworker.dnsPolicyPod DNS policyClusterFirst
rqworker.enableServiceLinksService environment variablesfalse
rqworker.shareProcessNamespaceEnable shared process namespace in a podfalse
rqworker.automountServiceAccountTokenAutomount service account token for the server service accounttrue
rqworker.readinessProbe.enabledEnable redinessProbefalse
rqworker.readinessProbe.pathPath for reasinessProbe/version
rqworker.readinessProbe.failureThresholdWhen a probe fails, Kubernetes will try failureThreshold times before giving up2
rqworker.readinessProbe.initialDelaySecondsNumber of seconds after the container has started before probe initiates60
rqworker.readinessProbe.periodSecondsHow often (in seconds) to perform the probe5
rqworker.readinessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
rqworker.readinessProbe.timeoutSecondsNumber of seconds after which the probe times out3
rqworker.livenessProbe.enabledEnable livenessProbefalse
rqworker.livenessProbe.pathPath for livenessProbe/health
rqworker.livenessProbe.failureThresholdWhen a probe fails, Kubernetes will try failureThreshold times before giving up2
rqworker.livenessProbe.initialDelaySecondsNumber of seconds after the container has started before probe initiates60
rqworker.livenessProbe.periodSecondsHow often (in seconds) to perform the probe5
rqworker.livenessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed1
rqworker.livenessProbe.timeoutSecondsNumber of seconds after which the probe times out3
rqworker.serviceAccount.createEnable the creation of a ServiceAccount for rqworker podtrue
rqworker.serviceAccount.nameName of the created ServiceAccount""
rqworker.podSecurityContext.enabledEnable pod Security Contexttrue
rqworker.podSecurityContext.fsGroupGroup ID for the pod1001
rqworker.containerSecurityContext.enabledEnable container security contexttrue
rqworker.containerSecurityContext.runAsUserUser ID for the container1001
rqworker.containerSecurityContext.runAsNonRootAvoid privilege escalation to root usertrue
rqworker.serviceAccount.annotationsCustom annotations for app ServiceAccount{}
rqworker.extraVolumesArray to add extra volumes[]
rqworker.extraVolumeMountsArray to add extra mounts (normally used with extraVolumes)[]
rqworker.topologySpreadConstraintsTopology Spread Constraints for pod assignment[]
rqworker.rbac.createSpecifies whether RBAC resources should be created for rqworker servicefalse
rqworker.rbac.rulesCustom RBAC rules to set for rqworker service[]
rqworker.cmdWrapperAdditional commands to run prior to starting App. Useful to run wrappers before startup command""
<div class="enterprise-only">

Label Studio Enterprise parameters

ParameterDescriptionDefault
enterprise.enabledEnable Enterprise featuresfalse
enterprise.enterpriseLicense.secretNameName of an existing secret holding the Label Studio Enterprise license information""
enterprise.enterpriseLicense.secretKeyKey of an existing secret holding the enterprise license informationlicense
</div>

Sub-charts parameters

ParameterDescriptionDefault
postgresql.enabledEnable Postgresql sub-charttrue
postgresql.architecturePostgreSQL architecture (standalone or replication)standalone
postgresql.image.tagPostgreSQL image tag13.8.0
postgresql.auth.usernameName for a custom user to createlabelstudio
postgresql.auth.passwordPassword for the custom user to create. Ignored if auth.existingSecret with key password is providedlabelstudio
postgresql.auth.databaseName for a custom database to createlabelstudio
redis.enabledEnable Redis sub-chartfalse
redis.architectureRedis architecture. Allowed values: standalone or replicationstandalone
redis.auth.enabledEnable password authenticationfalse

Other parameters

ParameterDescriptionDefault
upgradeCheck.enabledEnable upgradecheckfalse
ciIndicate that deployment running for CI purposesfalse
clusterDomainKubernetes Cluster Domaincluster.local
checkConfig.skipEnvValuesSkip validation for env variablesfalse

The global.extraEnvironmentVars usage

The global.extraEnvironmentVars section can be used to configure environment properties of Label Studio.

Any key value put under this section translates to environment variables used to control Label Studio's configuration. Every key is upper-cased before setting the environment variable.

An example:

yaml
global:
  extraEnvironmentVars:
     PG_USER: labelstudio

!!! note If you are deploying to a production environment, you should set SSRF_PROTECTION_ENABLED: true. See Secure Label Studio.