← Back to Blog

IBM Event Automation One-Shot Deployment

This project provides an automated installation script for IBM Cloud Pak for Integration (CP4I) components on OpenShift. It’s designed for development and lab environments—do not use in production.

The script installs Event Streams, Event Processing, Event Endpoint Management, and optionally IBM MQ, AppConnect Enterprise, and API Connect.

Quick Start

Prerequisites

  • OpenShift cluster with cluster-admin access
  • oc CLI installed and logged in
  • IBM Entitlement key (Get it here)

Installation

# Install all Event Automation components (Event Streams, Event Processing, Event Endpoint Management)
./ibm_event_automation_oneshot_deployment.sh

# Install with additional components (MQ, ACE, APIC)
./ibm_event_automation_oneshot_deployment.sh --install-mq --install-ace --install-apic

# Custom namespace
./ibm_event_automation_oneshot_deployment.sh -n my-namespace

# With storage class
./ibm_event_automation_oneshot_deployment.sh -s ocs-storagecluster-cephfs

The script will:

  1. Install IBM Operator Catalog
  2. Install component operators (Event Streams, Event Processing, Event Endpoint Management, etc.)
  3. Create component instances
  4. Configure authentication credentials
  5. Display access URLs and credentials

Installation time: ~30–45 minutes

What Gets Installed

By Default

ComponentPurpose
Platform NavigatorUnified console for CP4I components
Event StreamsKafka cluster with 3 nodes
Event ProcessingStream processing authoring UI
Event Endpoint ManagementAPI catalog and gateway
Apache FlinkStream processing engine (required for Event Processing)

Optional (with flags)

  • IBM MQ — Message queue manager (--install-mq)
  • AppConnect Enterprise — Integration dashboard (--install-ace)
  • API Connect — API management platform (--install-apic)

Access Information

Platform Navigator

oc get route cp4i-navigator-pn -n tools -o jsonpath='{.spec.host}'
oc get secret integration-admin-initial-temporary-credentials -n ibm-common-services -o jsonpath='{.data.username}' | base64 -d && echo
oc get secret integration-admin-initial-temporary-credentials -n ibm-common-services -o jsonpath='{.data.password}' | base64 -d && echo

Event Streams

# Get UI URL
oc get route es-demo-ibm-es-ui -n tools -o jsonpath='{.spec.host}'

# Get SCRAM password for es-admin
oc get secret es-admin -n tools -o jsonpath='{.data.password}' | base64 -d && echo
# Username: es-admin

Event Processing

oc get route ep-demo-ibm-ep-rt -n tools -o jsonpath='{.spec.host}'
oc get secret ep-demo-ibm-ep-user-credentials -n tools -o jsonpath='{.data.user-credentials\.json}' | base64 -d | jq -r '.users[] | select(.username=="ep-admin") | .password'
# Username: ep-admin

Script Options

./ibm_event_automation_oneshot_deployment.sh [options]

Options:
  -n, --namespace NAME       Target namespace (default: tools)
  -e, --entitlement-key KEY  IBM Entitlement key
  -s, --storage-class NAME   StorageClass for persistent storage
  -v, --cp4i-version VER     CP4I version: CD or SC2 (default: CD)
      --no-eem              Do not install Event Endpoint Management
      --no-ep               Do not install Event Processing
      --no-es               Do not install Event Streams
      --no-flink            Do not install Flink
      --no-nav              Do not install Platform Navigator
      --install-mq          Install IBM MQ
      --install-ace         Install AppConnect Enterprise
      --install-apic        Install API Connect
  -h, --help                Show help

Troubleshooting

Check Installation Status

# Check component status
oc get eventstreams,eventprocessing,eventendpointmanagement,eventgateway,flinkdeployment -n tools

# Check pods
oc get pods -n tools

# Check operator subscriptions
oc get subscription -n openshift-operators | grep -E "eventstreams|eventprocessing|eventendpointmanagement"

Common Issues

  • Components not ready: Wait longer (30–45 min). Check pod logs: oc logs <pod-name> -n tools
  • Image pull errors: Verify entitlement key. Check: oc get secret ibm-entitlement-key -n tools
  • Storage issues: Specify a storage class for production: -s <storage-class-name>