Deploying ACE IntegrationServer on IBM Cloud Pak for Integration

 View Only
Mon September 20, 2021 08:02 AM

Originally published on September 30, 2019 on IBM Developer Recipes / Updated on March 19, 2020


Skill Level: Intermediate

In this recipe we will learn how to deploy a BAR file and create ACE IntegrationServer on ICP4I


1) ACE Dashboard is installed. If you want to learn how to install ACE Dashboard, follow below recipe:

Deploying ACE Dashboard on IBM Cloud Pak for Integration (ICP4I) on OCP 3.11 

2) If your BAR file contains message flows that require local Queue Manager with persistence, persistent storage is required.

3) Default namespace 'ace' has been used here for example. If you are deploying in some other namespace, make sure that security policies and secrets are configured appropriately. The predefined SecurityContextConstraints ibm-anyuid-scc has been verified for the supplied helm-chart. If you are deploying in a custom namespace, run below command for that namespace:

oc adm policy add-scc-to-group ibm-anyuid-scc system:serviceaccounts:<namespace>

Image Pull Secret: If you are using a private Docker registry (including an ICP Docker registry), an image pull secret needs to be created before installing the chart. Here we will use OCP registry, so will create image pull secret. A default image pull secret gets created in each namespace with the name like 'default-dockercfg-<xxxxx>' to pull the images from the same namespace. So if your ImageStreams are in same namespace, you can use this secret created by default. If you are pulling from IBM container registry, use ibm entitlement key secret.


  1. Upload BAR file

    Login to ICP4I navigator and open the ACE Dashboard.


    By clicking on ‘settings’ icon in top right corner left to help icon, you can go to ‘BAR files’ and manage the BAR files.


    Import the BAR file by clicking on ‘Import BAR’.


    Since this BAR file is not deployed currently, it shows as ‘Not deployed’.

  2. Create Persistent Volume (Optional step)

    This step is required only if you are deploying message flows that require local queue manager with persistent storage. 

    To use NFS for persistent storage, create a folder, say ‘ace-pv’, in NFS mount. Let us assume the NFS floder is ‘/nfs/integration/ace-mq’. Below is the sample JSON defintion for ACE PV. Note that accessMode is ‘ReadWriteOnce’. Specify the ‘server’ and ‘path’.

    "apiVersion": "v1",
    "kind": "PersistentVolume",
    "metadata": {
    "name": "ace-pv"
    "spec": {
    "capacity": {
    "storage": "2Gi"
    "nfs": {
    "server": "",
    "path": "/nfs/integration/ace-pv"
    "accessModes": [
    "persistentVolumeReclaimPolicy": "Retain"

    Save this pv definition to a file, say ‘ace-pv.json’.

    Login to OCP cluster and run below command to create PV:

    oc create -f ace-pv.json

    You can use dynamic provisioning of persistent storage as well by supplying the storage class.

  3. Create Integration Server

    Click on ‘Add server’. Select the already uploaded BAR file or upload a new BAR file.


    Click Continue. Copy the displayed Content Server URL and click on ‘Configure Release’


    Fill the fields with relevant values. Specify the Helm release name, Target namespace and Target cluster.


    Enter the Content Server url copied in previous step.

    Image parameters would be auto-populated.

    Specify the Image repository paths and Image pull secret. Below screenshot shows the image repository paths to pull from IBM container registry and entitlement key secret. However if you are pulling the images from local OCP registry, you would change these paths and supply the image pull secret accordingly.


    Specify the IntegrationServer name. If you need to configure IntegrationServer, for example queues on a local queue manager or DSN or configure integration server config yaml, create a secret with appropriate data values and give this secret name in the field ‘The name of the secret to create or to use that contains the server configuration
    ‘. You can go to ‘overview’ tab and see the list of configuration parameters for this secret. Below is an example JSON file for creating a queue in the local queue manager.


    "apiVersion": "v1",
    "kind": "Secret",
    "metadata": {
    "name": "ace-mqsc-secret",
    "namespace": "ace",
    "data": {
    "type": "Opaque"


    The parameter value should be base64 encoded. Here the value of ‘mqsc’ is “define ql(PAYMENT.CONTEXT.INFO)”, which has been base64 encoded.



    Specify the parameters depending on whether you are doing ACE only or ACE with MQ deployment. Uncheck ‘Persistent Storage’ and ‘Dynamic provisioning’ if doing ACE only deployment.


    Click on ‘Install’. It may take few minutes to install and configure the release.

    Go back to ace-dashboard and you should be able to see the newly configured integration server.

  4. Conclusion

    In this recipe we learnt how to provision an ACE IntegrationServer on IBM Cloud Pak for Integration.