Installing IBM RPA with other IBM Cloud Paks

When you install IBM RPA alongside other IBM Cloud Paks, you must make sure that their IBM Cloud Pak foundational services 🡥 versions are also compatible.

Different IBM Cloud Pak foundational services versions handle various aspects of the product differently. Earlier versions of the foundational services stored Kubernetes secrets and ConfigMaps in a different namespace from where they are located now. IBM Cloud Pak foundational services 3.4.0 and higher store Kubernetes secrets and ConfigMaps in the ibm-common-services namespace.

When you install multiple IBM Cloud Pak solutions together, if they do not share foundational services version, they are incompatible from a foundational services perspective.

IBM RPA supports IBM Cloud Pak foundational services starting from 3.19.0 up to 3.23.x.

Before you begin

  • You must install the IBM RPA operator in a namespace. Do not install it in the global namespace.
  • If you want to install IBM RPA 23.0.x with an IBM Cloud Pak, you must install the Countinuous Delivery (CD) version of the Cloud Pak. IBM RPA uses the CD version of IBM MQ, and it is not compatible with LTS versions of IBM MQ and IBM Cloud Paks.
  • Prepare the SQL Server database to use with the IBM RPA server. For more information, see Installing the database.
  • Set up an identity provider. For instructions on how to install an identity provider off-cluster, see Installing and configuring OpenLDAP.

Procedure

Follow the procedure to install an IBM Cloud Pak with IBM RPA in the same cluster.

Installing IBM Cloud Pak

  1. Install Red Hat OpenShift Container Platform.

  2. Install your IBM Cloud Pak of choice in a namespace.

  3. Create two namespaces to install IBM RPA and the common services.

    oc new-project ibm-common-services-rpa
    oc new-project ibm-rpa
    

Installing IBM Cloud Pak foundational services in multiple namespaces

  1. Log in to your OpenShift cluster console.

  2. Click the plus icon. You see the Import YAML dialog box.

  3. Paste the following configmap definition into the dialog box and replace the namespace value with your custom namespaces.

    apiVersion: v1
    kind: ConfigMap
    metadata:
        name: common-service-maps
        namespace: kube-public
    data:
        common-service-maps.yaml: |
            controlNamespace: cs-control
            namespaceMapping:
            - requested-from-namespace:
                - <cloud-pak-namespace>
                map-to-common-service-namespace: <cloud-pak-namespace>
            - requested-from-namespace:
                - ibm-rpa
                map-to-common-service-namespace: ibm-common-services-rpa
    
    Important:Replace the values of <cloud-pak-namespace> with the namespace that you installed your IBM Cloud Pak on.
  4. Click Create. The common-service-maps configmap is created in the kube-public namespace.

  5. Create a new Catalog Source specific for IBM Cloud Pak foundational services 3.23.x called ibm-operator-catalog.yaml.

    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
    name: ibm-operator-catalog
    namespace: openshift-marketplace
    annotations:
        olm.catalogImageTemplate: "icr.io/cpopen/ibm-operator-catalog:v{kube_major_version}.{kube_minor_version}"
    spec:
    displayName: IBM operator Catalog
    publisher: IBM
    sourceType: grpc
    image: icr.io/cpopen/ibm-operator-catalog:latest
    updateStrategy:
        registryPoll:
        interval: 45m
    
  6. Apply the YAML file:

    oc apply -f ibm-operator-catalog.yaml
    
  7. Create the operatorgroup.yaml file:

    apiVersion: operators.coreos.com/v1alpha2
    kind: OperatorGroup
    metadata:
      name: operatorgroup
      namespace: ibm-rpa
    spec:
      targetNamespaces:
      - ibm-rpa
    
  8. Apply the YAML file:

    oc apply -f operatorgroup.yaml
    
  9. Create the Subscription.yaml file for common-services in the ibm-rpa namespace.

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: ibm-common-service-operator
      namespace: ibm-rpa
    spec:
      channel: v3.23
      installPlanApproval: Automatic
      name: ibm-common-service-operator
      source: ibm-operator-catalog
      sourceNamespace: openshift-marketplace
    
  10. Apply the YAML file:

    oc apply -f Subscription.yaml
    
  11. Wait until the Subscription is ready to proceed.

  12. Edit the common service object.

    oc -n ibm-common-services-rpa edit commonservice common-service
    
  13. Accept the license and set the size as small. Once you finish editing the new version is automatically applied:

    apiVersion: operator.ibm.com/v3
    kind: CommonService
    metadata:
      name: common-service
      namespace: ibm-common-services-rpa
    spec:
      license:
        accept: true  
      size: small
    
  14. Create this manifest:

    oc -n ibm-common-services-rpa edit commonservice common-service
    
  15. Add the following contents to the file. Once you are done, save and close the file to apply the settings:

    apiVersion: operator.ibm.com/v1alpha1
    kind: CommonService
    metadata:
      name: common-service
      namespace: ibm-common-services-rpa
    spec:
      requests:
        - operands:
            - name: ibm-cert-manager-operator
            - name: ibm-mongodb-operator
            - name: ibm-iam-operator
            - name: ibm-monitoring-grafana-operator
            - name: ibm-healthcheck-operator
            - name: ibm-management-ingress-operator
            - name: ibm-licensing-operator
            - name: ibm-commonui-operator
            - name: ibm-events-operator
            - name: ibm-ingress-nginx-operator
            - name: ibm-auditlogging-operator
            - name: ibm-platform-api-operator
            - name: ibm-zen-operator
            - name: ibm-db2u-operator
            - name: cloud-native-postgresql
            - name: ibm-user-data-services-operator
            - name: ibm-zen-cpp-operator
            - name: ibm-bts-operator
          registry: common-service
    
  16. Wait until the operation completes before you go to the next step. You can track the progress with the following command:

    oc get pods --field-selector status.phase!=Running
    
  17. Create the OperandRequest.yaml to request CPFS for ibm-rpa:

    apiVersion: operator.ibm.com/v1alpha1
    kind: OperandRequest
    metadata:
      name: common-service
      namespace: ibm-rpa
    spec:
      requests:
        - operands:
            - name: ibm-cert-manager-operator
            - name: ibm-mongodb-operator
            - name: ibm-iam-operator
            - name: ibm-monitoring-grafana-operator
            - name: ibm-healthcheck-operator
            - name: ibm-management-ingress-operator
            - name: ibm-licensing-operator
            - name: ibm-commonui-operator
            - name: ibm-events-operator
            - name: ibm-ingress-nginx-operator
            - name: ibm-auditlogging-operator
            - name: ibm-platform-api-operator
            - name: ibm-zen-operator
            - name: ibm-db2u-operator
            - name: cloud-native-postgresql
            - name: ibm-user-data-services-operator
            - name: ibm-zen-cpp-operator
            - name: ibm-bts-operator
          registry: common-service
          registryNamespace: ibm-common-services-rpa
    
  18. Apply the YAML file:

    oc apply -f OperandRequest.yaml
    

What to do next

You can now install the IBM RPA operator.

Important:You don't need to set up another OperatorGroup to install IBM RPA, you have already done that in step 7. Skip step 1 from the IBM RPA operator installation procedure and continue to install the operator.