IBM BAMOE · OpenShift · Helm
IBM BAMOE Dev and Runtime Environment Deployment on OpenShift Using Helm Charts
Learn how to deploy BAMOE Canvas, Management Console and MCP Server on OpenShift using official Helm charts for both DMOE and PAMOE editions.
Introduction
This blog walks through deploying the full IBM BAMOE stack on OpenShift using Helm — covering the Dev Environment (Canvas authoring IDE + Maven repository) and the Runtime Environment (Management Console + MCP Server), from chart pull to verified routes.
IBM Business Automation Manager Open Editions (BAMOE) is IBM's enterprise-grade, open-source-based platform for automating business decisions, rules, and workflows. It is built on the upstream Apache KIE community projects — Drools (rules engine), jBPM (workflow engine), and Kogito (cloud-native runtime) — and packages them with enterprise support, IBM licensing integration, and production-ready container images for OpenShift.
BAMOE ships in two distinct product editions, each targeting a different automation scope:
IBM Decision Manager Open Edition (DMOE)
DMOE is the decision and rules automation edition. It is the right choice when your primary need is executing business logic encoded as:
- DMN (Decision Model and Notation) — standards-based decision models for capturing and automating business decisions
- DRL (Drools Rule Language) — expert-system style rules for complex event processing and inferencing
DMOE provides the full authoring, testing, and runtime toolchain for these artefacts, without the process/workflow engine components. It is well suited for financial services, insurance, and regulatory compliance use cases where deterministic, auditable decision logic is central.
IBM Process Automation Manager Open Edition (PAMOE)
PAMOE is the full-stack automation edition. It is a superset of DMOE — it includes everything in DMOE and adds:
- BPMN 2.0 (Business Process Model and Notation) — graphical workflow modeling for human tasks, service orchestration, and long-running processes
- Process engine (jBPM-based runtime) — stateful, persistent workflow execution with built-in support for human tasks, timers, and sub-processes
- SLA and milestone tracking — business-level monitoring of process instance health
PAMOE is appropriate when your use case combines decision logic with orchestrated, multi-step workflows that involve human participants or external systems.
Edition Comparison
| Capability |
DMOE |
PAMOE |
| DMN decision models |
✓ |
✓ |
| DRL / rules |
✓ |
✓ |
| BPMN 2.0 workflows |
✗ |
✓ |
| Human tasks |
✗ |
✓ |
| Process instance monitoring |
✗ |
✓ |
Both editions share the same Helm chart structure, the same container registry on quay.io/bamoe, and the same IBM License Service integration. The only difference is the edition-specific Helm chart name and the product ID embedded in the license annotations.
A complete BAMOE deployment on OpenShift consists of two independent Helm charts that together cover the full lifecycle of a Business Service — from authoring to production monitoring:
| Chart |
Purpose |
| Dev Environment |
Authoring IDE (BAMOE Canvas), supporting backend services, and Maven repository |
| Runtime Environment |
Management Console for monitoring live Business Services, and the MCP Server for AI agent integration |
Both charts automatically inject IBM License Service annotations into every container, ensuring complete license tracking without any manual configuration.
This post walks through installing both environments on OpenShift — from pulling the charts to verifying your routes — based directly on the official IBM BAMOE documentation.
Prerequisites
| # |
Requirement |
Detail |
| 1 |
OpenShift 4.12+ |
Cluster-admin or project-admin privileges in the target namespace. Verify with oc whoami and oc version. For local evaluation, OpenShift Local (CRC) works well — allocate ≥ 6 vCPU / 14 GiB. |
| 2 |
oc CLI |
Must match your cluster version. Install via brew install openshift-cli (macOS) or download from the OpenShift mirror. |
| 3 |
Helm v3.8+ |
OCI registry support (helm pull oci://…) requires v3.8 or later. Install via brew install helm or the official script. Verify with helm version. |
| 4 |
quay.io access |
Cluster nodes must be able to pull from quay.io/bamoe. |
| 5 |
bamoe namespace |
Create the target namespace before running any helm install command: oc new-project bamoe (or oc project bamoe if it already exists). All Helm releases in this post are deployed into this namespace. |
| 6 |
IBM License Service |
Install the IBM Licensing Operator from OperatorHub into the ibm-licensing namespace before deploying BAMOE. The charts inject license annotations automatically, but the operator must be present to collect them. |
Before You Begin
Step 1 — Choose Your Edition
| Edition |
Dev Chart Name |
Runtime Chart Name |
| IBM Process Automation Manager Open Edition |
pamoe-<version>-dev-environment-helm-chart |
pamoe-<version>-runtime-environment-helm-chart |
| IBM Decision Manager Open Edition |
dmoe-<version>-dev-environment-helm-chart |
dmoe-<version>-runtime-environment-helm-chart |
Pick the set that matches your licensed product. All commands in this post use the dmoe-* charts as the example. Replace with pamoe-* if you are on PAMOE.
Step 2 — Get the OpenShift Route Domain
Both charts expose services via OpenShift Routes and require your cluster's wildcard domain. Capture it once and reuse it for both installs:
YOUR_OCP_ROUTE_DOMAIN=$(oc get ingresses.config cluster --output jsonpath={.spec.domain})
echo $YOUR_OCP_ROUTE_DOMAIN
# Example output: apps.cluster-abc.example.com
Capturing the OpenShift wildcard route domain
Part 1 — Dev Environment
What the Dev Environment Helm Chart Installs
The Dev Environment Helm chart is a parent chart that bundles four sub-charts. All four receive License Service annotations automatically through the global configuration of the parent chart, ensuring complete license tracking coverage.
| Sub-chart |
Purpose |
Container Image |
canvas |
BAMOE Canvas — browser-based BPMN/DMN authoring IDE |
quay.io/bamoe/canvas:<version>-ibm-<build> |
cors_proxy |
Enables Canvas to communicate directly from the browser with Git and Cloud providers |
quay.io/bamoe/cors-proxy:<version>-ibm-<build> |
extended_services |
DMN Runner and BPMN/DMN model static validation |
quay.io/bamoe/extended-services:<version>-ibm-<build> |
maven_repository |
Maven artifact repository for building Business Services |
quay.io/bamoe/maven-repository:<version>-ibm-<build> |
The chart is architecture-agnostic and supports both:
linux/s390x — IBM Z platform
linux/x86_64 — all other BAMOE-supported platforms
Note: You can install sub-charts individually, but you will need to manage licensing and other configuration manually. Using the parent chart is strongly recommended.
Step 3 — Pull and Install the Dev Environment Helm Chart
Pull the chart from the OCI registry on Quay.io and extract it locally:
helm pull oci://quay.io/bamoe/dmoe-dev-environment-helm-chart --version=<version>-ibm-<NNNN> --untar
Pulling the Dev Environment Helm chart from quay.io
Install it on OpenShift using the bundled OpenShift-specific values file:
helm install my-bamoe-dev-env ./dmoe-dev-environment-helm-chart \
--values ./dmoe-dev-environment-helm-chart/values-openshift.yaml \
--set global.openshiftRouteDomain="$YOUR_OCP_ROUTE_DOMAIN"
Deploying the Dev Environment Helm chart on OpenShift
This single command:
- Deploys BAMOE Canvas, CORS Proxy, Extended Services, and Maven Repository
- Injects the correct product ID, product name, and metric licensing annotations into every container
- Creates OpenShift Routes for each service under your cluster's wildcard domain
Step 4 — Verify the Dev Environment Installation
Check pod status
oc get pods -w
Dev Environment pods in Running state
Wait until all pods reach Running status.
Retrieve the exposed routes
oc get route $APP_NAME_BAMOE_CANVAS --output jsonpath={.spec.host}
Where $APP_NAME_BAMOE_CANVAS is one of the following default names (unless you overrode them in your values):
| Service |
Default APP_NAME |
| BAMOE Canvas |
bamoe-canvas |
| Extended Services |
bamoe-extended-services |
| CORS Proxy |
bamoe-cors-proxy |
oc get route bamoe-canvas --output jsonpath={.spec.host}
# Example output: bamoe-canvas.apps.cluster-abc.example.com
BAMOE Canvas exposed route on OpenShift
Open the Canvas URL in your browser to access the authoring interface.
BAMOE Canvas — browser-based BPMN/DMN authoring interface
Note on self-signed certificates (CRC/local OCP): All services are served over https. If deploying to a local OpenShift instance (e.g., CRC), the services will use self-signed certificates that trigger browser warnings. Access each URL individually and accept the certificate in your browser.
Step 5 — Set Up the Maven Repository
The BAMOE Maven repository is deployed and enabled by default as part of the Dev Environment Helm chart. After installation it is accessible at https://maven-repository.$YOUR_OCP_ROUTE_DOMAIN.
To point your local Maven build at this repository, add the following profile to your ~/.m2/settings.xml:
<profile>
<id>ibm-bamoe-enterprise-maven-repository</id>
<repositories>
<repository>
<id>ibm-bamoe-enterprise-maven-repository</id>
<url>https://maven-repository.YOUR_OCP_ROUTE_DOMAIN</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>ibm-bamoe-enterprise-maven-repository</id>
<url>https://maven-repository.YOUR_OCP_ROUTE_DOMAIN/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
Then activate the profile:
<activeProfiles>
<activeProfile>ibm-bamoe-enterprise-maven-repository</activeProfile>
</activeProfiles>
Note: If ~/.m2/settings.xml does not exist, copy it from $MAVEN_HOME/.m2/conf/settings.xml first.
To disable the Maven repository installation entirely:
helm install my-bamoe-dev-env ./dmoe-dev-environment-helm-chart \
--set maven_repository.enabled=false
Uninstalling the Dev Environment
helm uninstall my-bamoe-dev-env
Part 2 — Runtime Environment
What the Runtime Environment Helm Chart Installs
The Runtime Environment Helm chart is a parent chart that bundles two sub-charts. Like the Dev Environment chart, all sub-charts receive License Service annotations automatically through the global configuration of the parent chart.
| Sub-chart |
Purpose |
Container Image |
management_console |
BAMOE Management Console — monitors and manages deployed Business Services and process instances |
quay.io/bamoe/management-console:<version>-ibm-<build> |
mcp_server |
BAMOE MCP Server — Model Context Protocol server enabling AI agents to invoke Business Services |
quay.io/bamoe/mcp-server:<version>-ibm-<build> |
The chart is architecture-agnostic and supports both:
linux/s390x — IBM Z platform
linux/x86_64 — all other BAMOE-supported platforms
Note: Sub-charts can be installed individually, but you will need to manage licensing and other configuration manually. The parent chart is strongly recommended.
Step 3 — Pull and Install the Runtime Helm Chart
Pull the chart from the OCI registry on Quay.io and extract it locally:
helm pull oci://quay.io/bamoe/dmoe-runtime-environment-helm-chart --version=<version>-ibm-<NNNN> --untar
Pulling the Runtime Environment Helm chart from quay.io
Install it on OpenShift using the bundled OpenShift-specific values file:
helm install my-bamoe-runtime-environment ./dmoe-runtime-environment-helm-chart \
--values ./dmoe-runtime-environment-helm-chart/values-openshift.yaml \
--set global.openshiftRouteDomain="$YOUR_OCP_ROUTE_DOMAIN"
You can customise the installation name by replacing my-bamoe-runtime-environment with your preferred name.
Deploying the Runtime Environment Helm chart on OpenShift
Step 4 — Verify the Runtime Environment Installation
# Watch pod status
oc get pods -w
# Get exposed routes
oc get routes
Runtime Environment pods in Running state
Runtime Environment routes exposed on OpenShift
Once all pods reach Running status, the Management Console is accessible via its OpenShift Route.
BAMOE Management Console — ready to connect to a Business Service
MCP Server
The BAMOE MCP Server is deployed and enabled by default as part of the Runtime Environment Helm chart. It provides a Model Context Protocol (MCP) server that enables AI agents to discover and invoke your deployed Business Services.
To disable the MCP Server installation:
helm install my-bamoe-runtime-environment ./dmoe-runtime-environment-helm-chart \
--set mcp_server.enabled=false
Uninstalling the Runtime Environment
helm uninstall my-bamoe-runtime-environment
Summary
Everything covered in this blog at a glance:
📦
Editions
Chose between DMOE (decisions + rules) and PAMOE (decisions + workflows) and selected the matching Helm charts.
🛠️
Prerequisites
Set up OpenShift 4.12+, oc CLI, Helm v3.8+, quay.io access, bamoe namespace, and IBM License Service.
🌐
Route Domain
Captured the OpenShift wildcard route domain once and reused it across both Helm installs.
✏️
Dev Environment
Deployed BAMOE Canvas, CORS Proxy, Extended Services, and Maven Repository via the Dev Environment Helm chart.
⚙️
Runtime Environment
Deployed the Management Console and MCP Server via the Runtime Environment Helm chart.
✅
Verification
Confirmed all pods reached Running status and accessed Canvas and the Management Console via their OpenShift Routes.
Source: IBM BAMOE Documentation — Dev Environment | Runtime Environment