diff --git a/.secrets.baseline b/.secrets.baseline index 2a2be9a2..74b1a936 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,6 +3,7 @@ "files": "^.secrets.baseline$", "lines": null }, + "generated_at": "2025-10-22T13:19:14Z", "plugins_used": [ { @@ -1320,7 +1321,7 @@ "hashed_secret": "8b712744eee080d5fe6048e4f589235d00435559", "is_secret": false, "is_verified": false, - "line_number": 133, + "line_number": 134, "type": "Secret Keyword", "verified_result": null }, @@ -1328,7 +1329,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/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 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-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 f1ece679..b87f6caa 100644 --- a/platform/eks/README.md +++ b/platform/eks/README.md @@ -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 --version 1.32 --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.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..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**