Skip to main content
Version: 15.2.0

Helm Values: ai-foundry chart

This page describes the main configurable values for the ai-foundry chart. See the chart values.yaml for the defaults and for the advanced keys of each service not listed here.

The chart validates the values at render time and refuses to render a configuration that would fail at runtime; the error message names the setting to fix.

info

Langfuse and OpenBao are installed with their official Helm charts on Kubernetes, or in any other way their official guides support: see Langfuse and OpenBao. Prometheus is an optional component of AI Services, together with the OpenTelemetry Collector that feeds it: see the prometheus values. To read it, set prometheusBaseUrl to http://prometheus.<ai-services-namespace>.svc.cluster.local, and send the metrics of AI Foundry to http://otel-collector.<ai-services-namespace>.svc.cluster.local:4318. Any other Prometheus-compatible store, such as Mimir, works as well.

URL and environment​

KeyTypeDefaultRequiredDescription
urlstring""✅Full public URL where AI Foundry is exposed (e.g. https://ai-foundry.your-domain.com). Used to configure OIDC redirect URIs, CORS, and routing.
environmentstring""✅Logical environment name (e.g. production, development). Used for labelling and environment-specific behaviour.
isPaaSbooleanfalse❌Set to true for Mia Platform PaaS deployments.
namespacePrefixstring""❌When set, prefixed (as <namespacePrefix>-<name>) to the names of the resources created by the chart, including Services, the IngressRoute, the image pull secret referenced by global.imagePullSecret.name and the TLS secret set in ingressRoute.tls.secretName.
catalogUrlstring""❌Full URL of the Mia Platform Catalog instance. Used by aiFoundryBff (and, via the ADK backend, adkBeApp) to call the Catalog API using a token-exchange client. When empty, the items are stored in PostgreSQL and served by aiFoundryBe, which must then be enabled.
catalogClientIdstring""❌OIDC client ID used to identify the Catalog API audience for the token-exchange flow (e.g. catalog-api).
authzUrlstring""✅URL of the authorization API of Homepage & RBAC (the services chart's apiGateway, routed to rbacManagement). Used by aiFoundryBff, aiFoundryBe, aiFoundryProvisioner and, when rbacAuthzServiceUrl is empty, by accessControl.
authzClientIdstring""❌OIDC client ID used to identify the Authz API audience for the token-exchange flow (e.g. authz-api).
authtoolBffUrlstring""✅Base URL of authtool-bff (e.g. http://authtool-bff). The services call it to exchange the caller's token for the audience of the Catalog, Authz and AI Services APIs: the exchange happens only when it is set. When empty, the caller's JWT is forwarded unchanged, which the AI Services gateway refuses.
aiServicesClientIdstring""❌authtool-bff exchange alias for the AI Services audience: set it to ai-services-api (the alias of the exchangeAiServices client). Used for the calls to AI Services (memory service, Docling route, central secret store) and to the metrics store; when empty the caller's token is forwarded unchanged, which the AI Services gateway refuses.
aiServicesSecretStoreUrlstring""❌Public URL of AI Services in front of its central secret store, used to keep the tenants' AI gateway keys there. Requires authtoolBffUrl and aiServicesClientId. Empty keeps every credential in this release's secretStoreService.
systemAgentModelstring""❌Model of the seeded system playbooks (session namer, follow-ups, feedback summaries, compaction, memory extraction, Insights narration). Replaces adkBeApp.config.compactionSummarizerModel and sessionNamerModel. Empty uses the default of the seed, claude-haiku-5-5. The model must be served by the AI gateway.
assistantAgentModelstring""❌Model used by built-in assistants (AI Foundry assistant, Catalog assistant, documentation assistant, resource generator), passed to aiFoundryProvisioner. Empty uses the default of the seed, claude-sonnet-5-5, which is seeded as a Model on PaaS only: on-premises, set it to one of your models. The model must be a Model of every tenant and be served by the AI gateway.

IngressRoute (Traefik)​

KeyTypeDefaultRequiredDescription
ingressRoute.enabledbooleanfalse❌Create a Traefik IngressRoute resource.
ingressRoute.namestringdefault-ingress❌Name of the IngressRoute resource. Prefixed with namespacePrefix when set.
ingressRoute.hoststring""❌Hostname for the IngressRoute. Defaults to the host part of url when empty.
ingressRoute.entryPointsarray["websecure"]❌Traefik entry points to attach the route to.
ingressRoute.middlewaresarray[]❌Additional Traefik middleware references (e.g. IP filtering, rate limiting).
ingressRoute.serviceNamestringapi-gateway❌Kubernetes Service name to route traffic to.
ingressRoute.servicePortinteger8080❌Service port to route traffic to.

Authorization server​

KeyTypeDefaultRequiredDescription
authorizationServer.enabledbooleantrue❌Enable JWT validation in the API gateway.
authorizationServer.issuerstring""✅Keycloak realm issuer URL (e.g. https://keycloak.your-domain.com/realms/my-realm). Used by authtoolBff to discover OIDC endpoints and by the API gateway to validate JWTs.

Telemetry​

KeyTypeDefaultRequiredDescription
telemetry.enabledbooleanfalse❌Enable OpenTelemetry tracing for services that support it.
telemetry.otelExporterOtlpEndpointstring""❌OTLP endpoint for all signals (traces, metrics, logs).
telemetry.otelExporterOtlpTracesEndpointstring""❌OTLP endpoint for traces only. Overrides the general endpoint for traces.

Secrets​

The chart can manage secret creation inline. When enabled: false (default), the secret must exist in the namespace before install (e.g. created manually or via External Secrets Operator).

authtool-bff keys​

authtool-bff runs four OIDC clients: website (browser login/logout), exchangeCatalog (token exchange for the Catalog API), exchangeAuthz (token exchange for the Authz API), and exchangeAiServices (token exchange for AI Services). Each has its own key material, and every declared client needs it or authtool-bff fails at startup: to drop a client, set it to null under authtoolBff.config.clients. In a self-managed authtool-bff-keys Secret, each client has a <client>-key.pem entry (private_key_jwt) or a <client>-client-secret entry, plus cookie-secret.key and redis-token-enc.key.

KeyTypeDefaultDescription
secrets.authtoolBffKeys.enabledbooleanfalseWhen true, the chart creates a Secret named authtool-bff-keys from the values below.
secrets.authtoolBffKeys.cookieSecretstring""Secret used to sign and encrypt session cookies (hex, 64 bytes recommended).
secrets.authtoolBffKeys.tokenEncKeystring""Key used to encrypt token data stored in Redis (hex, 32 bytes recommended).
secrets.authtoolBffKeys.website.privateKeystring""RSA private key in PEM format, base64 encoded. Used when the website client's tokenAuthMethod is private_key_jwt.
secrets.authtoolBffKeys.website.clientSecretstring""OIDC client secret. Used when the website client's tokenAuthMethod is client_secret_post or client_secret_basic.
secrets.authtoolBffKeys.exchangeCatalog.privateKeystring""RSA private key for the Catalog token-exchange client.
secrets.authtoolBffKeys.exchangeCatalog.clientSecretstring""OIDC client secret for the Catalog token-exchange client.
secrets.authtoolBffKeys.exchangeAuthz.privateKeystring""RSA private key for the Authz token-exchange client.
secrets.authtoolBffKeys.exchangeAuthz.clientSecretstring""OIDC client secret for the Authz token-exchange client.
secrets.authtoolBffKeys.exchangeAiServices.privateKeystring""RSA private key for the AI Services token-exchange client.
secrets.authtoolBffKeys.exchangeAiServices.clientSecretstring""OIDC client secret for the AI Services token-exchange client.
Key generation
ssh-keygen -t rsa -b 4096 -m PEM -f private.key -N "" > /dev/null
privateKey=$(base64 < private.key); rm private.key private.key.pub
cookieSecret=$(openssl rand -hex 64)
tokenEncKey=$(openssl rand -hex 32)

access-control keys​

Used only when accessControl.config.externalContext.enabled: true: accessControl authenticates as its own OIDC client to call the API configured via authzUrl.

KeyTypeDefaultDescription
secrets.accessControlKeys.enabledbooleanfalseWhen true, the chart creates a Secret named access-control-keys.
secrets.accessControlKeys.privateKeystring""RSA private key in PEM format, base64 encoded. Used when accessControl.config.externalContext.authorization.tokenAuthMethod is private_key_jwt.
secrets.accessControlKeys.clientSecretstring""OIDC client secret. Used when accessControl.config.externalContext.authorization.tokenAuthMethod is client_secret_post or client_secret_basic.

adk-be-app keys​

KeyTypeDefaultDescription
secrets.adkBeAppKeys.enabledbooleanfalseWhen true, the chart creates a Secret named adk-be-app-keys from the values below.
secrets.adkBeAppKeys.postgresConnectionStringstring""PostgreSQL connection string used by the ADK backend (e.g. postgresql://user:pass@host:5432/dbname).
secrets.adkBeAppKeys.otelExporterOtlpHeadersstring""OTLP authentication headers for the ADK backend (e.g. Authorization=Bearer <token>).
secrets.adkBeAppKeys.litellmProxyApiKeystring""Key for the LiteLLM AI gateway, when the gateway requires one. Without it, adkBeApp reads each tenant's own gateway key from the secret store.
secrets.adkBeAppKeys.langfuseAuthHeaderstring""Authorization header for the Langfuse read API, used with adkBeApp.config.langfuseBaseUrl.
secrets.adkBeAppKeys.prometheusAuthHeaderstring""Authorization header for the metrics store, used with adkBeApp.config.prometheusBaseUrl.

The chart no longer creates an ai-foundry-bff-keys Secret: aiFoundryBff reads no credential.

ai-foundry-be keys​

Required while aiFoundryBe.enabled: true, unless an ai-foundry-be-keys Secret already exists. Also used by aiFoundryProvisioner.

KeyTypeDefaultDescription
secrets.aiFoundryBeKeys.enabledbooleanfalseWhen true, the chart creates a Secret named ai-foundry-be-keys from the values below.
secrets.aiFoundryBeKeys.postgresConnectionStringstring""PostgreSQL connection string. Must reach the same database as secrets.adkBeAppKeys.postgresConnectionString.
secrets.aiFoundryBeKeys.langfuseAuthHeaderstring""Langfuse read credential (e.g. Basic <base64 of public-key:secret-key>). Required when aiFoundryBe.config.langfuseBaseUrl is set.
secrets.aiFoundryBeKeys.prometheusAuthHeaderstring""Authorization header for the metrics store. When empty, the caller's token exchanged through aiServicesClientId is used.
secrets.aiFoundryBeKeys.litellmAdminKeystring""LiteLLM admin key: the master key of the AI Services gateway (secrets.litellmProxyKeys.masterKey of the AI Services values). It mints virtual keys and reads every tenant's spend. Required when aiFoundryBe.config.litellmBaseUrl is set.
secrets.aiFoundryBeKeys.mcpConsentKeySecretstring""Secret from which each person's durable gateway identity is derived. Read together with litellmAdminKey when aiFoundryBe.config.litellmBaseUrl is set. Use a random value (for example openssl rand -hex 32) and keep it stable: changing it gives every person a new identity. Empty falls back to short-lived keys.

ai-foundry-workflows keys​

Required while aiFoundryWorkflows.enabled: true, unless an ai-foundry-workflows-keys Secret already exists.

KeyTypeDefaultDescription
secrets.aiFoundryWorkflowsKeys.enabledbooleanfalseWhen true, the chart creates a Secret named ai-foundry-workflows-keys.
secrets.aiFoundryWorkflowsKeys.postgresConnectionStringstring""PostgreSQL connection string. Must reach the same database as adkBeAppKeys and aiFoundryBeKeys.

secret-store-service keys​

Required while secretStoreService.enabled: true with the default approle auth method, unless a secret-store-service-keys Secret already exists.

KeyTypeDefaultDescription
secrets.secretStoreServiceKeys.enabledbooleanfalseWhen true, the chart creates a Secret named secret-store-service-keys.
secrets.secretStoreServiceKeys.storeRoleIdstring""AppRole role-id for OpenBao.
secrets.secretStoreServiceKeys.storeSecretIdstring""AppRole secret-id for OpenBao. Both values are required.

workspace-service keys​

Required while workspaceService.enabled: true, unless a workspace-service-keys Secret already exists.

KeyTypeDefaultDescription
secrets.workspaceServiceKeys.enabledbooleanfalseWhen true, the chart creates a Secret named workspace-service-keys.
secrets.workspaceServiceKeys.postgresConnectionStringstring""PostgreSQL connection string of a database of its own: the service creates the workspaces table at startup, so the role needs create rights on it.

ai-foundry-provisioner keys​

Required only when aiFoundryProvisioner.enabled: true and catalogUrl is set, unless an ai-foundry-provisioner-keys Secret already exists.

KeyTypeDefaultDescription
secrets.aiFoundryProvisionerKeys.enabledbooleanfalseWhen true, the chart creates a Secret named ai-foundry-provisioner-keys.
secrets.aiFoundryProvisionerKeys.privateKeystring""Private key of the ai-foundry-provisioner Keycloak client. Requires aiFoundryProvisioner.serve.enabled: true or aiFoundryProvisioner.keyPublishedExternally: true.
secrets.aiFoundryProvisionerKeys.clientSecretstring""Client secret of the ai-foundry-provisioner Keycloak client, as an alternative to privateKey.

Global image settings​

KeyTypeDefaultDescription
global.labelsobject{}Additional labels added to all resources.
global.annotationsobject{}Additional annotations added to all resources.
global.imagePullSecret.enabledbooleanfalseWhen true, every pod references the image pull secret named in global.imagePullSecret.name. It does not control the creation of the Secret.
global.imagePullSecret.namestring""Name of the image pull secret. The chart creates a kubernetes.io/dockerconfigjson Secret with this name only when name and all of global.imageCredentials.registry, username, password and email are set; otherwise the Secret must already exist.
global.imageCredentials.registrystring""Container registry hostname. Also used as the fallback registry for any microservice image that does not set its own image.registry.
global.imageCredentials.usernamestring""Registry username. Typically injected at deploy time via --set rather than committed to a values file.
global.imageCredentials.passwordstring""Registry password/token. Typically injected at deploy time via --set.
global.imageCredentials.emailstring""Email associated with the registry credentials (required by the dockerconfigjson format).

Service accounts​

Each microservice gets its own dedicated ServiceAccount, created by default. Applies to: accessControl, adkBeApp, aiFoundryBe, aiFoundryBff, aiFoundryWebsite, aiFoundryMcp, aiFoundryWorkflows, apiGateway, authtoolBff, cache, redis, secretStoreService, workspaceService. Remove serviceAccounts.doclingService from existing values.

KeyTypeDefaultDescription
serviceAccounts.<service>.enabledbooleantrueCreate a ServiceAccount for <service>.

Common microservice fields​

All microservices share the following configurable fields:

KeyTypeDescription
<service>.enabledbooleanEnable or disable the microservice.
<service>.replicaCountintegerNumber of pod replicas.
<service>.image.registrystringContainer registry.
<service>.image.repositorystringImage repository path.
<service>.image.tagstringImage tag.
<service>.image.pullPolicystringImage pull policy (Always, IfNotPresent, Never).
<service>.resources.requests.cpustringCPU request.
<service>.resources.requests.memorystringMemory request.
<service>.resources.limits.cpustringCPU limit.
<service>.resources.limits.memorystringMemory limit.
<service>.autoscaling.enabledbooleanEnable Horizontal Pod Autoscaler.
<service>.autoscaling.minReplicasintegerMinimum replicas for HPA.
<service>.autoscaling.maxReplicasintegerMaximum replicas for HPA.
<service>.autoscaling.targetCPUUtilizationPercentageintegerTarget CPU utilization percentage for HPA scaling.

accessControl​

OPA-based ext-authz service. Enforces RBAC policies on every request forwarded by the API gateway. Can optionally fetch additional authorization context from an external API.

KeyTypeDefaultDescription
accessControl.config.externalContext.enabledbooleantrueEnable fetching external authorization context from the API configured via authzUrl.
accessControl.config.externalContext.authorization.enabledbooleantrueAuthenticate to the external authorization API as an OIDC client.
accessControl.config.externalContext.authorization.clientIdstring"ai-foundry-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.

adkBeApp​

The ADK Backend App orchestrates AI agents using Google ADK and calls the models through the LiteLLM AI gateway of AI Services.

KeyTypeDefaultDescription
adkBeApp.config.aiGatewayEnabledbooleantrueCall the models through the AI gateway. Set to false to call them directly.
adkBeApp.config.litellmProxyApiBasestring""Required while aiGatewayEnabled is true: URL of the LiteLLM gateway of AI Services (e.g. https://<ai-services host>/ai-gateway/).
adkBeApp.config.agentMemoryBaseUrlstring""URL of the AI Services gateway in front of the memory service. Empty disables agent memory.
adkBeApp.config.langfuseBaseUrlstring""Langfuse read API, for the trace agent tools. Credential in secrets.adkBeAppKeys.langfuseAuthHeader.
adkBeApp.config.prometheusBaseUrlstring""Prometheus-compatible metrics API, for the metrics agent tool.
adkBeApp.config.agentReloadIntervalstring"300"Interval in seconds at which the ADK backend reloads agent definitions.
adkBeApp.config.foundryIntrospectionToolsbooleanfalseEnable introspection tools that expose AI Foundry's own agent/tool definitions to agents.
adkBeApp.config.allowPrivateNetworkMcpbooleanfalseAllow the ADK backend to reach MCP servers on private/internal network addresses.

aiFoundryBff​

The AI Foundry BFF provides the backend API to the website. It requires aiFoundryBe, which serves the observability read APIs.

KeyTypeDefaultDescription
aiFoundryBff.enabledbooleantrueDeploy the BFF. Requires aiFoundryBe.enabled: true: the chart refuses to render otherwise.
aiFoundryBff.config.memoryBaseUrlstring""URL of the AI Services gateway in front of the memory service (same value as adkBeApp.config.agentMemoryBaseUrl). Empty disables the memory routes.
aiFoundryBff.config.secretStoreBaseUrlstring""Secret store used to write credentials. Empty defaults to this release's secretStoreService; with secretStoreService disabled it is required, otherwise the chart refuses to render.
aiFoundryBff.config.marketplaceNamestring""Name of the plugin marketplace served by the BFF, in kebab-case. Empty means ai-foundry. Claude Code refuses a second marketplace with a name it already holds, so deployments a person adds side by side (for example Dev and Demo) need different names. Changing it on an existing deployment re-keys every plugin installed from it.

aiFoundryBe​

PostgreSQL-backed implementation of the Catalog item API and read API for the observability screens. Enabled by default; its credential is in secrets.aiFoundryBeKeys.

KeyTypeDefaultDescription
aiFoundryBe.enabledbooleantrueDeploy ai-foundry-be. Required when catalogUrl is empty or aiFoundryBff is enabled.
aiFoundryBe.config.langfuseBaseUrlstring""Langfuse read API. Requires secrets.aiFoundryBeKeys.langfuseAuthHeader. Empty disables the trace screens.
aiFoundryBe.config.prometheusBaseUrlstring""Prometheus-compatible metrics API (Prometheus, or Mimir with its /prometheus prefix). Empty disables the metrics screens.
aiFoundryBe.config.litellmBaseUrlstring""Admin API of the LiteLLM gateway of AI Services (e.g. https://<ai-services host>/ai-gateway/), used for the model providers, the model catalogue, the observability and the gateway identity of each person. Empty makes these routes answer 503. Requires secrets.aiFoundryBeKeys.litellmAdminKey, authorizationServer.issuer and apiGateway.authorizationServer.audiences.

aiFoundryWorkflows​

The Agentic Workflows engine: a REST API and a Temporal worker. Temporal is provided by AI Services.

KeyTypeDefaultDescription
aiFoundryWorkflows.enabledbooleantrueDeploy the workflows engine. Set to false to skip the feature.
aiFoundryWorkflows.config.temporalAddressstring""host:port of the Temporal gRPC frontend of AI Services (e.g. temporal-frontend.<ai-services namespace>.svc.cluster.local:7233). Empty makes every workflow route answer 503.
aiFoundryWorkflows.config.temporalNamespacestring""Required while enabled: a Temporal namespace (not a Kubernetes one) declared in temporal.namespaces of the AI Services values.
aiFoundryWorkflows.config.temporalTaskQueuestring"agentic-workflows"Default Temporal task queue.
aiFoundryWorkflows.config.adkBaseUrlstring""Runtime that runs agent steps. Empty defaults to this release's adkBeApp; with adkBeApp disabled it is required, otherwise the chart refuses to render.
aiFoundryWorkflows.config.httpAllowPrivatebooleanfalseWhether an http step may reach a private address. Must stay false: the chart refuses to render with true, because the URL of such a step is chosen by whoever can edit a workflow.
aiFoundryWorkflows.config.workspaceBaseUrlstring""Workspace service used by the workflow runs. Empty defaults to this release's workspaceService.
aiFoundryWorkflows.config.aiServicesBaseUrlstring""Public URL of AI Services, used only for the runner-flavour lookup when the workspace service runs in another release. Requires authtoolBffUrl and aiServicesClientId, workspaceService.enabled: false and a workspaceBaseUrl: the chart refuses to render otherwise. Leave empty when workspaceService runs in this release.

The database credential is in secrets.aiFoundryWorkflowsKeys.

aiFoundryMcp​

MCP server over the Catalog and Agentic Workflows, served at {url}/foundry/mcp. Enabled by default, with no required configuration.

KeyTypeDefaultDescription
aiFoundryMcp.enabledbooleantrueDeploy the MCP server.
aiFoundryMcp.config.gatewayBaseUrlstring""AI Foundry edge the server calls. Empty defaults to the in-cluster api-gateway Service.

aiFoundryProvisioner​

A post-install/post-upgrade hook Job that seeds and migrates the AI Foundry resources of every tenant. The release fails if the Job fails. It needs the ai-foundry-be database credential. When catalogUrl is set it also needs the ai-foundry-provisioner Keycloak client (created by the Realm Management chart 0.1.47 or later with products.aiFoundry: true), its credential in secrets.aiFoundryProvisionerKeys, authzUrl and authorizationServer.issuer.

KeyTypeDefaultDescription
aiFoundryProvisioner.enabledbooleantrueRun the hook Job. Set to false to skip it.
aiFoundryProvisioner.dryRunbooleanfalseReport what would change without writing. Recommended for the first run.
aiFoundryProvisioner.clientIdstring""Client ID of the ai-foundry-provisioner service account. Required when catalogUrl is set.
aiFoundryProvisioner.keyIdstring""kid of the client key, when it has one.
aiFoundryProvisioner.serve.enabledbooleanfalseRun the workload that publishes the client public key at /.well-known/ai-foundry-provisioner/jwks.json. Required with a private key, unless keyPublishedExternally is true.
aiFoundryProvisioner.keyPublishedExternallybooleanfalseSet when the public key is registered directly in Keycloak instead of fetched from the JWKS URL.

aiFoundryWebsite​

The AI Foundry frontend application. The config.links section configures the documentation links shown in the integration pages. The links to the other Mia Platform products (Homepage, Catalog, Console, Flow) are not set here: the website reads them from the product configuration of the organization, served by Homepage & RBAC. The schema still accepts catalogHref, consoleHref, homepageHref, miaFlowHref, dataFabricHref, p4samdHref, claudeCodeHref, githubCopilotHref and miaDocsHref, but the website does not read them.

KeyTypeDefaultDescription
aiFoundryWebsite.config.enabledbooleantrueEnable the runtime configuration injection.
aiFoundryWebsite.config.links.claudeCodeDocsHrefstringURL of the Claude Code plugin discovery docs.
aiFoundryWebsite.config.links.claudeCodeSkillsDocsHrefstringURL of the Claude Code skills docs.
aiFoundryWebsite.config.links.claudeCodeTracesDocsHrefstringURL of the Claude Code traces/monitoring docs.
aiFoundryWebsite.config.links.githubCopilotCustomInstructionsHrefstringURL of the GitHub Copilot custom instructions docs.
aiFoundryWebsite.config.links.vscodeDocsHrefstringURL of the VS Code agent customization docs.
aiFoundryWebsite.config.links.vscodeMonitoringDocsHrefstringURL of the VS Code agent monitoring docs.
aiFoundryWebsite.config.links.kiroDocsHrefstringURL of the Kiro IDE docs.
aiFoundryWebsite.config.links.jetbrainsDocsHrefstringURL of the JetBrains IDE docs.
aiFoundryWebsite.config.links.jetbrainsTracesDocsHrefstringURL of the JetBrains traces/monitoring docs.
aiFoundryWebsite.config.oauth.scopesstringOAuth scopes requested by the git credential helper setup shown in the integration pages. When unset, derived from isPaaS: openid offline_access on-premises, openid offline_access organization:* on PaaS. Set it explicitly only for a realm that needs different scopes.
aiFoundryWebsite.config.otelServicesarray["copilot-chat","claude-code","mia-ai-foundry","litellm","mia-flow","adk-be-app"]List of service names displayed in the OTEL traces view.
aiFoundryWebsite.env.BASE_PATHstring"/website/"Base path at which the website is served.

apiGateway​

The Envoy API gateway. Validates JWTs and routes traffic to backend services.

KeyTypeDefaultDescription
apiGateway.logLevelstring"info"Envoy log level (debug, info, warn, error).
apiGateway.authorizationServer.namestring""Name of the OIDC authorization server cluster in Envoy's configuration (used for JWKS resolution).
apiGateway.authorizationServer.audiencesarray["ai-foundry-api"]Expected JWT audiences. Tokens not containing at least one of these audiences are rejected.
apiGateway.maxBodyBytesinteger10485760Maximum allowed request body size in bytes (default: 10 MiB).
apiGateway.docling.urlstring""Docling route of AI Services (e.g. https://<ai-services host>/api/docling/). The gateway routes /api/docling/ there, exchanging the caller's token through aiServicesClientId. Empty leaves the route absent.
apiGateway.docling.maxBodyBytesinteger33554432Maximum request body size in bytes on the Docling route.

authtoolBff​

The OIDC Backend-for-Frontend. Manages session lifecycle and the PKCE login/logout flow. Configures four OIDC clients: website (browser login/logout), exchangeCatalog (token exchange for the Catalog API, aliased catalog-api), exchangeAuthz (token exchange for the Authz API, aliased authz-api), and exchangeAiServices (token exchange for AI Services, aliased ai-services-api). Set a client to null to remove it; if you do not use AI Services, set authtoolBff.config.clients.exchangeAiServices: null and leave aiServicesClientId empty.

KeyTypeDefaultDescription
authtoolBff.config.clients.website.clientIdstring"ai-foundry-website-bff"OIDC client ID registered in Keycloak for the browser login/logout flow.
authtoolBff.config.clients.website.tokenAuthMethodstring"private_key_jwt"Token endpoint authentication method for the website client. Options: private_key_jwt, client_secret_post, client_secret_basic.
authtoolBff.config.clients.exchangeCatalog.clientIdstring"ai-foundry-token-exchange"OIDC client ID used for the Catalog token-exchange grant.
authtoolBff.config.clients.exchangeCatalog.clientAliasstring"catalog-api"Alias under which the exchanged Catalog token is issued.
authtoolBff.config.clients.exchangeCatalog.tokenAuthMethodstring"private_key_jwt"Token endpoint authentication method for the Catalog exchange client.
authtoolBff.config.clients.exchangeAuthz.clientIdstring"ai-foundry-token-exchange"OIDC client ID used for the Authz token-exchange grant.
authtoolBff.config.clients.exchangeAuthz.clientAliasstring"authz-api"Alias under which the exchanged Authz token is issued.
authtoolBff.config.clients.exchangeAuthz.tokenAuthMethodstring"private_key_jwt"Token endpoint authentication method for the Authz exchange client.
authtoolBff.config.clients.exchangeAiServices.clientIdstring"ai-foundry-token-exchange"OIDC client ID used for the AI Services token-exchange grant.
authtoolBff.config.clients.exchangeAiServices.clientAliasstring"ai-services-api"Alias under which the exchanged AI Services token is issued.
authtoolBff.config.clients.exchangeAiServices.tokenAuthMethodstring"private_key_jwt"Token endpoint authentication method for the AI Services exchange client.
authtoolBff.config.disableAccessTokenEncryptionbooleanfalseDisable encryption of the access token stored in Redis. Leave false unless required for debugging.
authtoolBff.config.userClaimsarray["name","email","sub"]Additional JWT claims to propagate as user context within the session.
authtoolBff.config.authorizationCacheobject{}Pass-through cache connection config, used when cache.enabled: false.

cache​

Redis instance used by authtoolBff to store encrypted session tokens.

KeyTypeDefaultDescription
cache.config.maxMemorystring"192mb"Maximum memory allocated to Redis. When reached, Redis evicts keys using the allkeys-lru policy.

redis​

Shared application Redis of the AI Foundry services, used as a cache (persistence is off). Enabled by default.

KeyTypeDefaultDescription
redis.enabledbooleantrueDeploy the shared Redis.
redis.config.maxMemorystring"128mb"Maximum memory allocated to Redis.

secretStoreService​

Credential store in front of OpenBao, holding the credentials configured in AI Foundry. Enabled by default.

KeyTypeDefaultDescription
secretStoreService.enabledbooleantrueDeploy the secret store service.
secretStoreService.config.storeAddrstring""Required while enabled: address of OpenBao (e.g. https://openbao.your-domain.com).
secretStoreService.config.auth.methodstring"approle"approle uses the pair in secrets.secretStoreServiceKeys; jwt logs in with the pod ServiceAccount and needs a store whose JWT mount trusts the cluster OIDC issuer.
secretStoreService.config.auth.jwt.rolestring""Store role bound to this namespace's ServiceAccount. Required with auth.method: jwt.

workspaceService​

Ephemeral filesystem shared by the steps of a workflow run: a control plane plus one runner pod per workspace. Enabled by default; its database credential is in secrets.workspaceServiceKeys.

KeyTypeDefaultDescription
workspaceService.enabledbooleantrueDeploy the workspace service. Set to false to skip the feature.
workspaceService.config.runnerBackendstring"kubernetes"Runner backend. Must be kubernetes in a cluster.
workspaceService.config.runnerNamespacestring""Namespace where runner pods are created. Empty means the release namespace; another namespace must exist before install.
workspaceService.config.allowArbitraryCommandsbooleanfalseLet runners execute commands from the cloned repository. Requires runnerNodeSelector or runnerRuntimeClassName.