Skip to main content
Version: 15.2.0

Helm Values: services chart

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

URL and exposure​

KeyTypeDefaultRequiredDescription
urlstring""✅Full public URL where the homepage is exposed (e.g. https://home.your-domain.com). Used to configure OIDC redirect URIs and routing.
isPaaSbooleanfalse❌Set to true for Mia Platform PaaS deployments. Enables PaaS-specific routing and features.

IngressRoute (Traefik)​

KeyTypeDefaultRequiredDescription
ingressRoute.enabledbooleanfalse❌Create a Traefik IngressRoute resource for the homepage.
ingressRoute.entryPointsarray["websecure"]❌Traefik entry points to attach the route to.
ingressRoute.middlewaresarray[]❌Additional Traefik middleware references (e.g. IP filtering, rate limiting).
ingressRoute.tlsEnabledbooleanfalse❌Add a tls block to the IngressRoute spec.
ingressRoute.tlsobject{}❌Pass-through Traefik TLS spec (e.g. { secretName: my-cert }). Rendered only when tlsEnabled: true.

Authorization server​

KeyTypeDefaultRequiredDescription
authorizationServer.enabledbooleantrue❌Enable OIDC token validation against the configured issuer.
authorizationServer.issuerstring""✅Keycloak realm issuer URL (e.g. https://keycloak.your-domain.com/realms/my-realm). Used by Envoy and authtool-bff to discover OIDC endpoints and validate tokens.

Telemetry​

KeyTypeDefaultRequiredDescription
telemetry.enabledbooleanfalse❌Enable OpenTelemetry tracing.
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 the authtool-bff key material as a Kubernetes Secret. This is optional: if you prefer to create the secret externally (e.g. via External Secrets Operator), set enabled: false and create the secret manually before installing.

KeyTypeDefaultRequiredDescription
secrets.authtoolBffKeys.enabledbooleanfalse❌When true, the chart creates a Secret named authtool-bff-keys from the values below.
secrets.authtoolBffKeys.privateKeystring""❌RSA private key in PEM format, base64 encoded. Used 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)

The chart can similarly manage the rbacManagement PostgreSQL connection string as a Kubernetes Secret:

KeyTypeDefaultRequiredDescription
secrets.rbacManagementKeys.enabledbooleanfalse❌When true, the chart creates a Secret named rbac-management-keys from the value below.
secrets.rbacManagementKeys.postgresConnectionStringstring""❌Full PostgreSQL connection string (e.g. postgresql://user:password@host:5432/database), mounted into the rbacManagement pod.

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 (e.g. nexus.mia-platform.eu). 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.

KeyTypeDefaultDescription
serviceAccounts.accessControl.enabledbooleantrueCreate a ServiceAccount for accessControl.
serviceAccounts.apiGateway.enabledbooleantrueCreate a ServiceAccount for apiGateway.
serviceAccounts.authtoolBff.enabledbooleantrueCreate a ServiceAccount for authtoolBff.
serviceAccounts.cache.enabledbooleantrueCreate a ServiceAccount for cache.
serviceAccounts.homepageWebsite.enabledbooleantrueCreate a ServiceAccount for homepageWebsite.
serviceAccounts.rbacManagement.enabledbooleantrueCreate a ServiceAccount for rbacManagement.
serviceAccounts.swaggerAggregator.enabledbooleantrueCreate a ServiceAccount for swaggerAggregator.

Common microservice fields​

All microservices share the following configurable fields:

KeyTypeDescription
<service>.enabledbooleanEnable or disable the microservice.
<service>.replicaCountintegerNumber of pod replicas.
<service>.autoscaling.enabledbooleanEnable Horizontal Pod Autoscaler.
<service>.autoscaling.minReplicasintegerMinimum replicas when autoscaling is enabled.
<service>.autoscaling.maxReplicasintegerMaximum replicas when autoscaling is enabled.
<service>.autoscaling.targetCPUUtilizationPercentageintegerTarget average CPU utilization used to scale the HPA.
<service>.image.registrystringContainer registry. Falls back to global.imageCredentials.registry when unset.
<service>.image.repositorystringImage repository path.
<service>.image.tagstringImage tag.
<service>.image.pullPolicystringIfNotPresent, Always, or Never.
<service>.resources.requests.cpustringCPU request.
<service>.resources.requests.memorystringMemory request.
<service>.resources.limits.cpustringCPU limit.
<service>.resources.limits.memorystringMemory limit.
<service>.logLevelstringLog level: trace, debug, info, warn, error.
<service>.envarrayExtra environment variables ({name, value} or {name, valueFrom} objects) injected into the container.

apiGateway​

Envoy reverse proxy. Routes all inbound traffic and delegates per-request authorization to accessControl.

KeyTypeDefaultDescription
apiGateway.enabledbooleantrueDeploy the API gateway.
apiGateway.maxBodyBytesinteger10485760Maximum allowed request body size in bytes (default: 10 MiB).
apiGateway.extraVirtualHostsarray[]Additional hostnames (and, optionally, ports) accepted on the main virtual host, e.g. when the homepage is reachable under more than one domain/port.
apiGateway.authorizationServer.audiencesarray["authz-api"]Expected token audiences accepted when validating requests against the authorization server.
apiGateway.config.clusterOverridesobject{}Override upstream cluster addresses. Keys are cluster names; values are objects with address (string) and port_value (integer).

accessControl​

OPA-based ext-authz service. Receives authorization sub-requests from Envoy and allows or denies them based on RBAC policies.

KeyTypeDefaultDescription
accessControl.enabledbooleantrueDeploy the access control service.

authtoolBff​

OIDC Backend-for-Frontend. Handles the PKCE login/logout flow with Keycloak and issues signed, encrypted session cookies.

KeyTypeDefaultDescription
authtoolBff.enabledbooleantrueDeploy the authtool-bff service.
authtoolBff.tokenAuthMethodstringprivate_key_jwtToken endpoint authentication method. One of: private_key_jwt (requires privateKey secret), client_secret_basic, client_secret_post (both require clientSecret secret).
authtoolBff.config.clientIdstring""Required. OIDC client ID registered in Keycloak.
authtoolBff.config.disableAccessTokenEncryptionbooleanfalseDisable encryption of the access token stored in Redis. Leave false unless required for debugging.
authtoolBff.config.userClaimsarray[]List of Keycloak token claims to forward in the session.
authtoolBff.config.authorizationCacheobject{}Configuration for caching authorization decisions in Redis.

cache​

Redis instance used by authtool-bff for session token storage.

KeyTypeDefaultDescription
cache.enabledbooleantrueDeploy the Redis cache.
cache.maxMemorystring"192mb"Redis maxmemory directive. Adjust based on expected concurrent sessions.

homepageWebsite​

Mia Platform homepage frontend Single Page Application.

KeyTypeDefaultDescription
homepageWebsite.enabledbooleantrueDeploy the homepage website.
homepageWebsite.config.baseHrefstring"/home/"Base href for the SPA router. Set to "/" when the homepage is served at the root path.

rbacManagement​

RBAC administration API (REST on port 80/3000, gRPC on port 50051). Manages roles, permissions, and product access, backed by an external PostgreSQL database. Requires the rbac-management-keys Secret (see Secrets).

KeyTypeDefaultDescription
rbacManagement.enabledbooleantrueDeploy the RBAC management service.

swaggerAggregator​

Optional API portal. Aggregates OpenAPI specs from projects and exposes them through a unified documentation interface. Disabled by default.

KeyTypeDefaultDescription
swaggerAggregator.enabledbooleanfalseDeploy the Swagger aggregator.
swaggerAggregator.config.clientIdstring""OIDC client ID used by the aggregator to authenticate when fetching protected OpenAPI specs.