Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"files": "^.secrets.baseline$",
"lines": null
},

"generated_at": "2025-10-22T13:19:14Z",
"plugins_used": [
{
Expand Down Expand Up @@ -1320,15 +1321,15 @@
"hashed_secret": "8b712744eee080d5fe6048e4f589235d00435559",
"is_secret": false,
"is_verified": false,
"line_number": 133,
"line_number": 134,
"type": "Secret Keyword",
"verified_result": null
},
{
"hashed_secret": "b11974a9da0d56698df935ab86e19b127804d6d4",
"is_secret": false,
"is_verified": false,
"line_number": 157,
"line_number": 158,
"type": "Secret Keyword",
"verified_result": null
}
Expand Down
11 changes: 6 additions & 5 deletions platform/azure/README-NGINX.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ Installing an NGINX Ingress controller allows you to access ODM components throu
1. Use the official YAML manifest:

```shell
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.1/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.13.3/deploy/static/provider/cloud/deploy.yaml
```

> [!NOTE]
> The version will probably change after the publication of our documentation so please refer to the actual [documentation](https://kubernetes.github.io/ingress-nginx/deploy/#azure)!
> The version will probably change after the publication of our documentation, so please refer to the actual [documentation](https://kubernetes.github.io/ingress-nginx/deploy/#azure).

2. Get the Ingress controller external IP address (it will appear 80 seconds or so after the resource application above):

Expand All @@ -43,7 +43,7 @@ Installing an NGINX Ingress controller allows you to access ODM components throu

## Install an ODM release with NGINX Ingress Controller

You can reuse the secret with TLS certificate created [above](README.md#manage-adigital-certificate-10-min):
You can reuse the secret with TLS certificate created at [Manage a digital certificate](README.md#manage-adigital-certificate-10-min).

You can now install the product.
- Get the [aks-nginx-values.yaml](./aks-nginx-values.yaml) file and replace the following keys:
Expand Down Expand Up @@ -113,7 +113,7 @@ Where:

This section explains how to track ODM usage with the IBM License Service.

Follow the **Installation** section of the [Manual installation without the Operator Lifecycle Manager (OLM)](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.
Follow the **Installation** section of the [Manual installation without the Operator Lifecycle Manager (OLM)](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.

### Patch the IBM Licensing instance with Nginx configuration

Expand Down Expand Up @@ -142,6 +142,7 @@ You will be able to access the IBM License Service by retrieving the URL with th
```bash
export LICENSING_URL=$(kubectl get ingress ibm-licensing-service-instance -n ibm-licensing -o jsonpath='{.status.loadBalancer.ingress[0].ip}')/ibm-licensing-service-instance
export TOKEN=$(kubectl get secret ibm-licensing-token -n ibm-licensing -o jsonpath='{.data.token}' |base64 -d)
echo http://${LICENSING_URL}/status?token=${TOKEN}
```

You can access the `http://${LICENSING_URL}/status?token=${TOKEN}` URL to view the licensing usage.
Expand All @@ -152,7 +153,7 @@ Otherwise, you can also retrieve the licensing report .zip file by running:
curl "http://${LICENSING_URL}/snapshot?token=${TOKEN}" --output report.zip
```

If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=service-troubleshooting-license).
If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=service-troubleshooting-license).

## Troubleshooting

Expand Down
26 changes: 13 additions & 13 deletions platform/azure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ az account list-locations -o table
Then, create a resource group by running the following command:

```shell
az group create --name <resourcegroup> --location <azurelocation> --tags Owner=<email> Team=<team> Usage=demo Usage_desc="Azure customers support" Delete_date=2025-12-31
az group create --name <resourcegroup> --location <azurelocation> --tags Owner=<email> Team=<team> Usage=demo Usage_desc="Azure customers support" Delete_date=2026-12-31
```

The following example output shows that the resource group has been created successfully:
Expand All @@ -90,7 +90,7 @@ The following example output shows that the resource group has been created succ
"provisioningState": "Succeeded"
},
"tags": {
"Delete_date": "2025-12-31",
"Delete_date": "2026-12-31",
"Owner": "<email>",
"Team": "<team>",
"Usage": "demo",
Expand All @@ -117,7 +117,7 @@ Make a note of the newly-created Resource Group that is displayed in the JSON ou

```shell
az group update --name <noderesourcegroup> \
--tags Owner=<email> Team=<team> Usage=demo Usage_desc="Azure customers support" Delete_date=2025-12-31
--tags Owner=<email> Team=<team> Usage=demo Usage_desc="Azure customers support" Delete_date=2026-12-31
```

### Set up your environment to this cluster
Expand All @@ -144,8 +144,8 @@ The following example output shows the single node created in the previous steps

```
NAME STATUS ROLES AGE VERSION
aks-nodepool1-27504729-vmss000000 Ready agent 21m v1.31.7
aks-nodepool1-27504729-vmss000001 Ready agent 21m v1.31.7
aks-nodepool1-27504729-vmss000000 Ready agent 21m v1.32.7
aks-nodepool1-27504729-vmss000001 Ready agent 21m v1.32.7
```

## Create the PostgreSQL Azure instance (10 min)
Expand Down Expand Up @@ -185,7 +185,7 @@ Result:
"availabilityZone": "2",
"backup": {
"backupRetentionDays": 7,
"earliestRestoreDate": "2025-04-29T09:37:34.208183+00:00",
"earliestRestoreDate": "2025-10-20T12:18:24.730053+00:00",
"geoRedundantBackup": "Disabled"
},
"cluster": null,
Expand Down Expand Up @@ -214,7 +214,7 @@ Result:
"startHour": 0,
"startMinute": 0
},
"minorVersion": "12",
"minorVersion": "14",
"name": "<postgresqlserver>",
"network": {
"delegatedSubnetResourceId": null,
Expand Down Expand Up @@ -248,7 +248,7 @@ Result:
"type": ""
},
"systemData": {
"createdAt": "2025-04-29T09:31:58.093917+00:00",
"createdAt": "2025-10-20T12:13:15.036215+00:00",
"createdBy": null,
"createdByType": null,
"lastModifiedAt": null,
Expand Down Expand Up @@ -298,7 +298,7 @@ kubectl create secret docker-registry ibm-entitlement-key \
--docker-server=cp.icr.io \
--docker-username=cp \
--docker-password="<API_KEY_GENERATED>" \
--docker-email=<USER_EMAIL> -n odm
--docker-email=<USER_EMAIL>
```
Where:

Expand All @@ -322,7 +322,7 @@ Check that you can access the ODM charts:
```shell
helm search repo ibm-odm-prod
NAME CHART VERSION APP VERSION DESCRIPTION
ibm-helm/ibm-odm-prod 25.0.0 9.5.0.0 IBM Operational Decision Manager License By in...
ibm-helm/ibm-odm-prod 25.1.0 9.5.0.1 IBM Operational Decision Manager License By in...
```

### Manage a digital certificate (10 min)
Expand Down Expand Up @@ -425,7 +425,7 @@ You can then open a browser on `https://xxx.xxx.xxx.xxx:9453` to access Decision

This section explains how to track ODM usage with the IBM License Service.

Follow the **Installation** section of the [Installation License Service without Operator Lifecycle Manager (OLM)](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.
Follow the **Installation** section of the [Installation License Service without Operator Lifecycle Manager (OLM)](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.

#### a. Expose the licensing service using the AKS LoadBalancer

Expand Down Expand Up @@ -469,15 +469,15 @@ export TOKEN=$(kubectl get secret ibm-licensing-token -n ibm-licensing -o jsonpa
```

> **Note**
> If `LICENSING_URL` is empty, take a look at the [troubleshooting](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=service-troubleshooting-license) page.
> If `LICENSING_URL` is empty, take a look at the [troubleshooting](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=service-troubleshooting-license) page.

You can access the `http://${LICENSING_URL}:8080/status?token=${TOKEN}` URL to view the licensing usage or retrieve the licensing report .zip file by running:

```shell
curl "http://${LICENSING_URL}:8080/snapshot?token=${TOKEN}" --output report.zip
```

If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=service-troubleshooting-license).
If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=service-troubleshooting-license).

## Troubleshooting

Expand Down
3 changes: 2 additions & 1 deletion platform/eks/README-NGINX.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ You will be able to access the IBM License Service by retrieving the URL with th
```bash
export LICENSING_URL=$(kubectl get ingress ibm-licensing-service-instance -n ibm-licensing -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')/ibm-licensing-service-instance
export TOKEN=$(kubectl get secret ibm-licensing-token -n ibm-licensing -o jsonpath='{.data.token}' |base64 -d)
echo http://${LICENSING_URL}/status?token=${TOKEN}
```

You can access the `http://${LICENSING_URL}/status?token=${TOKEN}` URL to view the licensing usage.
Expand All @@ -106,4 +107,4 @@ Otherwise, you can also retrieve the licensing report .zip file by running:
curl "http://${LICENSING_URL}/snapshot?token=${TOKEN}" --output report.zip
```

If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=service-troubleshooting-license).
If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=service-troubleshooting-license).
24 changes: 13 additions & 11 deletions platform/eks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,23 +55,24 @@ Where you provide your `AWS Access Key ID`, `AWS Secret Access Key` and the `Def
#### b. Create an EKS cluster (20 min)

```bash
eksctl create cluster <CLUSTER_NAME> --version 1.32 --alb-ingress-access
eksctl create cluster <CLUSTER_NAME> --version 1.33 --nodes 3 --alb-ingress-access
```

> **Note**
> The tutorial has been tested with the Kubernetes version 1.32. Check the supported kubernetes version in the [system requirement](https://www.ibm.com/support/pages/ibm-operational-decision-manager-detailed-system-requirements) page.
> The tutorial has been tested with the Kubernetes version 1.33. Check the supported kubernetes version in the [Detailed System Requirements](https://www.ibm.com/software/reports/compatibility/clarity/product.html?id=C88B83D2853E4A628442E38C1194FF8F) page.

> **Warning**
> If you prefer to use the NGINX Ingress Controller instead of the ALB Load Balancer to expose ODM services, don't use the --alb-ingress-access option during the creation of the cluster !
> If you prefer to use the NGINX Ingress Controller instead of the ALB Load Balancer to expose ODM services, don't use the --alb-ingress-access option during the creation of the cluster.

For more information, refer to [Creating an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html).
To see the options that you can specify when creating a cluster with `eksctl`, use the `eksctl create cluster --help` command. For more information, refer to [Creating an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html).

#### c. Set up your environment

If your environment is set up correctly, you should be able to get the cluster information by running the following command:

```bash
$ kubectl cluster-info
kubectl cluster-info

Kubernetes control plane is running at https://xxxxxxxx.<REGION>.eks.amazonaws.com
CoreDNS is running at https://xxxxxxxx.<REGION>.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Expand Down Expand Up @@ -142,7 +143,7 @@ kubectl create secret generic odm-db-secret \
To get access to the ODM material, you must have an IBM entitlement key to pull the images from the IBM Cloud Container registry.
This is what will be used in the next step of this tutorial.

You can also download the ODM on Kubernetes package (.tgz file) from Passport Advantage® (PPA), and then push the contained images to the EKS Container Registry (ECR). If you prefer to manage the ODM images this way, see the details [here](README-ECR.md)
You can also download the ODM CASE package from IBM Cloud Container Registry, and then push the contained images to the EKS Container Registry (ECR). If you prefer to manage the ODM images this way, see the details [here](README-ECR.md)

#### a. Retrieve your entitled registry key

Expand Down Expand Up @@ -177,7 +178,7 @@ helm repo update
```bash
$ helm search repo ibm-odm-prod
NAME CHART VERSION APP VERSION DESCRIPTION
ibm-helm/ibm-odm-prod 25.0.0 9.5.0.0 IBM Operational Decision Manager
ibm-helm/ibm-odm-prod 25.1.0 9.5.0.1 IBM Operational Decision Manager
```

### 4. Manage a  digital certificate (10 min)
Expand Down Expand Up @@ -298,30 +299,30 @@ The ODM services are accessible from the following URLs:

#### a. Install the IBM License Service

Follow the **Installation** section of the [Installation License Service without Operator Lifecycle Manager (OLM)](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.
Follow the **Installation** section of the [Installation License Service without Operator Lifecycle Manager (OLM)](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.

#### b. Patch the IBM Licensing instance

Get the [licensing-instance.yaml](./licensing-instance.yaml) file and run the command:

```bash
kubectl patch IBMLicensing instance --type merge --patch-file licensing-instance.yaml -n ibm-licensing
kubectl patch IBMLicensing instance --type merge --patch-file licensing-instance.yaml -n ibm-licensing
```

Wait a couple of minutes for the changes to be applied.

Run the following command to see the status of Ingress instance:

```bash
kubectl get ingress -n ibm-licensing
kubectl get ingress -n ibm-licensing
```

You should be able to see the address and other details about `ibm-licensing-service-instance`.
```
NAME CLASS HOSTS ADDRESS PORTS AGE
ibm-licensing-service-instance alb * k8s-ibmlicen-ibmlicen-xxxxxxxx-yyyyyyy.<aws-region>.elb.amazonaws.com 80 44m
```
You can find more information and use cases on [this page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.12.0?topic=configuring-kubernetes-ingress).
You can find more information and use cases on [this page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.14.0?topic=configuring-kubernetes-ingress).

> **Note**
> If you choose to use the NGINX Ingress Controller, you must use the [licensing-instance-nginx.yaml](./licensing-instance-nginx.yaml) file. Refer to [Track ODM usage with the IBM License Service with NGINX Ingress Controller](README-NGINX.md#track-odm-usage-with-the-ibm-license-service-with-nginx-ingress-controller).
Expand All @@ -333,6 +334,7 @@ The ALB address should be reflected in the Ingress configuration. You will be ab
```bash
export LICENSING_URL=$(kubectl get ingress ibm-licensing-service-instance -n ibm-licensing -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
export TOKEN=$(kubectl get secret ibm-licensing-token -n ibm-licensing -o jsonpath='{.data.token}' |base64 -d)
echo http://${LICENSING_URL}/status?token=${TOKEN}
```

> **Note**
Expand Down