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.

Requirements

  • 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.

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-catalog2. Save it as a YAML file.

    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: ibm-operator-catalog2
      namespace: openshift-marketplace
    spec:
      displayName: ibm-operator-catalog2
      publisher: IBM Content
      sourceType: grpc
      image: icr.io/cpopen/ibm-operator-catalog:v{kube_major_version}.{kube_minor_version}
      updateStrategy:
        registryPoll:
          interval: 45m
    

    You can get the {kube_major_version}.{kube_minor_version} from the Kubernetes Release History 🡥.

  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-catalog2
      sourceNamespace: openshift-marketplace
    
  10. Apply the YAML file:

    oc apply -f Subscription.yaml
    
  11. Edit the common service object.

    oc -n ibm-common-services-rpa edit commonservice common-service
    
  12. 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
    
  13. Edit the resource:

    oc -n ibm-common-services-rpa edit commonservice common-service
    
  14. 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: OperandRequest
    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
    
  15. 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
    
  16. Apply the YAML file:

    oc apply -f OperandRequest.yaml
    
  17. Install the IBM RPA operator.