---
title: 2025.05.02
url: https://documentation.cluedin.net/operate/upgrade/2025-05-02
content_type: reference
section: Deploy & operate > Upgrade
---

# 2025.05.02

> reference: Facts, options, APIs.

This document covers the upgrade process from 2025.05.00 to 2025.05.02.

> **Important:** We do not support upgrading directly to this version from prior to 2025.05.00.

## Prerequisites
- Access to the Helm chart version `2.5.3`. You may need to run `helm repo update` to grab the latest version.
- [kubectl](https://documentation.cluedin.net/operate/upgrade/required-tools.md#kubectl)
- [Helm](https://documentation.cluedin.net/operate/upgrade/required-tools.md#helm)

## Guide

> **Important:** Before any upgrade takes place, ensure you have taken a snapshot or **backup of all your running PVCs** in your AKS cluster. This is very important as databases may be upgraded during this process.

### Stage 1: Prepare for upgrade

  1. Connect to your cluster using the kubeconfig.

  1. Export your current Helm values file. Keep one copy for the upgrade process and another as a backup.

  1. In the values file, update the following properties:

      ```yaml
      global:
        image:
          tag: "2025.05.02"
        strategy:
          type: Recreate

      application:
        cluedin:
          components:
            packages:
            - name: "CluedIn.Connector.AzureEventHub"
              version: "4.5.1"
            - name: "CluedIn.Connector.Dataverse"
              version: "4.5.1"
            - name: "CluedIn.Connector.Http"
              version: "4.5.0"
            - name: "CluedIn.EventHub"
              version: "4.5.1"
            - name: "CluedIn.Vocabularies.CommonDataModel"
              version: "4.5.1"
            - name: "CluedIn.Connector.AzureDataLake"
              version: "4.5.1"
            - name: "CluedIn.Connector.AzureDedicatedSqlPool"
              version: "4.0.2"
            - name: "CluedIn.Connector.AzureServiceBus"
              version: "4.5.0"
            - name: "CluedIn.Connector.OneLake"
              version: "4.5.1"
            - name: "CluedIn.ExternalSearch.Providers.DuckDuckGo.Provider"
              version: "4.5.1"
            - name: "CluedIn.ExternalSearch.Providers.PermId.Provider"
              version: "4.5.1"
            - name: "CluedIn.ExternalSearch.Providers.Web"
              version: "4.4.2"
            - name: "CluedIn.Provider.ExternalSearch.Bregg"
              version: "4.4.1"
            - name: "CluedIn.Provider.ExternalSearch.ClearBit"
              version: "4.4.1"
            - name: "CluedIn.Provider.ExternalSearch.CompanyHouse"
              version: "4.5.0"
            - name: "CluedIn.Provider.ExternalSearch.CVR"
              version: "4.4.2"
            - name: "CluedIn.Provider.ExternalSearch.Gleif"
              version: "4.4.2"
            - name: "CluedIn.Provider.ExternalSearch.GoogleMaps"
              version: "4.5.1"
            - name: "CluedIn.Provider.ExternalSearch.KnowledgeGraph"
              version: "4.5.0"
            - name: "CluedIn.Provider.ExternalSearch.Libpostal"
              version: "4.4.1"
            - name: "CluedIn.Provider.ExternalSearch.OpenCorporates"
              version: "4.5.0"
            - name: "CluedIn.Provider.ExternalSearch.Providers.VatLayer"
              version: "4.5.1"
            - name: "CluedIn.Purview"
              version: "4.5.1"
            - name: "CluedIn.PowerApps"
              version: "4.5.1"
            - name: "CluedIn.EnterpriseFlows.PowerAutomate"
              version: "4.5.0"
            - name: "CluedIn.Connector.SqlServer"
              version: "4.5.0"
            - name: "CluedIn.Connector.FabricOpenMirroring"
              version: "4.5.1"
            - name: "CluedIn.Provider.ExternalSearch.Providers.AzureOpenAI"
              version: "4.4.1"
            - name: "CluedIn.Provider.ExternalSearch.GoogleImages"
              version: "4.4.2"
            - name: "CluedIn.Provider.ExternalSearch.RestApi"
              version: "4.5.0"

        gql:
          hubSpotToken: <pat-token>
      ```

  1. (Optional) For the Azure Key Vault integration user, do the following: 

      1. Remove old secret mounting configuration. If you are currently mounting individual secrets to infrastructure components (as shown in the example below), remove these configurations. The base chart now handles secret integration automatically, simplifying the setup. 

          ```
          infrastructure:
            elasticsearch:
              auth:
                existingSecret: elasticsearch-credentials
              extraVolumeMounts:
                - mountPath: /mnt/secrets-store
                  name: secrets-store01-inline
                  readOnly: true
              extraVolumes:
                - csi:
                    driver: secrets-store.csi.k8s.io
                    readOnly: true
                    volumeAttributes:
                      secretProviderClass: cluedin-elasticsearch-sync
                  name: secrets-store01-inline

            monitoring:
              grafana:
                admin:
                  existingSecret: cluedin-grafana
                extraContainerVolumes:
                  - csi:
                      driver: secrets-store.csi.k8s.io
                      readOnly: true
                      volumeAttributes:
                        secretProviderClass: cluedin-grafana-sync
                    name: azure-keyvault-secrets
                sidecar:
                  dashboards:
                    extraMounts:
                      - mountPath: /mnt/secrets-sync
                        name: azure-keyvault-secrets
                        readOnly: true

            mssql:
              existingSecret: cluedin-sqlserver-secret
              existingSecretKey: sapassword
              extraVolumeMounts:
                - mountPath: /mnt/secrets-sync
                  name: azure-keyvault-secrets
                  readOnly: true
              extraVolumes:
                - csi:
                    driver: secrets-store.csi.k8s.io
                    readOnly: true
                    volumeAttributes:
                      secretProviderClass: cluedin-sqlserver-sync
                  name: azure-keyvault-secrets

            neo4j:
              neo4j:
                passwordFromSecret: cluedin-neo4j-auth
              additionalVolumeMounts:
                - mountPath: /plugins
                  name: plugins
                - mountPath: /mnt/secrets-sync
                  name: azure-keyvault-secrets
                  readOnly: true
              additionalVolumes:
                - emptyDir: {}
                  name: plugins
                - csi:
                    driver: secrets-store.csi.k8s.io
                    readOnly: true
                    volumeAttributes:
                      secretProviderClass: cluedin-neo4j-sync
                  name: azure-keyvault-secrets

            rabbitmq:
              auth:
                existingPasswordSecret: cluedin-rabbitmq
              extraVolumeMounts:
                - mountPath: /opt/bitnami/rabbitmq/plugins/cluedin_plugin.ez
                  name: extra-plugins
                  subPath: cluedin_plugin.ez
                - mountPath: /mnt/secrets-sync
                  name: azure-keyvault-secrets
                  readOnly: true
              extraVolumes:
                - emptyDir: {}
                  name: extra-plugins
                - csi:
                    driver: secrets-store.csi.k8s.io
                    readOnly: true
                    volumeAttributes:
                      secretProviderClass: cluedin-rabbitmq-sync
                  name: azure-keyvault-secrets

            redis:
              auth:
                existingSecret: cluedin-redis
                existingSecretPasswordKey: redis-password
              master:
                extraVolumeMounts:
                  - mountPath: /mnt/secrets-sync
                    name: azure-keyvault-secrets
                    readOnly: true
                extraVolumes:
                  - csi:
                      driver: secrets-store.csi.k8s.io
                      readOnly: true
                      volumeAttributes:
                        secretProviderClass: cluedin-redis-sync
                    name: azure-keyvault-secrets

          ```

        1. Update your Helm values. Your `values.yaml` should look similar to the example below:
            ```
            infrastructure:
              elasticsearch:
                auth:
                  existingSecret: elasticsearch-credentials

              monitoring:
                grafana:
                  admin:
                    existingSecret: cluedin-grafana

              mssql:
                existingSecret: cluedin-sqlserver-secret
                existingSecretKey: sapassword

              neo4j:
                neo4j:
                  passwordFromSecret: cluedin-neo4j-auth
                additionalVolumeMounts:
                  - mountPath: /plugins
                    name: plugins
                additionalVolumes:
                  - emptyDir: {}
                    name: plugins

              rabbitmq:
                auth:
                  existingPasswordSecret: cluedin-rabbitmq
                extraVolumeMounts:
                  - mountPath: /opt/bitnami/rabbitmq/plugins/cluedin_plugin.ez
                    name: extra-plugins
                    subPath: cluedin_plugin.ez
                extraVolumes:
                  - emptyDir: {}
                    name: extra-plugins

              redis:
                auth:
                  existingSecret: cluedin-redis
                  existingSecretPasswordKey: redis-password

            ```

  1. Apply the values file from your shell by running the following:

      ```bash
      # ${CustomValues} refers to the values file you have amended with the above changes. Please type the full path here.

      helm upgrade cluedin-platform -n cluedin cluedin/cluedin-platform \
          --version 2.5.3 \
          --values ${CustomValues} \
          --set application.system.runDatabaseJobsOnUpgrade=true \
          --set application.system.runNugetFullRestore=true \
          --wait \
          --timeout 10m0s
      ```
      After a few minutes, it should complete successfully.

1. Wait until the deployment finishes.

1. Perform the validation:

    - Make sure that all pods are healthy and all jobs are completed.

        Do not proceed if any pods show health issues. Investigate and resolve the issues before continuing. This will apply dynamic mappings to every CluedIn index.

    - Ensure that there are no errors in the pod logs.

    - Confirm that the server starts in normal mode.

    - Verify that the **cluedin-ui** pod is running.

If there are any issues during the upgrade process, please do not hesitate to reach out to CluedIn support.

Up: [Upgrade](https://documentation.cluedin.net/operate/upgrade.md)
