Installing IBM Process Mining with Helm charts

Use Helm charts to install IBM Process Mining in your cluster.

Before installing Helm charts for IBM Process Mining services on your cluster, you must download the necessary .tgz files:

Use the following links to download .tgz files for IBM Process Mining and MonetDB:

Configuring the air-gap environment

Before installing MonetDB and IBM Process Mining, you need to mirror images, change your registry and specify your registry secret.

Do the following steps to configure your air-gapped environment:

  1. Mirror the images with one of the following options:
    1. Use the standard mirroring procedure. For more information, see Mirroring images to your private container registry.
    2. Mirror the images with your preferred tool (for example, Skopeo or Podman). For Skopeo, you can use the following example of a complete script as a reference:
      #!/bin/bash
      # remirror-with-skopeo.sh
      
      SRC_REGISTRY="cp.icr.io"
      DEST_REGISTRY="<YourPrivateRegistry>"
      
      declare -a IMAGES=(
        "processmining-monet@sha256:<image-digest>"
        "processmining-nginx@sha256:<image-digest>"
        "processmining-usermanagement@sha256:<image-digest>"
        "processmining-discovery@sha256:<image-digest>"
        "processmining-analytics@sha256:<image-digest>"
        "processmining-bpa@sha256:<image-digest>"
        "processmining-dr@sha256:<image-digest>"
        "processmining-ssl@sha256:<image-digest>"
        "processmining-monitoring@sha256:<image-digest>"
        "processmining-acf-custom@sha256:<image-digest>"
        "processmining-db-utils@sha256:<image-digest>"
        "processmining-dr-ml@sha256:<image-digest>"
      )
      
      
      echo "=== Copying images from /cp/ to root path ==="
      echo "Source Registry: $SRC_REGISTRY"
      echo "Destination Registry: $DEST_REGISTRY"
      echo "Total images: ${#IMAGES[@]}"
      echo ""
      
      SUCCESS=0
      FAILED=0
      
      for img_digest in "${IMAGES[@]}"; do
        IFS=':' read -r img_name digest <<< "$img_digest"
      
        SOURCE="docker://${SRC_REGISTRY}/cp/${img_name}":"${digest}"
        DEST="docker://${DEST_REGISTRY}/${img_name}":"${digest}"
      
        echo "[$((SUCCESS + FAILED + 1))/${#IMAGES[@]}] $img_name"
      
        skopeo copy \
          --src-tls-verify=false \
          --dest-tls-verify=false \
          --all \
          "$SOURCE" \
          "$DEST" 2>&1
      
        if [ $? -eq 0 ]; then
          echo "  ✓ Success"
          ((SUCCESS++))
        else
          echo "  ✗ Failed"
          ((FAILED++))
        fi
        echo ""
      done
      
      echo "=== Summary ==="
      echo "Success: $SUCCESS"
      echo "Failed: $FAILED"
      echo "Total: ${#IMAGES[@]}"
      Run the following commands to mirror images to your private registry with Skopeo:
      chmod +x my_skopeo_script.bash
      ./my_skopeo_script.bash
    Images that you need to mirror are listed in the values.yaml file.
  2. In the value.yaml files for both ibm-monetdb and ibm-process-mining, override the registry with the following value:
    images: 
      registry: 'my_private_registry:port'
    Note: If your digest is removed during the mirroring procedure, you must add it again with the tag you used.
  3. If the private registry needs a dedicated authentication for image pulling, specify it with the following value:
    imagePullSecrets: 
      - name: <YOUR SECRET NAME>
    Note: <YOUR SECRET NAME> is the "image pull secret" with the credential for your registry.

Installing MonetDB

Do the following steps to install MonetDB:
  1. Create a helm_mirrors directory with the following command:
    mkdir helm_mirrors
  2. Copy the .tgz files from case folder to the helm_mirrors directory.
  3. Optional: If you are using mirrored images for an air-gapped environment, you must change the registry URL. You can also optionally replace the image digest with a tag:
    images: 
      registry: 'my.companyregistry.io'
      monet: 'processmining-monet:20260413-2038'
  4. Use the following command to install a Helm chart for MonetDB on your namespace:
    helm install <RELEASE NAME> ./ibm-monetdb --namespace <YOUR NAMESPACE> -f sample-monet.yml
    Your sample-monet.yml file can contain the following configuration:
    imagePullSecrets: 
      - name: ibmclouddocker
    
    images: 
      registry: 'myprivateregistry.com'
      monet: 'processmining-monet:2.2.0'
    
    storage:
      size: 60
  5. Optional: Override the following settings in the value file:
    # storage options
    storage:
      #size in Gb
      size: 30
      # storageClass, if empty the cluster default will be used
      class: ''
      # create or not the PVC
      # if false a name of an existing one must be provided
      create: true
      name:  ''
    
    # pod resources
    resources:
      requests:
        cpu: "500m"
        memory: "2Gi"
        ephemeralstorage: "2Gi"
      limits:
        cpu: "8000m"
        memory: "18Gi"
        ephemeralstorage: "8Gi"

Installing IBM Process Mining

Do the following steps to install IBM Process Mining:

Important: You must install MonetDB and PostgreSQL before proceeding with the IBM Process Mining installation. For PostgreSQL, you can use the external configuration or any other preferred setup. For more information, see Setting up an external PostgreSQL database.
  1. Change the following settings in the value file to configure the mandatory settings of MonetDB and PostgreSQL:
    database:
      postgres:
        host: "<POSTGRES HOST>"
        user: "<POSTGRES USERNAME>"
        database: "<POSTGRES DB NAME>"
        credential:
          secretname: "<SECRET NAME WITH PASSWORD>"
          passwordkey: "<SECRET KEY WITH PASSWORD VALUE>"
      monet:
        host: "<MONETDB RELEASE NAME>-monetdb-service.<YOUR NAMESPACE>.svc.cluster.local"
        credential:
          secretname: "<MONETDB RELEASE NAME>-monetdb-secret"
          passwordkey: "password"
  2. Optional: If you are using mirrored images for an air-gapped environment, you must change the registry URL. You can also optionally replace the image digest with a tag:
    images: 
      registry: 'my.companyregistry.io'
      processmining:
        nginx: processmining-nginx:211
        usermanagement: processmining-usermanagement:211
        discovery: processmining-discovery:211
        analytics: processmining-analytics:211
        bpa: processmining-bpa:211
        dr: processmining-dr:211
        ssl: processmining-ssl:211
        monitoring: processmining-monitoring:211
        acf_custom_process_app: processmining-acf-custom:211
        monetdb: processmining-monet:211
        db_utils: processmining-db-utils:211
        dr_ml: processmining-dr-ml:211
    
    imagePullSecrets:
    - name: mydockersecret
  3. Optional: You can also configure the following settings in the value file:
    • E-mail server for the Forgot password feature.
    • Storage size and PVC
    • Single sign-on (LDAP or 0Auth)
    • Logs for debugging
    • Scheduled backup
    For more information, see Advanced configuration for Helm Charts installation.
  4. Use the following command to install a Helm chart for IBM Process Mining on your namespace:
    helm install  <RELEASE NAME> ./ibm-process-mining  --namespace <YOUR NAMESPACE> -f sample-pm.yml
    Your sample-pm.yml file should contain the following configuration:
    database:
      postgres:
        host: "cluster-postgrespm-rw"
        user: "app"
        database: "app"
        credential:
          secretname: "cluster-postgrespm-app"
          passwordkey: "password"
      monet:
        host: "monetpm-monetdb-service.processmining.svc.cluster.local"
        credential:
          secretname: "monetpm-monetdb-secret"
          passwordkey: "password"
    
    images: 
      registry: myprivateregistry.com
      processmining:
        nginx: cp.icr.io/cp/processmining-nginx@sha256:6febb76e1e422248282445992dd4c505296c93f8797cb6ec15e1c2551ddcfded
        usermanagement: cp.icr.io/cp/processmining-usermanagement@sha256:b78914056813decffffbb18d877a15ec25f829a0716f28162dd78f2ca9b6391f
        discovery: cp.icr.io/cp/processmining-discovery@sha256:b1a4830f8763f36008ba82ae1038613b495506a73c4c179031fcf4dfa61fb666
        analytics: cp.icr.io/cp/processmining-analytics@sha256:9c3fd530d6da56c5a2dd3d6d1b072691274707c11ded9a696a74bc3ffa694536
        bpa: cp.icr.io/cp/processmining-bpa@sha256:d7c6a6794bcfb46400bf3f02d29765dd04e57e92b6da713c5ddf81b0bfdf4070
        dr: cp.icr.io/cp/processmining-dr@sha256:6f3234bf0aceaba4c780aaadb19cbf48ab12e26ee6ec0f3db28edba96af39ffb
        ssl: cp.icr.io/cp/processmining-ssl@sha256:3c36337b6aada6f4979c5a6829c60b072cc414245573fcf66e9d36cd317628b1
        monitoring: cp.icr.io/cp/processmining-monitoring@sha256:92585fbb6595b829efc7d997827d7f92ccdd83697c8c5e3c44952283134f4f7b
        acf_custom_process_app: cp.icr.io/cp/processmining-acf-custom@sha256:9e005f99d9e53c48ba277f0f7855521e7010a7ef10e20019f88ee60f173802bb
        monetdb: cp.icr.io/cp/processmining-monet@sha256:379402a640348cb4dc6687f5be1fb80c7bf1caa5cdc4db21a91d9ed8c1192c06
        db_utils: cp.icr.io/cp/processmining-db-utils@sha256:beda60d2e945742d10a1471408bbc26cb33c50f1f80e2fa43e6bf940fdb4226c
        dr_ml: cp.icr.io/cp/processmining-dr-ml@sha256:c257fbcfb326ba066a305efa283b1a5477d6fe809a97e6ae0724729c95d13b0d
      taskmining:
        nginx: processmining-tm-nginx@sha256:a600ceb24272abab19a5f894a7f9611ce0bc7b3d264ed25de279751ad138f223
        webapp: processmining-tm-webapp@sha256:577a784103b10eb20d573794e74e0c51bc065cd0c7b421f5973c590f5956b85d
        
    
    imagePullSecrets: 
      - name: ibmclouddocker
    Note: A values.yaml file located in ibm-process-mining folder will be used by default if you do not use the -f command to use sample-pm.yml file.
  5. Find the login address bu accessing the URL exposed by the Route named `<RELEASE-NAME>-pm`.
  6. Log in to IBM Process Mining. For more information, see Validating the installation. In a fresh installation, <YOUR_PASSWORD> is generated automatically. You can find it in the user-management pod, as in the following example:
    2026/04/30 09:52:17.637 +0000 WARN  c.i.c.r.StartUpAccountRepository.init (103) - ************************** Startup database ****************************
    2026/04/30 09:52:17.969 +0000 WARN  c.i.c.r.StartUpAccountRepository.createAdminAccountPM (174) - maintenance.admin non present, must be created
    2026/04/30 09:52:17.973 +0000 WARN  c.i.c.r.StartUpAccountRepository.createAdminAccountPM (188) - ***************************************************************************
    2026/04/30 09:52:17.973 +0000 WARN  c.i.c.r.StartUpAccountRepository.createAdminAccountPM (189) - *** GENERATED RANDOM PASSWORD FOR maintenance.admin ***
    2026/04/30 09:52:17.973 +0000 WARN  c.i.c.r.StartUpAccountRepository.createAdminAccountPM (190) - *** PASSWORD: MDIDqXocUp ***
    2026/04/30 09:52:17.974 +0000 WARN  c.i.c.r.StartUpAccountRepository.createAdminAccountPM (191) - ***************************************************************************

Next steps