Custom resource definition (CRD)

This section describes the options available for the operator setup.

Basic setup

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

cat <<EOF | oc apply -f -
apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: processmining-instance
  namespace: ${PM_PROJECT}
spec:
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: <<STORAGE_CLASS>>
  taskmining:
    agent_plugin: true 
    images: 
      imagepullpolicy: Always
EOF
You can also use an external MonetDB configuration. The following code sample represents the basic setup:
apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm
spec:
  processmining: 
    monetdb:
      external:
        host: monetdb-srv1-monetdb-service.processmining.svc.cluster.local
        database: processmining
        user: monetdb
        credential:  
      processmining:
        monetdb:
          probe: 
            enabled: true 
            initialDelaySeconds: 10 
            periodSeconds: 30 
            timeoutSeconds: 600
          passwordkey: password
          secretname: monetdb-srv1-monetdb-secret
        port: 50000
      create: false

For more information about the containerized MonetDB deployment, see Optional: Installing containerized external MonetDB.

The operator uses this configuration to perform the following tasks:

  • Install the IBM Process Mining application.
  • Install the IBM Task Mining application.
  • Install PostgreSQL, 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 AIOps
  4. Specify the external PostgreSQL configuration details.

Production setup

The following code sample represents the suggested configuration for a production installation with external PostgreSQL.

Note: The following configuration uses rook-cephfs as a storage class. You can change the storage class according to your requirements and configurations.
apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 2.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: 'pmi-custom-tls-secret'
        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:
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: pm-external-postgres-secret
          database: processmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          user: pm_user
  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: 'pgsql'
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: tm-external-postgres-secret
          database: taskmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          schema: tm
          user: taskminer        

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.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: 'pmi-custom-tls-secret'
        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:
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: pm-external-postgres-secret
          database: processmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          user: pm_user
    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:
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: tm-external-postgres-secret
          database: taskmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          schema: tm
          user: taskminer       
    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.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: 'pmi-custom-tls-secret'
        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:
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: pm-external-postgres-secret
          database: processmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          user: pm_user
      redis: 
        install: True
        version: '1.4.0'
    images: # optional images
      imagepullpolicy: Always
      nginx: cp.icr.io/cp/processmining-nginx:2.2.0
      usermanagement: cp.icr.io/cp/processmining-usermanagement:2.2.0
      discovery: cp.icr.io/cp/processmining-discovery:2.2.0
      analytics: cp.icr.io/cp/processmining-analytics:2.2.0
      bpa: cp.icr.io/cp/processmining-bpa:2.2.0
      dr: cp.icr.io/cp/processmining-dr:2.2.0
      ssl: cp.icr.io/cp/processmining-ssl:2.2.0
      connectors: cp.icr.io/cp/processmining-connectors:2.2.0
      monitoring: cp.icr.io/cp/processmining-monitoring:2.2.0
      acf_batch_sap_p2p: cp.icr.io/cp/processmining-acf-batch-sap-p2p:2.2.0
      acf_custom_process_app: cp.icr.io/cp/processmining-acf-custom:2.2.0
      ml_runtime: cp.icr.io/cp/processmining-catboostflat:2.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:
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: tm-external-postgres-secret
          database: taskmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          schema: tm
          user: taskminer      
    images:
      imagePullPolicy: Always
      nginx: cp.icr.io/cp/processmining-tm-nginx:2.2.0
      webapp: cp.icr.io/cp/processmining-tm-webapp:2.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.2.0
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs
  processmining:
    storage:
      database:
        external:
          connectionstring: ''
          credential:
            passwordkey: externalpostgrespassword
            secretname: pm-external-postgres-secret
          database: processmining
          host: $EXT_DB_HOSTNAME
          port: 5432
          user: pm_user
      redis: 
        install: false
  taskmining: 
    install: false

Understand the CRD status when deployed

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