How to Upgrade the Services chart
To upgrade the services chart, update the chart version and run helm upgrade.
tip
The chart follows semver: breaking changes are introduced only in major version bumps. Minor releases add new optional configuration; patch releases contain only fixes. Always review the changelog before upgrading across a major boundary.
Direct chart upgrade
If you installed the chart directly:
helm repo update
helm upgrade services mia-platform/services \
--namespace services \
--values values.yaml \
--atomic \
--timeout 5m
Upgrade via the services-deployment wrapper
If you use the services-deployment wrapper repository, update the pinned chart version in Chart.yaml:
Chart.yaml
dependencies:
- name: services
version: "~X.Y" # bump to the desired version
repository: "https://nexus.mia-platform.eu/repository/helm-internal/"
Then:
helm dependency update
helm upgrade --install services . \
--namespace services \
--values values/production.yaml \
--atomic
Version-specific notes
From 0.3.16 to 0.4.6 (Mia-Platform v15.1.1 to v15.2.0)
- Upgrade the Realm Management chart to
0.1.47first, withproducts.authzenabled, plusproducts.catalogandproducts.aiServicesif you use those products. The ADK Backend App exchanges the user token through the Keycloak client set in the newauthtoolBff.config.exchangeClientId(defaultauthz-token-exchange), which needs themia:catalogscope and, with AI Services, themia:ai-servicesscope. - Set
adkBeApp.config.catalogApiUrlto the API gateway of your Catalog installation (for examplehttp://api-gateway.<catalog namespace>.svc.cluster.local:8080).adkBeAppis enabled by default and the chart refuses to render while this value is empty. If you do not run the Catalog, setadkBeApp.enabled: false. - Configure how the ADK Backend App reaches the models.
adkBeApp.config.aiGatewayEnableddefaults totrue, so the models are called through the LiteLLM gateway of AI Services: setadkBeApp.config.litellmProxyApiBase(for examplehttps://<ai-services host>/ai-gateway/),adkBeApp.config.secretStoreBaseUrl(the public URL of AI Services) and the new top-levelaiServicesClientId: "ai-services-api". Without them the chart refuses to render. If you do not use AI Services, setadkBeApp.config.aiGatewayEnabled: false. - Remove the
doclingServiceblock andserviceAccounts.doclingServicefrom your values: the chart no longer deploys Docling and its values schema rejects them. To keep document parsing for chat attachments, set the newapiGateway.docling.urlto the Docling route of AI Services (for examplehttps://<ai-services host>/api/docling/) together withaiServicesClientId. With an empty URL the/api/docling/route is not served. - Remove
adkBeApp.config.tempoBaseUrlandsecrets.adkBeAppKeys.tempoAuthHeaderfrom your values: the schema no longer accepts them. If you manage theadk-be-app-keysSecret yourself, you can drop itstempoAuthHeaderkey.
Also note:
- The chart now creates the image pull Secret only when
global.imagePullSecret.name,global.imageCredentials.registry,username,passwordandemailare all set;global.imagePullSecret.enabledonly controls whether pods reference it. If you relied on the chart to create the Secret, make sure all five values are set, or Helm removes it on upgrade. adkBeApp.config.googleCloudProject,googleCloudLocationandgoogleGenaiUseVertexaiare no longer in the default values. They are still used if you set them.adkBeApp.config.catalogClientIdnow defaults tocatalog-api.- The new optional
hooks.seedBuiltinGroups.enabledhook seeds the built-in groups and their role assignments into every tenant. It reads thepostgres-connection-stringkey of therbac-management-keysSecret. - With
hooks.seedEmails.enabled, you can now also customize the onboarding email underhooks.seedEmails.data.defaultOnboardingEmail.
From 0.2.65-hotfix.0 to 0.3.16 (Mia-Platform v15.0.2 to v15.1.0)
- If you enabled
hooks.seedDataand sethooks.seedData.secretName, remove that value: the chart no longer reads it. The seed job now always reads the PostgreSQL connection string from therbac-management-keysSecret, under the key set inhooks.seedData.secretKey(defaultpostgres-connection-string). Before you upgrade, make sure that Secret contains the connection string under that key.
Also note:
- The new optional
namespacePrefixvalue (default empty) adds a<namespacePrefix>-prefix to the names of all the resources the chart creates, including therbac-management-keysSecret, the image pull Secret set inglobal.imagePullSecret.nameand the TLS Secret set iningressRoute.tls.secretName. Secrets that you create yourself must then use the prefixed names. Setting it on an existing installation renames its resources. - The name of the Traefik IngressRoute can be set with
ingressRoute.name. The default isdefault-ingress, the previous name. - The hook resources have new names: for example, the Secret
postgres-db-check-credentialsis nowpostgres-db-connectivity-credentials. Jobs left behind under the old names by an earlier failed hook are not cleaned up by Helm: delete them by hand.
From 0.2.65 to 0.2.65-hotfix.0 (Mia-Platform v15.0.0 to v15.0.1)
No manual action required: install the new chart version.