Skip to main content
Version: 15.2.0

Helm Values: ai-services chart

This page describes all configurable values for the ai-services chart. See values.yaml for defaults. The chart does not ship a values.schema.json: invalid combinations are rejected at render time by the chart's validation template.

info

Langfuse and OpenBao are not deployed by this chart and have no values here: see Langfuse and OpenBao.

URL and environment​

KeyTypeDefaultRequiredDescription
urlstring""✅Full public URL of AI Services (e.g. https://ai-services.your-domain.com). Used as the Envoy virtual host, as the IngressRoute host, as LiteLLM's base URL (<url><litellmProxy.basePath>), as the base of the Temporal UI callback URL and of the Memory MCP resource. Must match the AI Services URL configured in the Keycloak realm, which fetches <url>/.well-known/jwks.json.
isPaaSbooleanfalse❌Set to true for Mia Platform PaaS deployments. Adds the organization:* scope to the scopes advertised by the Memory MCP protected-resource metadata.
namespacePrefixstringnot set❌Optional prefix prepended as <namespacePrefix>-<name> to the names of the component resources (including their <component>-keys Secrets), to the image pull secret name, to the IngressRoute name and to ingressRoute.tls.secretName. Not present in the default values.yaml.
nameOverridestring""❌Overrides the chart name.
fullnameOverridestring""❌Overrides the fully qualified app name.

Authorization server and authorization service​

KeyTypeDefaultRequiredDescription
authorizationServer.enabledbooleanfalse✅Enables JWT validation (jwt_authn) on the API gateway. Must be true whenever accessControl, doclingService, memoryService or secretStoreService is enabled.
authorizationServer.issuerstring""✅Keycloak realm issuer URL (e.g. https://keycloak.your-domain.com/realms/my-realm). Used by the API gateway for JWT validation, by accessControl for its client authentication and, unless temporalUi.auth.providerUrl is set, by the Temporal UI login.
rbacAuthzServiceUrlstring""❌gRPC URL of the platform authorization service that accessControl resolves the caller's external context against. Takes precedence over authzUrl. One of the two is required when accessControl.config.externalContext.enabled is true.
authzUrlstring""❌HTTP URL of the same authorization service. Used when rbacAuthzServiceUrl is empty.

Telemetry​

KeyTypeDefaultDescription
telemetry.enabledbooleanfalseEnable OpenTelemetry export for the services that support it. When true, an OTLP endpoint must resolve for litellmProxy (see litellmProxy.telemetry.otlpEndpoint).
telemetry.apiGatewayTracingbooleanfalseLet Envoy open a span of its own for every request. Off by default even with telemetry.enabled: Envoy then forwards the caller's traceparent unchanged. Turn it on only where Envoy's spans reach a backend that keeps them.
telemetry.otelExporterOtlpEndpointstring""OTLP endpoint for all signals. Also the last fallback for LiteLLM Proxy's telemetry.
telemetry.otelExporterOtlpTracesEndpointstring""OTLP endpoint for traces only. Overrides the general endpoint for traces.
telemetry.otelExporterOtlpProtocolstring""OTLP protocol (OTEL_EXPORTER_OTLP_PROTOCOL). Also used to derive LiteLLM's exporter when litellmProxy.telemetry.otlpExporter is empty.

IngressRoute (Traefik)​

KeyTypeDefaultDescription
ingressRoute.enabledbooleanfalseCreate a Traefik IngressRoute that matches Host(<url hostname>) and points at the API gateway Service on port 8080.
ingressRoute.namestring"default-ingress"Name of the IngressRoute resource. Not present in the default values.yaml.
ingressRoute.entryPointsarray["websecure"]Traefik entry points to attach the route to.
ingressRoute.middlewaresarray[]Additional Traefik middleware references.
ingressRoute.tlsEnabledbooleanfalseAdd a tls block to the IngressRoute.
ingressRoute.tlsobject{}Content of the tls block. ingressRoute.tls.secretName is prefixed with namespacePrefix when set.
ingressRoute.hoststring""Not read by the chart templates: the host is always derived from url.

Secrets​

The chart can manage secret creation inline. When enabled: false (default), the Secret must exist in the namespace before install whenever the component that reads it is enabled; the chart checks for it at render time.

access-control keys​

Used when accessControl.enabled, accessControl.config.externalContext.enabled and accessControl.config.externalContext.authorization.enabled are true.

KeyTypeDefaultDescription
secrets.accessControlKeys.enabledbooleanfalseWhen true, the chart creates a Secret named access-control-keys.
secrets.accessControlKeys.privateKeystring""PEM private key of the accessControl OIDC client, stored as key.pem. Required when tokenAuthMethod is private_key_jwt.
secrets.accessControlKeys.clientSecretstring""Client secret of the accessControl OIDC client, stored as client-secret. Required when tokenAuthMethod is client_secret_post or client_secret_basic.

litellm-proxy keys​

Required when litellmProxy.enabled is true (default).

KeyTypeDefaultDescription
secrets.litellmProxyKeys.enabledbooleanfalseWhen true, the chart creates a Secret named litellm-proxy-keys.
secrets.litellmProxyKeys.postgresConnectionStringstring""Connection string of the external PostgreSQL database that holds LiteLLM's state (virtual keys, spend, models). Stored as postgresConnectionString.
secrets.litellmProxyKeys.masterKeystring""Admin key that mints every other virtual key. Stored as masterKey. The LiteLLM admin API is public on the API gateway, so this key is its only protection.
secrets.litellmProxyKeys.saltKeystring""Encrypts the provider credentials stored by LiteLLM. Stored as saltKey. Never rotate it once models are registered.
secrets.litellmProxyKeys.providerCredentialsobject{}Provider API keys, as <ENV_VAR_NAME>: <value>. Each entry is added to the Secret and injected as an environment variable of the LiteLLM pod, to be referenced from litellmProxy.config.model_list as os.environ/<ENV_VAR_NAME>. Injected only when the chart creates the Secret.

temporal keys​

Required when temporal.enabled is true (default). One external PostgreSQL server backs both the default and visibility stores.

KeyTypeDefaultDescription
secrets.temporalKeys.enabledbooleanfalseWhen true, the chart creates a Secret named temporal-keys (as a pre-install/pre-upgrade hook, so the schema Job can read it).
secrets.temporalKeys.postgresHoststring""PostgreSQL host. Stored as postgresHost.
secrets.temporalKeys.postgresPortstring"5432"PostgreSQL port. Stored as postgresPort.
secrets.temporalKeys.postgresUserstring""PostgreSQL user. Stored as postgresUser.
secrets.temporalKeys.postgresPasswordstring""PostgreSQL password. Stored as postgresPassword.

temporal-ui keys​

Required when temporalUi.auth.enabled is true.

KeyTypeDefaultDescription
secrets.temporalUiKeys.enabledbooleanfalseWhen true, the chart creates a Secret named temporal-ui-keys.
secrets.temporalUiKeys.authClientSecretstring""Client secret of the confidential client used by the Temporal UI login. Stored as authClientSecret.

memory-service keys​

Required when memoryService.enabled is true.

KeyTypeDefaultDescription
secrets.memoryServiceKeys.enabledbooleanfalseWhen true, the chart creates a Secret named memory-service-keys.
secrets.memoryServiceKeys.postgresConnectionStringstring""Connection string of a PostgreSQL database dedicated to the Memory service, with the vector extension available. Stored as postgresConnectionString.
secrets.memoryServiceKeys.litellmApiKeystring""LiteLLM virtual key, stored as litellmApiKey. Needed only when memoryService.config.aiGateway.enabled is true.

secret-store-service keys​

Used by a secretStoreService deployed by this chart that logs in to an external store with an AppRole.

KeyTypeDefaultDescription
secrets.secretStoreServiceKeys.enabledbooleanfalseWhen true and at least one of the two values is set, the chart creates a Secret named secret-store-service-keys.
secrets.secretStoreServiceKeys.storeRoleIdstring""AppRole role ID. Stored as storeRoleId.
secrets.secretStoreServiceKeys.storeSecretIdstring""AppRole secret ID. Stored as storeSecretId.

otel-collector keys​

KeyTypeDefaultDescription
secrets.otelCollectorKeys.enabledbooleanfalseWhen true, the chart creates the otel-collector-keys Secret with langfuseOtlpBasic.
secrets.otelCollectorKeys.langfuseOtlpBasicstring""Base64 of publicKey:secretKey of the Langfuse project the traces are written to. Required when otelCollector.enabled is true.

Global image settings​

KeyTypeDefaultDescription
global.labelsobject{}Additional labels added to all resources.
global.annotationsobject{}Additional annotations added to all resources.
global.imagePullPolicystring"IfNotPresent"Default image pull policy, used when a component's image.pullPolicy is empty.
global.imagePullSecret.enabledbooleanfalseWhen true, every pod references the image pull secret named global.imagePullSecret.name.
global.imagePullSecret.namestring""Name of the image pull secret. The chart creates a kubernetes.io/dockerconfigjson Secret with this name when global.imageCredentials.registry, .username, .password and .email are all set.
global.imageCredentials.registrystring""Container registry hostname. Also used as the fallback registry for any image that does not set its own image.registry.
global.imageCredentials.usernamestring""Registry username. Typically injected at deploy time via --set.
global.imageCredentials.passwordstring""Registry password or token. Typically injected at deploy time via --set.
global.imageCredentials.emailstring""Email associated with the registry credentials.
global.imageCredentials.namestring""Not read by the chart templates.

Service accounts​

Each component gets its own dedicated ServiceAccount, created by default. Applies to: accessControl, apiGateway, litellmProxy, temporalFrontend, temporalHistory, temporalMatching, temporalWorker, temporalAdminTools, temporalUi, temporalSchemaSetup, temporalNamespaceSetup, doclingService, memoryService, otelCollector, prometheus, secretStoreService.

KeyTypeDefaultDescription
serviceAccounts.<service>.enabledbooleantrueCreate a ServiceAccount for <service>. serviceAccounts.secretStoreService.enabled must stay true when secretStoreService.config.auth.method is jwt.

Common component fields​

The Deployment-based components (apiGateway, accessControl, litellmProxy, doclingService, memoryService, secretStoreService, otelCollector, temporalUi, and the Temporal roles temporalFrontend, temporalHistory, temporalMatching, temporalWorker) share the following fields. The Temporal roles take their image from temporal.image.

KeyTypeDescription
<service>.enabledbooleanEnable or disable the component. The Temporal roles follow temporal.enabled.
<service>.replicaCountintegerNumber of pod replicas.
<service>.logLevelstringLog level, where supported.
<service>.image.registrystringContainer registry.
<service>.image.repositorystringImage repository path.
<service>.image.tagstringImage tag.
<service>.image.pullPolicystringImage pull policy. Empty uses global.imagePullPolicy.
<service>.resources.requests.cpustringCPU request.
<service>.resources.requests.memorystringMemory request.
<service>.resources.limits.cpustringCPU limit.
<service>.resources.limits.memorystringMemory limit.
<service>.envarrayAdditional environment variables, as full Kubernetes env entries.
<service>.autoscaling.enabledbooleanEnable Horizontal Pod Autoscaler.
<service>.autoscaling.minReplicasintegerMinimum replicas for HPA.
<service>.autoscaling.maxReplicasintegerMaximum replicas for HPA.
<service>.autoscaling.targetCPUUtilizationPercentageintegerTarget CPU utilization for HPA scaling.

Component defaults​

ComponentenabledImage (registry/repository:tag)Requests (CPU / memory)Limits (CPU / memory)
apiGatewaytruenexus.mia-platform.eu/cache/envoyproxy/envoy:v1.36.250m / 64Mi500m / 256Mi
accessControlfalsenexus.mia-platform.eu/platform/auth/access-control/ext-authz:0.2.2-nocache100m / 128Mi500m / 256Mi
litellmProxytruedocker.litellm.ai/berriai/litellm:v1.103.1250m / 768Mi1000m / 2Gi
doclingServicetruequay.io/docling-project/docling-serve-cpu:v1.36.01 / 1Gi4 / 6Gi
memoryServicefalsenexus.mia-platform.eu/ai-services/memory-service:0.1.050m / 128Mi500m / 512Mi
secretStoreServicefalsenexus.mia-platform.eu/ai-resources/secret-store-service:0.1.150m / 64Mi500m / 256Mi
temporalFrontend, temporalHistory, temporalMatching, temporalWorkerfollows temporal.enabled (true)docker.io/temporalio/server:1.32.0150m / 256Mi500m / 512Mi
temporalUitruedocker.io/temporalio/ui:2.55.025m / 64Mi250m / 256Mi
temporalAdminToolstruedocker.io/temporalio/admin-tools:1.32.025m / 64Mi250m / 256Mi
otelCollectorfalsedocker.io/otel/opentelemetry-collector-contrib:0.139.0100m / 128Mi1 / 512Mi
prometheusfalsedocker.io/prom/prometheus:v3.6.0100m / 512Mi1 / 2Gi

apiGateway​

The Envoy API gateway. Routes traffic to LiteLLM Proxy, the Temporal UI, Docling, Memory and the secret store, and applies jwt_authn and ext_authz on the gated routes.

KeyTypeDefaultDescription
apiGateway.logLevelstring"info"Envoy log level.
apiGateway.authorizationServer.audiencesarray[]JWT audiences accepted by jwt_authn. Must not be empty when authorizationServer.enabled is true and any of doclingService, memoryService or secretStoreService is enabled. Set ["ai-services-api"] on a Mia-Platform installation.
apiGateway.configobject{}Advanced Envoy configuration. apiGateway.config.clusterOverrides.<cluster> overrides the address of an upstream cluster, intended for local development.
apiGateway.maxBodyBytesinteger10485760Maximum allowed request body size in bytes (default: 10 MiB).

accessControl​

OPA-based ext-authz service behind the API gateway's ext_authz filter. Loads the ai_services policy bundle shipped with the chart. Requires apiGateway.enabled, authorizationServer.enabled and authorizationServer.issuer.

KeyTypeDefaultDescription
accessControl.enabledbooleanfalseEnable Access Control. Required by doclingService, memoryService and secretStoreService.
accessControl.envarrayGOMAXPROCS=2, GOMEMLIMIT=230MiB, TOKIO_WORKER_THREADS=2Environment variables pinning the thread pools of the two runtimes in the container.
accessControl.config.externalContext.enabledbooleantrueResolve the caller's external context against the authorization service in rbacAuthzServiceUrl or authzUrl.
accessControl.config.externalContext.authorization.enabledbooleantrueAuthenticate to the authorization service as an OIDC client. Requires externalContext.enabled.
accessControl.config.externalContext.authorization.clientIdstring"ai-services-access-control"OIDC client ID registered in Keycloak for accessControl.
accessControl.config.externalContext.authorization.tokenAuthMethodstring"private_key_jwt"Token endpoint authentication method. Options: private_key_jwt, client_secret_post, client_secret_basic. With private_key_jwt the public key is published at <url>/.well-known/jwks.json.

litellmProxy​

LiteLLM Proxy, the AI gateway. Served under basePath on the API gateway, with every route public: LiteLLM authenticates calls with its own virtual keys. Requires the litellm-proxy-keys Secret.

KeyTypeDefaultDescription
litellmProxy.enabledbooleantrueEnable LiteLLM Proxy.
litellmProxy.basePathstring"/ai-gateway"Path prefix on the API gateway. Must start with /.
litellmProxy.logLevelstring"info"LiteLLM log level.
litellmProxy.extraEnvobject{}Additional environment variables as a NAME: value map.
litellmProxy.configobjectsee belowRaw LiteLLM proxy configuration (LiteLLM docs).
litellmProxy.config.model_listarray[]Models declared in configuration. Provider credentials are referenced as os.environ/<ENV_VAR_NAME> (see secrets.litellmProxyKeys.providerCredentials).
litellmProxy.config.litellm_settings.drop_paramsbooleantrueLiteLLM drop_params setting.
litellmProxy.config.general_settings.store_model_in_dbbooleantrueLets holders of an admin or virtual key register models through the proxy's API, stored in LiteLLM's database.
litellmProxy.config.general_settings.forward_client_headers_to_llm_apibooleantrueForward the caller's headers to the upstream provider.
litellmProxy.config.general_settings.forward_llm_provider_auth_headersbooleantrueForward the caller's provider auth headers (the caller's provider key wins over the configured one).
litellmProxy.modelCostMap.enabledbooleantrueServe the curated model cost map shipped with the chart from an nginx sidecar. It sets both the model prices the proxy bills and the list of models offered by the AI Foundry model form. When false, the proxy uses LiteLLM's bundled prices.
litellmProxy.modelCostMap.shrinkRatiostring"0.11"Minimum ratio between the size of the curated map and LiteLLM's bundled one. Must be a fraction in (0, 1].
litellmProxy.modelCostMap.imageobjectdocker.io/nginxinc/nginx-unprivileged:1.31.3-alpineImage of the cost map sidecar.
litellmProxy.modelCostMap.resourcesobjectrequests 10m CPU / 16Mi memory, limits 100m CPU / 64Mi memoryResources of the cost map sidecar.
litellmProxy.telemetry.serviceNamestring"litellm"OTel service.name reported by the proxy. Must not be empty: downstream attribution rules match litellm.
litellmProxy.telemetry.otlpEndpointstring""OTLP endpoint of the proxy. When empty, the in-chart otelCollector is used if enabled, otherwise telemetry.otelExporterOtlpEndpoint.
litellmProxy.telemetry.otlpExporterstring""otlp_http or otlp_grpc. Empty derives it from the endpoint and telemetry.otelExporterOtlpProtocol.
litellmProxy.telemetry.otelV2booleantrueEnable LiteLLM's OTel v2 integration, which emits the gen_ai.* attributes and GenAI metrics.
litellmProxy.telemetry.captureMessageContentstring"span_only"Capture prompts and completions on spans. no_content disables it; span_and_event also emits them as span events.
litellmProxy.telemetry.environmentNamestring""Value of the deployment.environment.name resource attribute. Empty leaves it unset.

doclingService​

Document conversion service, reachable at /api/docling/ through the API gateway behind jwt_authn and ext_authz.

KeyTypeDefaultDescription
doclingService.enabledbooleantrueEnable Docling. Requires authorizationServer.enabled, accessControl.enabled and a non-empty apiGateway.authorizationServer.audiences.
doclingService.envarrayTORCHINDUCTOR_CACHE_DIR=/tmp/torchinductor_cacheAdditional environment variables.
doclingService.autoscaling.minReplicasinteger10 requires the HPAScaleToZero feature gate on the cluster.

memoryService​

Long-term memory owned by a person and shareable with named colleagues. When enabled, the API gateway adds the /api/memories and /memory/mcp routes behind jwt_authn and ext_authz, plus the public /.well-known/oauth-protected-resource/memory/mcp document. Requires the memory-service-keys Secret.

KeyTypeDefaultDescription
memoryService.enabledbooleanfalseEnable the Memory service.
memoryService.logLevelstring"INFO"Log level.
memoryService.config.databaseSchemastring""Put the tables in a named schema instead of public.
memoryService.config.embeddingModelstring""Embedding model. Empty leaves search on keyword ranking.
memoryService.config.embeddingDimensionsinteger1536Output width of the embedding model. Must match the model.
memoryService.config.aiGateway.enabledbooleanfalseCompute embeddings through an AI gateway. Requires secrets.memoryServiceKeys.litellmApiKey.
memoryService.config.aiGateway.baseUrlstring""AI gateway URL. Empty defaults to this chart's LiteLLM Proxy (http://litellm-proxy).
memoryService.config.aiGateway.modelPrefixstring"litellm_proxy"Model prefix used for calls through the gateway.
memoryService.config.mcpEnabledbooleantrueEnable the MCP endpoint, published at /memory/mcp.

secretStoreService​

Central store of the tenants' LiteLLM virtual keys (the gateway-keys collection). Reachable through the API gateway only at /api/secrets/gateway-keys/{key} and /api/secrets/gateway-keys/{key}/presence.

KeyTypeDefaultDescription
secretStoreService.enabledbooleanfalseEnable the secret store service. Requires the authentication chain and an external store (config.storeAddr).
secretStoreService.config.modestring"both"read, write or both.
secretStoreService.config.storeAddrstring""Address of the external OpenBao or Vault store. Required when enabled. See Langfuse and OpenBao.
secretStoreService.config.storeKvMountstring"secret"KV v2 mount of the store.
secretStoreService.config.storeNamespacestring""X-Vault-Namespace sent on every call, for example console/production/ai-services. Empty for a store without namespaces.
secretStoreService.config.auth.methodstring"approle"approle (role/secret pair) or jwt (the pod's own ServiceAccount token).
secretStoreService.config.auth.jwt.mountstring"jwt"JWT auth mount on the store. Required with auth.method: jwt.
secretStoreService.config.auth.jwt.rolestring""Role on the store. Required with auth.method: jwt.
secretStoreService.config.auth.jwt.audiencestring"openbao"Audience of the projected ServiceAccount token. Must match the role's bound audiences.
secretStoreService.config.auth.jwt.expirationSecondsinteger600Lifetime of the projected token.
secretStoreService.config.auth.jwt.mountPathstring"/var/run/secrets/openbao"Mount path of the projected token.

otelCollector​

OpenTelemetry Collector that sends traces to Langfuse and metrics to Prometheus. Requires a Langfuse credential (secrets.otelCollectorKeys), the traces endpoint of a Langfuse installed outside this chart (see Langfuse and OpenBao) and a metrics destination.

KeyTypeDefaultDescription
otelCollector.enabledbooleanfalseDeploy the collector.
otelCollector.logLevelstring"warn"Collector log level.
otelCollector.config.langfuse.tracesEndpointstring""Required when the collector is enabled. OTLP traces endpoint of Langfuse, for example http://langfuse-web.langfuse.svc.cluster.local:3000/api/public/otel/v1/traces.
otelCollector.config.prometheus.metricsEndpointstring""Metrics destination (a Prometheus OTLP receiver). Empty defaults to the in-chart Prometheus.
otelCollector.configOverridestring""Replaces the collector configuration shipped with the chart.

prometheus​

Prometheus with the OTLP receiver enabled: otelCollector pushes metrics to it. Reachable only inside the cluster, at http://prometheus.<namespace>.svc.cluster.local: it is not routed by the API gateway, and its queries are not isolated by tenant. AI Foundry reads it there (prometheusBaseUrl) and restricts every query to the tenant of the caller itself.

KeyTypeDefaultDescription
prometheus.enabledbooleanfalseDeploy Prometheus. Requires otelCollector.enabled or config.extraScrapeConfigs.
prometheus.logLevelstring"warn"Log level.
prometheus.config.retentionTimestring"15d"TSDB retention.
prometheus.config.externalLabelsobjectstack: ai-servicesglobal.external_labels.
prometheus.config.promoteResourceAttributesarrayservice.name, service.namespace, service.instance.id, mia.playbook, mia.tenant, mia.organizationOTLP resource attributes promoted to labels.
prometheus.config.extraScrapeConfigsarray[]Additional scrape jobs.
prometheus.configOverridestring""Replaces the Prometheus configuration shipped with the chart.
prometheus.persistence.sizestring"20Gi"Volume size.
prometheus.persistence.storageClassNamestring""StorageClass.
prometheus.securityContextobjectrunAsUser: 65534, runAsGroup: 65534, fsGroup: 65534Pod security context.

temporal​

Settings shared by the Temporal server roles (temporalFrontend, temporalHistory, temporalMatching, temporalWorker) and by the schema and namespace setup Jobs. Requires the temporal-keys Secret.

KeyTypeDefaultDescription
temporal.enabledbooleantrueDeploy Temporal.
temporal.imageobjectdocker.io/temporalio/server:1.32.0Server image, shared by all four roles.
temporal.adminToolsImageobjectdocker.io/temporalio/admin-tools:1.32.0Image of the setup Jobs and of temporalAdminTools.
temporal.logLevelstring"info"Temporal log level.
temporal.numHistoryShardsinteger512Number of history shards. Fixed at cluster bootstrap: it cannot be changed afterwards.
temporal.persistence.databaseNamestring"temporal"Default store database.
temporal.persistence.visibilityDatabaseNamestring"temporal_visibility"Visibility store database (PostgreSQL visibility only).
temporal.persistence.sql.createDatabasebooleantrueCreate the two databases in the schema setup Job. Set false when they are provisioned beforehand by an admin user.
temporal.persistence.sql.tls.enabledbooleanfalseTLS to PostgreSQL.
temporal.persistence.sql.tls.hostVerificationEnabledbooleanfalseVerify the PostgreSQL host certificate.
temporal.persistence.sql.tls.serverNamestring""TLS server name.
temporal.dynamicConfigobject{}Temporal dynamic configuration.
temporal.namespacesarray[{name: default, retention: "72h"}]Temporal namespaces created by the temporal-namespace-setup Job after install and upgrade.

temporalAdminTools​

temporal CLI pod for operational tasks (kubectl exec). Not exposed by any Service or route.

KeyTypeDefaultDescription
temporalAdminTools.enabledbooleantrueDeploy the admin tools pod (only when temporal.enabled is true).

temporalUi​

Temporal Web UI, served under basePath on the API gateway. The route is public at the gateway; temporalUi.auth makes the UI run its own OIDC login.

KeyTypeDefaultDescription
temporalUi.enabledbooleantrueDeploy the Temporal UI. Requires temporal.enabled.
temporalUi.basePathstring"/workflow-manager"Path prefix on the API gateway. Must start with /.
temporalUi.auth.enabledbooleanfalseRun the OIDC authorization-code flow in the UI. Requires auth.clientId, a realm (auth.providerUrl or authorizationServer.issuer) and the temporal-ui-keys Secret. Without it, the UI is open to anyone who can reach url.
temporalUi.auth.labelstring"Mia-Platform"Label of the UI's own login page.
temporalUi.auth.providerUrlstring""Realm used for OIDC discovery. Empty uses authorizationServer.issuer.
temporalUi.auth.issuerUrlstring""Override of the expected iss. Normally empty.
temporalUi.auth.clientIdstring""Confidential OIDC client of the UI.
temporalUi.auth.callbackUrlstring""Callback URL. Empty derives <url><basePath>/auth/sso/callback.
temporalUi.auth.scopesarray["openid", "profile", "email"]Requested scopes.
temporalUi.auth.redirectToProviderbooleantrueRedirect straight to the realm instead of showing the UI's provider picker.