Skip to main content

Helm Values: ai-foundry chart

This page describes all configurable values for the ai-foundry chart. See values.yaml for defaults.

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.
isPaaSbooleanfalseSet to true for Mia Platform PaaS deployments.
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.
catalogClientIdstring""OIDC client ID used to identify the Catalog API audience for the token-exchange flow (e.g. catalog-api).
authzUrlstring""URL of an external Authorization API (e.g. the services chart's apiGateway, routed to rbacManagement). Used by aiFoundryBff and, when accessControl.config.externalContext.enabled: true, by accessControl itself.
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, used to route token-exchange calls through it for cross-cluster calls. Leave empty to forward the caller's JWT verbatim to authzUrl/catalogUrl instead (same-cluster pass-through mode).

IngressRoute (Traefik)

KeyTypeDefaultRequiredDescription
ingressRoute.enabledbooleanfalseCreate a Traefik IngressRoute resource.
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-gatewayKubernetes Service name to route traffic to.
ingressRoute.servicePortinteger8080Service port to route traffic to.

Authorization server

KeyTypeDefaultRequiredDescription
authorizationServer.enabledbooleantrueEnable 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.enabledbooleanfalseEnable 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 three OIDC clients: website (browser login/logout), exchangeCatalog (token exchange for the Catalog API), and exchangeAuthz (token exchange for the Authz API). Each has its own key material.

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.
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.googleApplicationCredentialsstring""Full JSON content of the GCP service account key file (not base64 encoded; the chart handles encoding).
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.tempoAuthHeaderstring""Bearer token for adkBeApp to send traces directly to Tempo (used when adkBeApp.config.tempoBaseUrl is set).

ai-foundry-bff keys

Unlike the other secrets above, this Secret is always created by the chart whenever aiFoundryBff.enabled: true — there is no enabled gate.

KeyTypeDescription
secrets.aiFoundryBffKeys.tempoAuthHeaderstringBearer token for authenticating to the Tempo backend (e.g. Bearer <token>).

Global image settings

KeyTypeDefaultDescription
global.labelsobject{}Additional labels added to all resources.
global.annotationsobject{}Additional annotations added to all resources.
global.imagePullSecret.enabledbooleanfalseWhen true, the chart creates a kubernetes.io/dockerconfigjson Secret from global.imageCredentials and references it on every pod.
global.imagePullSecret.namestring""Name of the image pull secret. Must match an existing Secret when enabled: false, or is created by the chart when enabled: true.
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, aiFoundryBff, aiFoundryWebsite, apiGateway, authtoolBff, cache, doclingService.

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.
accessControl.config.externalContext.authorization.credentialsNamestring""Optional override for the credentials file name mounted from secrets.accessControlKeys.

adkBeApp

The ADK Backend App orchestrates AI agents using Google Cloud ADK and Vertex AI.

KeyTypeDefaultDescription
adkBeApp.config.googleCloudProjectstring""GCP project ID where Vertex AI agents are deployed.
adkBeApp.config.googleCloudLocationstring""GCP region (e.g. europe-west1).
adkBeApp.config.googleGenaiUseVertexaibooleanfalseSet to true to use Vertex AI as the GenAI backend. When false, the Google AI Studio API is used.
adkBeApp.config.agentReloadIntervalstring"300"Interval in seconds at which the ADK backend reloads agent definitions.
adkBeApp.config.tempoBaseUrlstring""Base URL of a Tempo instance for adkBeApp to ship traces to directly, authenticated via secrets.adkBeAppKeys.tempoAuthHeader.
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 and collects agent traces in Tempo.

KeyTypeDefaultDescription
aiFoundryBff.config.tempoBaseUrlstring""Base URL of the Tempo instance used for agent trace queries (e.g. https://tempo.your-domain.com).
aiFoundryBff.config.tempoAllowedServicesstring"copilot-chat,claude-code,mia-ai-foundry,mia-flow"Comma-separated list of service names whose traces are surfaced in the AI Foundry UI.

aiFoundryWebsite

The AI Foundry frontend application. The config.links section configures all cross-product navigation links displayed in the UI.

KeyTypeDefaultDescription
aiFoundryWebsite.config.enabledbooleantrueEnable the runtime configuration injection.
aiFoundryWebsite.config.links.catalogHrefstringURL of the Mia Platform Catalog website.
aiFoundryWebsite.config.links.miaFlowHrefstringURL of the Mia Flow application.
aiFoundryWebsite.config.links.consoleHrefstringURL of the Mia Platform Console.
aiFoundryWebsite.config.links.dataFabricHrefstringURL of the Data Fabric control plane.
aiFoundryWebsite.config.links.homepageHrefstringURL of the Mia Platform homepage (deployed by the services chart).
aiFoundryWebsite.config.links.p4samdHrefstringURL of the p4samd platform.
aiFoundryWebsite.config.links.claudeCodeHrefstringURL of Claude Code.
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.githubCopilotHrefstringURL of GitHub Copilot.
aiFoundryWebsite.config.links.githubCopilotCustomInstructionsHrefstringURL of the GitHub Copilot custom instructions docs.
aiFoundryWebsite.config.links.miaDocsHrefstringURL of the Mia Platform documentation.
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.otelServicesarray["copilot-chat","claude-code","mia-ai-foundry","mia-flow"]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).

authtoolBff

The OIDC Backend-for-Frontend. Manages session lifecycle and the PKCE login/logout flow. Configures three OIDC clients: website (browser login/logout), exchangeCatalog (token exchange for the Catalog API, aliased catalog-api), and exchangeAuthz (token exchange for the Authz API, aliased authz-api).

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.website.credentialsNamestring""Optional override for the credentials file name mounted from secrets.authtoolBffKeys.website.
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.disableAccessTokenEncryptionbooleanfalseDisable encryption of the access token stored in Redis. Leave false unless required for debugging.
authtoolBff.config.userClaimsarray[]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.

doclingService

The Docling document conversion service. It parses uploaded documents (PDF, DOCX, etc.) for use as AI agent context.

Resource requirements

doclingService is CPU-intensive (requests: 500m CPU / 1 GiB memory; limits: 1000m CPU / 2 GiB memory). It is disabled by default in lightweight environments (preproduction, experimental). Enable it only when document parsing is required.

KeyTypeDefaultDescription
doclingService.enabledbooleantrueEnable or disable the Docling service. Set to false to reduce resource consumption when document ingestion is not needed.