This tutorial explains how to deploy an IBM® Operational Decision Manager (ODM) clustered topology on a Minikube Kubernetes cluster. This deployment implements Kubernetes and Docker technologies.
Minikube is a local Kubernetes that makes it easy to learn and develop for Kubernetes. You can use it to evaluate ODM.
The ODM on Kubernetes Docker images are available in the IBM Entitled Registry. The ODM Helm chart is available in the IBM Helm charts repository.
This tutorial was tested on macOS and Linux.
- Start Minikube
- Prepare your environment for the ODM installation
- Install an IBM Operational Decision Manager release
minikube start --cpus 6 --memory 8GB --kubernetes-version=v1.25.16
The kubectl context is automatically set to point to the created Minikube cluster.
Note
This installation guide has been tested with the Kubernetes version v1.25.0 onwards
$ kubectl cluster-info
Kubernetes control plane is running at https://<CLUSTER-IP>:8443
CoreDNS is running at https://<CLUSTER-IP>:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Note
You can access the Kubernetes Dashboard by running the minikube dashboard
command.
To get access to the ODM material, you need an IBM entitlement key to pull the images from the IBM Entitled registry.
-
Log in to MyIBM Container Software Library with the IBMid and password that are associated with the entitled software.
-
In the Container software library tile, verify your entitlement on the View library page, and then go to Get entitlement key to retrieve the key.
kubectl create secret docker-registry my-odm-docker-registry --docker-server=cp.icr.io \
--docker-username=cp --docker-password="<ENTITLEMENT_KEY>" --docker-email=<USER_EMAIL>
Where:
<ENTITLEMENT_KEY>
is the entitlement key from the previous step. Make sure you enclose the key in double-quotes.<USER_EMAIL>
is the email address associated with your IBMid.
Note
The cp.icr.io
value for the docker-server parameter is the only registry domain name that contains the images. You must set the docker-username to cp
to use an entitlement key as docker-password.
The my-odm-docker-registry secret name is set as the image.pullSecrets
parameter when you run a helm install of your containers. The image.repository
parameter is also set to cp.icr.io/cp/cp4a/odm
.
helm repo add ibmcharts https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
helm repo update
$ helm search repo ibm-odm-prod
NAME CHART VERSION APP VERSION DESCRIPTION
ibmcharts/ibm-odm-prod 24.1.0 9.0.0.1 IBM Operational Decision Manager
Get the minikube-values.yaml file and run the following command:
helm install my-odm-release ibmcharts/ibm-odm-prod --version 24.1.0 -f minikube-values.yaml
Run the following command to check the status of the pods that have been created:
kubectl get pods
NAME READY STATUS RESTARTS AGE
my-odm-release-dbserver-xxxxxxx 1/1 Running 0 16m
my-odm-release-odm-decisioncenter-xxxxxxx 1/1 Running 0 16m
my-odm-release-odm-decisionrunner-xxxxxxx 1/1 Running 0 16m
my-odm-release-odm-decisionserverconsole-xxxxxxx 1/1 Running 0 16m
my-odm-release-odm-decisionserverruntime-xxxxxxx 1/1 Running 0 16m
With this ODM topology in place, you can access web applications to author, deploy, and test your rule-based decision services. You can retrieve the URLs to access the ODM services with the following command:
$ minikube service list
NAMESPACE | NAME | TARGET PORT | URL |
---|---|---|---|
default | my-odm-release-dbserver | No node port | |
default | my-odm-release-odm-decisioncenter | decisioncenter/9453 | http://<CLUSTER-IP> :30108 |
default | my-odm-release-odm-decisionrunner | decisionrunner/9443 | http://<CLUSTER-IP> :32215 |
default | my-odm-release-odm-decisionserverconsole | decisionserverconsole/9443 | http://<CLUSTER-IP> :32040 |
default | my-odm-release-odm-decisionserverconsole-notif | No node port | |
default | my-odm-release-odm-decisionserverruntime | decisionserverruntime/9443 | http://<CLUSTER-IP> :32346 |
Warning
The URLs are prefixed with http. You must replace the prefix with https to access the services.
You can directly open the URL corresponding to a component in a new browser tab with the following command:
minikube service my-odm-release-odm-decisioncenter --https
You can access the ODM components with the username / password : odmAdmin/odmAdmin
If your ODM instances are not running properly, check the logs by running the following command:
kubectl logs <your-pod-name>
Get hands-on experience with IBM Operational Decision Manager in a container environment by following this Getting started tutorial.