Custom resource definition

This section describes the options available for the operator setup.

Basic setup

The basic setup does not require any specific configuration. It is only intended for nonproduction environments. The following code sample represents the basic setup:

apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 2.0
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs

The operator uses this configuration to perform the following tasks:

  • Install the IBM Process Mining application.
  • Install the IBM Task Mining application.
  • Install the embedded MongoDB, Db2, and MonetDB.
  • Generate self-signed certificates that include root CA.

Define storage classes

You must use the spec.defaultStorageClassName property of the CRD to specify the default storage class. This storage class is then used for creating persistent volumes.

For more information on storage classes, see Storage configuration.

Understand mandatory specs

Follow the three mandatory steps to create the CRD instance:

  1. Specify the operand version.

  2. Accept the license terms. For more information on license terms, see https://ibm.biz/IAF-1-3-8-license.

  3. Specify the selected Cloud Pak from the following available options:

    • IBM Cloud Pak for Business Automation
    • IBM Cloud Pak for Integration
    • IBM Cloud Pak for Network Automation
    • IBM Cloud Pak for Watson AI Ops

Production setup

The following code sample represents the suggested configuration for a production installation:

apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 2.0
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs
  processmining:
    #name of the secret with custom certificates for processmining web
    #name of the files must be tls.crt and tls.key
    tls:
      - ui:
        - secretname: 'processmining_tls_secret_name'
          certificate: 'tls.crt'
          key: 'tls.key'
          ca: 'ca.crt'
    storage: 
      events: #section for file system storage
        name: 'processmining-repository' # name of the PVC 
        size: '300'
        class: 'rook-cephfs' #storage class of the Pvc; must permit readWriteMany
        create: true #if false a name of the existing pvc must be provided
      database: #section for mongo
        create: false
        external: #if defined this section permit the configuration of the usage of an external Mongo instance
          host: '172.16.1.18'
          port: 27017
          database: processmining
          user: 'ww'
          connectionstring: '' #custom connection string
          credential: #secret name and key for password storage
            secretname: 'example'
            passwordkey: password
  taskmining: 
    install: true #if false Task Mining application is not installed
    tls: 
      ui: # secret name with Ssl certificates for web application endpoint
        secretname: 'taskmining_tls_secret_name'
        certificate: 'tls.crt'
        key: 'tls.key'
        ca: 'ca.crt'
    storage:
      events: 
        name: taskmining-data # Pvc for data recorded by Agents
        size: '200'
        class: 'rook-cephfs' #storage class of the Pvc; must permit readWriteMany
        create: true # Pvc created by the operator
      database: 
        dbtype: 'db2'
        external: # use an external Db2 or PostgreSQL instance
          credential:
            secretname: 'example'
            passwordkey: password
          user: user
          database: taskminer
          host: hostname
          port: 50000
          schema: 'db2inst1'
          ssl: true

HA setup

The following code sample represents the available options for an HA installation:

apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 2.0
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs
  processmining:
    #name of the secret with custom certificates for processmining web
    #name of the files must be tls.crt and tls.key
    tls:
      - ui:
        - secretname: 'processmining_tls_secret_name'
          certificate: 'tls.crt'
          key: 'tls.key'
          ca: 'ca.crt'
    storage: 
      events: #section for file system storage
        name: 'processmining-repository' # name of the PVC 
        size: '100'
        class: 'rook-cephfs' #storage class of the Pvc; must permit readWriteMany
        create: true #if false a name of the existing pvc must be provided
      database: #section for mongo
        create: false
        external: #if defined this section permit the configuration of the usage of an external Mongo instance
          host: '172.16.1.18'
          port: 27017
          database: processmining
          user: 'ww'
          connectionstring: '' #custom connection string
          credential: #secret name and key for password storage
            secretname: 'example'
            passwordkey: password
    replicas:
      nginx: 3
      discovery: 3
      analytics: 3
      bpa: 3
      dr: 3
      usermanagement: 3
  taskmining: 
    install: true #if false Task Mining application is not installed
    tls: 
      ui: # secret name with Ssl certificates for web application endpoint
        secretname: 'taskmining_tls_secret_name'
        certificate: 'tls.crt'
        key: 'tls.key'
        ca: 'ca.crt'
    storage:
      events: 
        name: taskmining-data # Pvc for data recorded by Agents
        size: '50'
        class: 'rook-cephfs' #storage class of the Pvc; must permit readWriteMany
        create: true # Pvc created by the operator
      database: 
        create: false # Pvc created by the operator
        dbtype: 'db2'
        external: # use an external Db2 or PostgreSQL instance
          credential:
            secretname: 'example'
            passwordkey: password
          user: user
          database: taskminer
          host: hostname
          port: 50000
          schema: ''
          ssl: false
    replicas:
      nginx: 3
      webapp: 3
      taskbuilder: 3
      taskprocessor: 3

Custom setup

The following code sample represents the available options for a custom installation:

apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 2.0
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs
  processmining:
    #name of the secret with custom certificates for processmining web
    #name of the files must be tls.crt and tls.key
    tls:
      - ui:
        - secretname: 'processmining_tls_secret_name'
          certificate: 'tls.crt'
          key: 'tls.key'
          ca: 'ca.crt'
    storage: 
      events: #section for file system storage
        name: 'processmining-repository' # name of the PVC 
        size: '10'
        class: 'rook-cephfs' #storage class of the Pvc; must permit readWriteMany
        create: true #if false a name of the existing pvc must be provided
      database: #section for mongo
        name: 'processmining-mongo'
        create: true
        size: '5'
        class: 'my-storage-class'
        external: #if defined this section permit the configuration of the usage of an external Mongo instance
          host: '172.16.1.18'
          port: 27017
          database: processmining
          user: 'ww'
          connectionstring: '' #custom connection string
          credential: #secret name and key for password storage
            secretname: 'example'
            passwordkey: password
      redis: 
        install: True
        version: '5.0.9'
    images: # optional images
      imagepullpolicy: Always
      nginx: cp.icr.io/cp/processmining-nginx:2.0
      usermanagement: cp.icr.io/cp/processmining-usermanagement:2.0
      discovery: cp.icr.io/cp/processmining-discovery:2.0
      analytics: cp.icr.io/cp/processmining-analytics:2.0
      bpa: cp.icr.io/cp/processmining-bpa:2.0
      dr: cp.icr.io/cp/processmining-dr:2.0
      mongo: cp.icr.io/cp/processmining-mongo:2.0
      ssl: cp.icr.io/cp/processmining-ssl:2.0
      connectors: cp.icr.io/cp/processmining-connectors:2.0
      monitoring: cp.icr.io/cp/processmining-monitoring:2.0
      acf_batch_sap_p2p: cp.icr.io/cp/processmining-acf-batch-sap-p2p:2.0
      acf_custom_process_app: cp.icr.io/cp/processmining-acf-custom:2.0
      ml_runtime: cp.icr.io/cp/processmining-catboostflat:2.0
    replicas:
      nginx: 1
      discovery: 1
      analytics: 1
      bpa: 1
      dr: 1
      usermanagement: 1
  taskmining: 
    install: true #if false Task Mining application is not installed
    tls: 
      ui: # secret name with Ssl certificates for web application endpoint
        secretname: 'taskmining_tls_secret_name'
        certificate: 'tls.crt'
        key: 'tls.key'
        ca: 'ca.crt'
    storage:
      events: 
        name: taskmining-data # Pvc for data recorded by Agents
        size: '50'
        class: 'rook-cephfs' #storage class of the Pvc; must permit readWriteMany
        create: true # Pvc created by the operator
      database: 
        create: true # Pvc created by the operator
        size: '10'
        dbtype: 'db2'
        version: 's11.5.8.0-cn2' # ability to change the DB2Cluster instance version based on the installed operator
        class: 'ibmc-file-gold-gid' #difine the storageClass used by DB2Cluster instance
        external: # use an external Db2 or PostgreSQL instance
          credential:
            secretname: 'example'
            passwordkey: password
          user: user
          database: taskminer
          host: hostname
          port: 50000
          schema: 'TMUSER'
          ssl: false
    images:
      imagePullPolicy: Always
      nginx: cp.icr.io/cp/processmining-tm-nginx:2.0
      webapp: cp.icr.io/cp/processmining-tm-webapp:2.0
    replicas:
      nginx: 1
      webapp: 1
      taskbuilder: 1
      taskprocessor: 1

  loglevel: 'INFO' #possible values are INFO or DEBUG

Minimal demo setup

The minimal setup does not require any specific configuration. It is only intended for nonproduction environments. This can be useful in limited resources cluster and with this configuration it is possible to avoid Redis and IBM Task Mining installation. The following code sample represents the basic setup:

apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 2.0
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs
  processmining:
    storage:
      redis: 
        install: false
  taskmining: 
    install: false

Using sample templates

It is possible to obtain the default configuration using the sample templates shown in the image below. Select the desired template and click on try it to get the desired sample.

You can apply a YAML template to use a default configuration. You can download or copy a template from the Samples tab.

Understand the CRD status when deployed

For more information on identifying the CRD status, see Accessing the UI.