From 347796cf7f2a29a01f21e9fcb49047a1a729af73 Mon Sep 17 00:00:00 2001 From: siasin Date: Mon, 20 Oct 2025 17:50:38 +0200 Subject: [PATCH 1/4] Updated Azure with LB article per ODM9.5.0.1 and ILS 4.2.18 --- platform/azure/README.md | 26 +++++++++++++------------- platform/eks/README.md | 20 ++++++++++---------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/platform/azure/README.md b/platform/azure/README.md index fcdb0d61..694dd3bf 100644 --- a/platform/azure/README.md +++ b/platform/azure/README.md @@ -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 --location --tags Owner= Team= Usage=demo Usage_desc="Azure customers support" Delete_date=2025-12-31 +az group create --name --location --tags Owner= 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: @@ -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": "", "Team": "", "Usage": "demo", @@ -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 \ - --tags Owner= Team= Usage=demo Usage_desc="Azure customers support" Delete_date=2025-12-31 + --tags Owner= Team= Usage=demo Usage_desc="Azure customers support" Delete_date=2026-12-31 ```         ### Set up your environment to this cluster @@ -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) @@ -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, @@ -214,7 +214,7 @@ Result: "startHour": 0, "startMinute": 0 }, - "minorVersion": "12", + "minorVersion": "14", "name": "", "network": { "delegatedSubnetResourceId": null, @@ -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, @@ -298,7 +298,7 @@ kubectl create secret docker-registry ibm-entitlement-key \ --docker-server=cp.icr.io \ --docker-username=cp \ --docker-password="" \ - --docker-email= -n odm + --docker-email= ``` Where: @@ -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) @@ -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 @@ -469,7 +469,7 @@ 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: @@ -477,7 +477,7 @@ You can access the `http://${LICENSING_URL}:8080/status?token=${TOKEN}` URL to v 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 diff --git a/platform/eks/README.md b/platform/eks/README.md index f1ece679..318698c1 100644 --- a/platform/eks/README.md +++ b/platform/eks/README.md @@ -27,15 +27,15 @@ First, install the following software on your machine: Then, create an [AWS Account](https://aws.amazon.com/getting-started/). ## Steps to deploy ODM on Kubernetes from Amazon EKS - + -- [1. Prepare your environment (20 min)](#1-prepare-your-environment-20-min) -- [2. Create an RDS database (10 min)](#2-create-an-rds-database-10-min) -- [3. Prepare your environment for the ODM installation (5 min)](#3-prepare-your-environment-for-the-odm-installation-5-min) -- [4. Manage a  digital certificate (10 min)](#4-manage-a-digital-certificate-10-min) -- [5. Install an IBM Operational Decision Manager release (10 min)](#5-install-an-ibm-operational-decision-manager-release-10-min) -- [6. Access the ODM services](#6-access-the-odm-services) -- [7. Track ODM usage with the IBM License Service](#7-track-odm-usage-with-the-ibm-license-service) +- Prepare your environment (20 min) +- Create an RDS database (10 min) +- Prepare your environment for the ODM installation (5 min) +- Manage a  digital certificate (10 min) +- Install an IBM Operational Decision Manager release (10 min) +- Access the ODM services +- Track ODM usage with the IBM License Service @@ -55,11 +55,11 @@ 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 --version 1.32 --alb-ingress-access +eksctl create cluster --version 1.33 --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 ! From cc118e3e0bd3f26d462165fae6cb0126322009a4 Mon Sep 17 00:00:00 2001 From: siasin Date: Tue, 21 Oct 2025 11:41:16 +0200 Subject: [PATCH 2/4] Review AKS-NGINX article wrt odm 9.5.0.1& ILS 4.2.18 --- platform/azure/README-NGINX.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/platform/azure/README-NGINX.md b/platform/azure/README-NGINX.md index deb9002f..4b59f76a 100644 --- a/platform/azure/README-NGINX.md +++ b/platform/azure/README-NGINX.md @@ -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): @@ -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: @@ -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 @@ -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. @@ -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 From 8b631d0795fdc256367402bb816660e503784900 Mon Sep 17 00:00:00 2001 From: siasin Date: Tue, 21 Oct 2025 15:44:58 +0200 Subject: [PATCH 3/4] Review EKS ALB article wrt ODM9.5.0.1 & ILS 4.2.18 --- .secrets.baseline | 6 +++--- platform/eks/README.md | 32 +++++++++++++++++--------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/.secrets.baseline b/.secrets.baseline index 94045a09..64ef2505 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,7 +3,7 @@ "files": "^.secrets.baseline$", "lines": null }, - "generated_at": "2025-10-16T09:30:19Z", + "generated_at": "2025-10-21T13:44:47Z", "plugins_used": [ { "name": "AWSKeyDetector" @@ -1280,7 +1280,7 @@ "hashed_secret": "8b712744eee080d5fe6048e4f589235d00435559", "is_secret": false, "is_verified": false, - "line_number": 133, + "line_number": 134, "type": "Secret Keyword", "verified_result": null }, @@ -1288,7 +1288,7 @@ "hashed_secret": "b11974a9da0d56698df935ab86e19b127804d6d4", "is_secret": false, "is_verified": false, - "line_number": 157, + "line_number": 158, "type": "Secret Keyword", "verified_result": null } diff --git a/platform/eks/README.md b/platform/eks/README.md index 318698c1..b14ae1a4 100644 --- a/platform/eks/README.md +++ b/platform/eks/README.md @@ -27,15 +27,15 @@ First, install the following software on your machine: Then, create an [AWS Account](https://aws.amazon.com/getting-started/). ## Steps to deploy ODM on Kubernetes from Amazon EKS - + -- Prepare your environment (20 min) -- Create an RDS database (10 min) -- Prepare your environment for the ODM installation (5 min) -- Manage a  digital certificate (10 min) -- Install an IBM Operational Decision Manager release (10 min) -- Access the ODM services -- Track ODM usage with the IBM License Service +- [1. Prepare your environment (20 min)](#1-prepare-your-environment-20-min) +- [2. Create an RDS database (10 min)](#2-create-an-rds-database-10-min) +- [3. Prepare your environment for the ODM installation (5 min)](#3-prepare-your-environment-for-the-odm-installation-5-min) +- [4. Manage a  digital certificate (10 min)](#4-manage-a-digital-certificate-10-min) +- [5. Install an IBM Operational Decision Manager release (10 min)](#5-install-an-ibm-operational-decision-manager-release-10-min) +- [6. Access the ODM services](#6-access-the-odm-services) +- [7. Track ODM usage with the IBM License Service](#7-track-odm-usage-with-the-ibm-license-service) @@ -71,7 +71,8 @@ For more information, refer to [Creating an Amazon EKS cluster](https://docs.aws 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..eks.amazonaws.com CoreDNS is running at https://xxxxxxxx..eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy @@ -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 @@ -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) @@ -298,14 +299,14 @@ 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. @@ -313,7 +314,7 @@ 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`. @@ -321,7 +322,7 @@ You should be able to see the address and other details about `ibm-licensing-ser NAME CLASS HOSTS ADDRESS PORTS AGE ibm-licensing-service-instance alb * k8s-ibmlicen-ibmlicen-xxxxxxxx-yyyyyyy..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). @@ -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** From 8ce0f0929e02815dbb9739e2c039c6955eb26728 Mon Sep 17 00:00:00 2001 From: siasin Date: Thu, 23 Oct 2025 11:22:43 +0200 Subject: [PATCH 4/4] Reviewed EKS with nginx and increased cluster node to 3 --- platform/eks/README-NGINX.md | 3 ++- platform/eks/README.md | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/platform/eks/README-NGINX.md b/platform/eks/README-NGINX.md index 664d1574..2f621c7e 100644 --- a/platform/eks/README-NGINX.md +++ b/platform/eks/README-NGINX.md @@ -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. @@ -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). diff --git a/platform/eks/README.md b/platform/eks/README.md index b14ae1a4..b87f6caa 100644 --- a/platform/eks/README.md +++ b/platform/eks/README.md @@ -55,16 +55,16 @@ 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 --version 1.33 --alb-ingress-access +eksctl create cluster --version 1.33 --nodes 3 --alb-ingress-access ``` > **Note** > 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