This repo showcases how to run a custom IBM ACE (App Connect Enterprise) container with ITX on OCP. This documentation is designed to demonstrate how to lift & shift bar files for ACE flows running on-premises and seamlessly deploy them on OCP's Cloud Pak for Integration.
Baking ITX into the ACE container optimizes runtime performance for ACE flows that leverage ITX while also avoiding any need to modify the original flow to function on OCP.
This repo includes the following:
- A custom Docker file which combines IBM's supported ACE Container with ITX, its needed dependencies for ACE 12, and configuration for running User Exit
- A demo tutorial for running a basic ACE flow including a test ToUpperCase() ITX map on OCP
- Fully built out config maps for deploying ACE integration servers on CP4I without further customization required
- IBM ROKS (VPC Gen2 with ODF) v4.10 [3 nodes x 16CPU/64GB]
- IBM Cloud Pak for Integration 6.0.4 Operator w/ Platform UI 2022.2.1 instance
- IBM App Connect 5.1.0 Operator w/ Quickstart Dashboard instance
- IBM MQ 2.1.0 Operator
- IBM Sterling Transformation Extender Runtime and Monitoring V10.1.1 Linux x86 Multilingual (Part number
M0519ML
)
All operators and instances were deployed to the cp4i
namespace
All terminal commands below are to be executed from the root of the repo
Option 1: All terminal commands below, except for Testing, can be executed in the OpenShift Web Console by clicking on the "+" button located on the top right corner and pasting the contents of the below referenced yaml files
Option 2: To issue the commands below in your terminal, you will need to install the OpenShift CLI and procure the cluster login command in the OpenShift Web Console:
a. On the top right corner click on your username
b. Copy Login Command
c. Display Token
d. Log in with this token
If using this option make sure you have the proper credentials in place for github & ibm cloud pak image repository.
Create github-credentials secret
oc create secret generic github-credentials \ --from-literal=username=<user_name> \ --from-literal=password=<password> \ --type=kubernetes.io/basic-auth \ --namespace=cp4i
Create ibm-entitlement-key secret
oc create secret docker-registry ibm-entitlement-key \ --docker-username=cp \ --docker-password=<entitlement_key> \ --docker-server=cp.icr.io \ --namespace=cp4i
a. Create ImageStream resource to store built images
oc create -f yaml/ImageStream.yaml
b. Create BuildConfig resource to build image
Update ITX_URL in yaml/BuildConfig.yaml (make sure you get the bundle with the correct part number, see Environment section)
oc create -f yaml/BuildConfig.yaml
c. Build image
oc start-build ace-itx-ue
a. Download ITX 10.1 Runtime & Monitoring bundle & unpack to itx
directory
b. Open itx/wmqi/dtxwmqi.sh
file & replace %REPLACE_TXHOMEDIR%
with /opt/ibm/itx
c. Build image with Podman/Docker using Dockerfile
d. Upload image to a repository
a. Create a ConfigMap that contains the queue manager & queue parameters
oc create -f yaml/ConfigMap.yaml
b. Deploy Queue Manager instance
oc create -f yaml/QueueManager.yaml
a. Create PersistentVolumeClaim
to reserve storage
oc create -f yaml/PersistentVolumeClaim.yaml
b. Deploy Pod
to upload ITX map to PersistentVolume
oc create -f yaml/Pod.yaml
c. Copy ITX map to PersistentVolume
oc cp test-files/Test.lnx itx-map-pv-loader:/maps
The following steps are to be taken in the OpenShift Console GUI & CP4I GUI
a. Obtain Platform Navigator URL
Navigate to Operators -> Installed Operators -> IBM Cloud Pak for Integration -> Platform UI -> integration-quickstart
b. Obtain admin credentials
Navigate to Workloads -> Secrets -> ibm-iam-bindinfo-platform-auth-idp-credentials
c. Login to CP4I PlatformNavigator and open the App Connect Dashboard (should be named db-01-quickstart
)
d. On the left bar pane select Configuration
f. Select type server.conf.yaml
g. Import file from yaml directory
h. Change name to user-exit
& create
i. On the left bar pane select BAR files
j. Import External_ITX_Map.bar from test-files directory
k. Click on breadcrumbs, select Display BAR URL & copy URL
l. Update barURL in yaml/IntegrationServer.yaml (line 62)
m. Create IntegrationServer
oc create -f yaml/IntegrationServer.yaml
a. Log into terminal
In OCP, open Pod ace-itx-ue-is-...
and select Terminal
tab
b. Run test
Change directory to cd /home/aceuser/data/file_in
-> create test file echo "test map" > test.txt
-> change directory to cd /home/aceuser/data/file_out
-> confirm transformation is successful cat ITX_output.txt