Skip to main content

Helm Values: catalog chart

This page describes all configurable values for the catalog chart. See values.yaml for defaults.

URL and environment

KeyTypeDefaultRequiredDescription
urlstring~Full public URL where the Catalog is exposed (e.g. https://catalog.your-domain.com). Used for OIDC redirect URIs, CORS, and routing.
isPaaSbooleanfalseSet to true for Mia Platform PaaS deployments.
environmentstring""Logical environment name. One of local, development, experimental, lts, preproduction, preview, demo.
authzUrlstring~URL of an external authorization API used by accessControl to enrich policy evaluation with external context (e.g. the services chart's apiGateway, routed to rbacManagement). Required when accessControl.config.externalContext.enabled: true.

IngressRoute (Traefik)

KeyTypeDefaultDescription
ingressRoute.enabledbooleanfalseCreate a Traefik IngressRoute resource.
ingressRoute.entryPointsarray["websecure"]Traefik entry points to attach the route to.
ingressRoute.middlewaresarray[]Additional Traefik middleware references.

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 for OIDC and by the API gateway for JWT validation.

Telemetry

KeyTypeDefaultDescription
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.

Kafka

The Catalog uses Kafka for its item event pipeline. You can deploy an embedded Kafka cluster (via Strimzi Operator) or connect to an external one.

Embedded Kafka

KeyTypeDefaultDescription
kafka.enabledbooleanfalseDeploy an embedded Kafka cluster managed by Strimzi.
kafka.operator.enabledbooleanfalseDeploy the Strimzi Kafka Operator in the same namespace. Set to false if the operator is already installed cluster-wide.
kafka.ui.enabledbooleanfalseDeploy the Kafbat UI for Kafka cluster management.
kafka.versionstring"4.1.0"Kafka version to deploy.
kafka.metadataVersionstring"4.0-IV3"Kafka metadata version (KRaft mode).
kafka.config.logRetentionHoursinteger48Log retention duration in hours.
kafka.node.replicasinteger1Number of Kafka nodes (broker + controller combined in KRaft mode).
kafka.node.storage.sizestring"20Gi"Persistent volume size per node.
kafka.node.storage.storageClassstring"standard"Storage class for Kafka PVCs.
kafka.topicsarraysee belowList of topics to auto-create on cluster initialization.

Default topics created:

TopicPartitions
catalog-events.input3
catalog-events.output3

Kafka context (shared by items pipeline)

KeyTypeDefaultDescription
catalogKafkaContext.topics.inputstring"catalog-events.input"Input topic consumed by itemsConsumer and itemsCompressor.
catalogKafkaContext.topics.outputstring"catalog-events.output"Output topic produced by itemsProducer.
catalogKafkaContext.connectionConfig.useBootstrapServersbooleantrueRead bootstrap servers from the kafkaKeys secret.
catalogKafkaContext.connectionConfig.useSaslUsernamebooleantrueRead SASL username from the kafkaKeys secret.
catalogKafkaContext.connectionConfig.useSaslPasswordbooleantrueRead SASL password from the kafkaKeys secret.
catalogKafkaContext.connectionConfig.saslMechanismstring"SCRAM-SHA-256"SASL authentication mechanism.
catalogKafkaContext.connectionConfig.securityProtocolstring"SASL_SSL"Kafka security protocol.

Secrets

The chart can manage secret creation inline. When enabled: false (default), the secret must exist in the namespace before install.

authtool-bff keys

KeyTypeDefaultDescription
secrets.authtoolBffKeys.enabledbooleanfalseWhen true, the chart creates a Secret named authtool-bff-keys.
secrets.authtoolBffKeys.privateKeystring""RSA private key in PEM format, base64 encoded. Required when authtoolBff.tokenAuthMethod is private_key_jwt.
secrets.authtoolBffKeys.cookieSecretstring""Secret used to sign and encrypt session cookies.
secrets.authtoolBffKeys.tokenEncKeystring""Key used to encrypt token data stored in Redis.
secrets.authtoolBffKeys.clientSecretstring""OIDC client secret. Required when authtoolBff.tokenAuthMethod is client_secret_post or client_secret_basic.
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)

catalog-engine keys

KeyTypeDefaultDescription
secrets.catalogEngineKeys.enabledbooleanfalseWhen true, the chart creates a Secret named catalog-engine-keys.
secrets.catalogEngineKeys.postgresConnectionStringstring""PostgreSQL connection string for the catalog database (e.g. postgresql://user:pass@host:5432/catalog).

adk-be-app keys

KeyTypeDefaultDescription
secrets.adkBeAppKeys.enabledbooleanfalseWhen true, the chart creates a Secret named adk-be-app-keys.
secrets.adkBeAppKeys.googleApplicationCredentialsstring""Full JSON content of the GCP service account key file.
secrets.adkBeAppKeys.postgresConnectionStringstring""PostgreSQL connection string for the ADK backend.
secrets.adkBeAppKeys.otelExporterOtlpHeadersstring""OTLP authentication headers for the ADK backend.
secrets.adkBeAppKeys.tempoAuthHeaderstring""Bearer token for authenticating to a Tempo backend.

kafka keys

KeyTypeDefaultDescription
secrets.kafkaKeys.enabledbooleanfalseWhen true, the chart creates a Secret named kafka-keys for the items pipeline services.
secrets.kafkaKeys.bootstrapServersstring""Kafka bootstrap servers address (e.g. kafka.your-domain.com:9092).
secrets.kafkaKeys.saslUsernamestring""Kafka SASL username.
secrets.kafkaKeys.saslPasswordstring""Kafka SASL password.

MongoDB keys

info

The itemsCompressor deduplication cache has been migrated from MongoDB to a dedicated PostgreSQL schema. Use secrets.itemsCompressorKeys instead; the MongoDB-based secrets.mongoKeys block has been removed.

items-compressor keys

KeyTypeDefaultDescription
secrets.itemsCompressorKeys.enabledbooleanfalseWhen true, the chart creates a Secret named items-compressor-keys.
secrets.itemsCompressorKeys.postgresConnectionStringstring""PostgreSQL connection string used by itemsCompressor as its deduplication cache (e.g. postgresql://user:pass@host:5432/catalog).

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.

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, apiGateway, authtoolBff, cache, catalogEngine, catalogWebsite, doclingService, itemsCompressor, itemsConsumer, itemsProducer, mcpServer, policyEngine, swaggerAggregator.

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>.logLevelstringLog level (debug, info, warn, error).
<service>.image.registrystringContainer registry.
<service>.image.repositorystringImage repository path.
<service>.image.tagstringImage tag.
<service>.image.pullPolicystringImage pull policy.
<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 for HPA scaling.

catalogEngine

The core Catalog REST API. Serves all catalog data from PostgreSQL.

KeyTypeDefaultDescription
catalogEngine.config.persistence.config.maxConnectionsinteger10Maximum number of PostgreSQL connections in the pool.

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"catalog-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.

authtoolBff

The OIDC Backend-for-Frontend. Manages session lifecycle and the PKCE login/logout flow. Configures two OIDC clients: website (browser login/logout) and exchange (token exchange for calling authorization APIs on the user's behalf).

KeyTypeDefaultDescription
authtoolBff.config.clients.website.clientIdstring"catalog-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.exchange.clientIdstring"catalog-token-exchange"OIDC client ID used for the urn:ietf:params:oauth:grant-type:token-exchange grant.
authtoolBff.config.clients.exchange.clientAliasstring"authz-api"Alias under which the exchanged token is issued; requested with audience authz-api and scope mia:authz.
authtoolBff.config.clients.exchange.tokenAuthMethodstring"private_key_jwt"Token endpoint authentication method for the exchange client.
authtoolBff.config.clients.exchange.credentialsNamestring""Optional override for the credentials file name mounted from secrets.authtoolBffKeys.exchange.
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.

apiGateway

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

KeyTypeDefaultDescription
apiGateway.logLevelstring"info"Envoy log level.
apiGateway.extraVirtualHostsarray[]Additional hostnames (and, optionally, ports) accepted on the main virtual host.
apiGateway.authorizationServer.namestring""Name of the OIDC authorization server cluster in Envoy (used for JWKS resolution).
apiGateway.authorizationServer.audiencesarray["catalog-api"]Expected JWT audiences.
apiGateway.maxBodyBytesinteger10485760Maximum allowed request body size in bytes (default: 10 MiB).

catalogWebsite

The Catalog frontend application.

KeyTypeDefaultDescription
catalogWebsite.config.baseHrefstring"/website/"Base path at which the website is served.

adkBeApp

The ADK Backend App. Orchestrates AI agents using Google Cloud ADK and Vertex AI. The same image is shared with the AI Foundry chart.

KeyTypeDefaultDescription
adkBeApp.config.googleCloudProjectstring"operations-lab"GCP project ID where Vertex AI agents are deployed.
adkBeApp.config.googleCloudLocationstring"europe-west1"GCP region.
adkBeApp.config.googleGenaiUseVertexaibooleantrueUse Vertex AI as the GenAI backend.
adkBeApp.config.agentReloadIntervalstring"300"Interval in seconds to reload agent definitions.

policyEngine

The authorization policy evaluation engine. Evaluates access policies against catalog resources.

KeyTypeDefaultDescription
policyEngine.config.redisKeyNamespacestring"policy-engine"Redis key prefix used to namespace policy cache entries.

mcpServer

The Model Context Protocol server. Exposes the Catalog API as an MCP tool for AI assistants.

KeyTypeDefaultDescription
mcpServer.configobject{}Additional MCP server configuration passed as a ConfigMap.

doclingService

The document parsing service. Converts uploaded documents into structured content for AI agent context.

Resource requirements

doclingService pulls a 4.4 GB image and loads PyTorch models at startup. Default resource allocation is 1–4 CPU and 1Gi–6Gi memory. Disable it in lightweight environments where document ingestion is not needed.

KeyTypeDefaultDescription
doclingService.enabledbooleantrueEnable or disable the Docling service.

swaggerAggregator

Aggregates OpenAPI specs from platform projects into a unified portal. Disabled by default.

KeyTypeDefaultDescription
swaggerAggregator.enabledbooleanfalseEnable the Swagger Aggregator.
swaggerAggregator.config.clientIdstring"catalog-api-portal"OIDC client ID used by the aggregator for authenticated API discovery.

Items pipeline services

itemsProducer, itemsConsumer, and itemsCompressor form the Kafka event pipeline. They all read Kafka credentials from the kafka-keys secret and use the topic names defined in catalogKafkaContext.topics.

itemsCompressor

Requires the items-compressor-keys Secret (see items-compressor keys) for its PostgreSQL connection string.

KeyTypeDefaultDescription
itemsCompressor.config.kafkaConsumerConfig.group.idstring""Kafka consumer group ID.
itemsCompressor.config.kafkaConsumerConfig.auto.offset.resetstring"earliest"Offset reset policy.
itemsCompressor.config.kafkaConsumerConfig.queued.max.messages.kbytesstring"32840"Maximum size (KB) of queued messages on the consumer side.
itemsCompressor.config.kafkaConsumerConfig.queued.min.messagesstring"5000"Minimum number of messages to keep queued on the consumer side.
itemsCompressor.config.kafkaProducerConfig.compression.typestring"snappy"Compression codec used when producing merged events back to Kafka.
itemsCompressor.config.postgresConfig.cache.enabledbooleantrueEnable the PostgreSQL-backed deduplication cache.
itemsCompressor.config.postgresConfig.cache.schemaNamestring"items_compressor"PostgreSQL schema used for the cache table.
itemsCompressor.config.postgresConfig.cache.tableNamestring"items_compressor_cache"PostgreSQL table used for the cache.

itemsConsumer

KeyTypeDefaultDescription
itemsConsumer.config.kafkaConfig.group.idstring""Kafka consumer group ID.
itemsConsumer.config.kafkaConfig.auto.offset.resetstring"earliest"Offset reset policy.
itemsConsumer.config.kafkaConfig.enable.auto.commitstring"true"Enable automatic offset commit.

itemsProducer

itemsProducer has no additional configuration beyond the common microservice fields. It reads Kafka credentials from the kafka-keys secret and writes to the catalogKafkaContext.topics.output topic.