Skip to content

Commit bdd43b6

Browse files
committed
Update doc per ODM 9.5 and IBM licensing 4.11.0
1 parent cbeed26 commit bdd43b6

File tree

2 files changed

+45
-38
lines changed

2 files changed

+45
-38
lines changed

.secrets.baseline

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2025-03-14T10:15:47Z",
6+
"generated_at": "2025-04-29T14:01:45Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -1116,31 +1116,31 @@
11161116
"hashed_secret": "07596f183f5e91b1778d5e47b2752b8d42aa763d",
11171117
"is_secret": false,
11181118
"is_verified": false,
1119-
"line_number": 174,
1119+
"line_number": 181,
11201120
"type": "Secret Keyword",
11211121
"verified_result": null
11221122
},
11231123
{
11241124
"hashed_secret": "3ea3f9802accf8817bacd6f3df46a73b93ccddec",
11251125
"is_secret": false,
11261126
"is_verified": false,
1127-
"line_number": 175,
1127+
"line_number": 182,
11281128
"type": "Secret Keyword",
11291129
"verified_result": null
11301130
},
11311131
{
11321132
"hashed_secret": "12d57965bd88277e9e9d69dc2b36aae2c0b7e316",
11331133
"is_secret": false,
11341134
"is_verified": false,
1135-
"line_number": 274,
1135+
"line_number": 281,
11361136
"type": "Secret Keyword",
11371137
"verified_result": null
11381138
},
11391139
{
11401140
"hashed_secret": "41b864c967d31ed0bf10562e22faa36324405048",
11411141
"is_secret": false,
11421142
"is_verified": false,
1143-
"line_number": 292,
1143+
"line_number": 299,
11441144
"type": "Secret Keyword",
11451145
"verified_result": null
11461146
}

platform/azure/README.md

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@ First, install the following software on your machine:
2929
Then, [create an Azure account and pay as you go](https://azure.microsoft.com/en-us/pricing/purchase-options/pay-as-you-go/).
3030

3131
> [!NOTE]
32-
> Prerequisites and software supported by ODM 9.0.0 are listed in [the Detailed System Requirements page](https://www.ibm.com/support/pages/ibm-operational-decision-manager-detailed-system-requirements).
32+
> Prerequisites and software supported by ODM 9.5.0 are listed in [the Detailed System Requirements page](https://www.ibm.com/support/pages/ibm-operational-decision-manager-detailed-system-requirements).
3333
3434
## Steps to deploy ODM on Kubernetes to Azure AKS
35-
3635
<!-- TOC depthfrom:2 depthto:2 -->
3736

3837
- [Included components](#included-components)
@@ -57,26 +56,26 @@ Source: https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough
5756

5857
After installing the Azure CLI, use the following command line:
5958

60-
```
59+
```shell
6160
az login [--tenant <name>.onmicrosoft.com]
6261
```
6362

6463
A web browser opens where you can connect with your Azure credentials.
6564

6665
### Create a resource group
6766

68-
An Azure resource group is a logical group in which Azure resources are deployed and managed. When you create a resource group, you are asked to specify a location. This location is where resource group metadata is stored. It is also where your resources run in Azure, if you do not specify another region during resource creation. Create a resource group by running the `az group create` command.
67+
An Azure resource group is a logical group in which Azure resources are deployed and managed. When you create a resource group, you will be prompted to specify a location. This location is where resource group metadata is stored. It is also where your resources run in Azure, if you do not specify another region during resource creation.
6968

7069
To get a list of available locations, run:
7170

7271
```shell
7372
az account list-locations -o table
7473
```
7574

76-
Then, create the resource group:
75+
Then, create a resource group by running the following command:
7776

7877
```shell
79-
az group create --name <resourcegroup> --location <azurelocation> [--tags Owner=<email> Team=DBA Usage=demo Usage_desc="Azure customers support" Delete_date=2023-12-31]
78+
az group create --name <resourcegroup> --location <azurelocation> --tags Owner=<email> Team=<team> Usage=demo Usage_desc="Azure customers support" Delete_date=2025-12-31
8079
```
8180

8281
The following example output shows that the resource group has been created successfully:
@@ -90,32 +89,40 @@ The following example output shows that the resource group has been created succ
9089
"properties": {
9190
"provisioningState": "Succeeded"
9291
},
93-
"tags": null
92+
"tags": {
93+
"Delete_date": "2025-12-31",
94+
"Owner": "<email>",
95+
"Team": "<team>",
96+
"Usage": "demo",
97+
"Usage_desc": "Azure customers support"
98+
},
99+
"type": "Microsoft.Resources/resourceGroups"
94100
}
95101
```
96102

97103
### Create an AKS cluster
98104

99-
Use the `az aks create` command to create an AKS cluster. The following example creates a cluster named <cluster> with two nodes. Azure Monitor for containers is also enabled using the `--enable-addons monitoring` parameter. The operation takes several minutes to complete.
100-
101-
> [!NOTE]
102-
> During the creation of the AKS cluster, a second resource group is automatically created to store the AKS resources. For more information, see [Why are two resource groups created with AKS](https://docs.microsoft.com/en-us/azure/aks/faq#why-are-two-resource-groups-created-with-aks).
105+
Use the `az aks create` command to create an AKS cluster. The following example creates a cluster named <cluster> with two nodes. Azure Monitor for containers can also be enabled by using the `--enable-addons monitoring` parameter. The operation takes several minutes to complete.
103106

104107
```shell
105108
az aks create --name <cluster> --resource-group <resourcegroup> --node-count 2 \
106109
--enable-cluster-autoscaler --min-count 2 --max-count 4 --generate-ssh-keys
107110
```
111+
> [!NOTE]
112+
> During the creation of the AKS cluster, a second resource group is automatically created to store the AKS resources. For more information, see [Why are two resource groups created with AKS](https://docs.microsoft.com/en-us/azure/aks/faq#why-are-two-resource-groups-created-with-aks).
108113
109-
After a few minutes, the command completes and returns JSON-formatted information about the cluster. Make a note of the newly-created Resource Group that is displayed in the JSON output (e.g. "nodeResourceGroup": "<noderesourcegroup>") if you have to tag it, for example:
114+
After a few minutes, the command completes and returns JSON-formatted information about the cluster.
115+
116+
Make a note of the newly-created Resource Group that is displayed in the JSON output (e.g. `"nodeResourceGroup": "<noderesourcegroup>"`). You can update the resource with additional tags. For example:
110117

111118
```shell
112119
az group update --name <noderesourcegroup> \
113-
--tags Owner=<email> Team=DBA Usage=demo Usage_desc="Azure customers support" Delete_date=2024-12-31
120+
--tags Owner=<email> Team=<team> Usage=demo Usage_desc="Azure customers support" Delete_date=2025-12-31
114121
```
115122

116123
### Set up your environment to this cluster
117124

118-
To manage a Kubernetes cluster, use `kubectl`, the Kubernetes command-line client. If you use Azure Cloud Shell, kubectl is already installed. To install kubectl locally, use the `az aks install-cli` command:
125+
To manage a Kubernetes cluster, you will need to use `kubectl`, the Kubernetes command-line client. If you use `Azure Cloud Shell`, kubectl is already installed. Otherwise, to use `kubectl` locally, run the the following command to install the client:
119126

120127
```shell
121128
az aks install-cli
@@ -137,8 +144,8 @@ The following example output shows the single node created in the previous steps
137144

138145
```
139146
NAME STATUS ROLES AGE VERSION
140-
aks-nodepool1-27504729-vmss000000 Ready agent 21m v1.29.9
141-
aks-nodepool1-27504729-vmss000001 Ready agent 21m v1.29.9
147+
aks-nodepool1-27504729-vmss000000 Ready agent 21m v1.31.7
148+
aks-nodepool1-27504729-vmss000001 Ready agent 21m v1.31.7
142149
```
143150

144151
## Create the PostgreSQL Azure instance (10 min)
@@ -178,7 +185,7 @@ Result:
178185
"availabilityZone": "2",
179186
"backup": {
180187
"backupRetentionDays": 7,
181-
"earliestRestoreDate": "2024-11-21T10:10:16.007641+00:00",
188+
"earliestRestoreDate": "2025-04-29T09:37:34.208183+00:00",
182189
"geoRedundantBackup": "Disabled"
183190
},
184191
"cluster": null,
@@ -207,7 +214,7 @@ Result:
207214
"startHour": 0,
208215
"startMinute": 0
209216
},
210-
"minorVersion": "8",
217+
"minorVersion": "12",
211218
"name": "<postgresqlserver>",
212219
"network": {
213220
"delegatedSubnetResourceId": null,
@@ -241,7 +248,7 @@ Result:
241248
"type": ""
242249
},
243250
"systemData": {
244-
"createdAt": "2024-11-21T10:05:19.405443+00:00",
251+
"createdAt": "2025-04-29T09:31:58.093917+00:00",
245252
"createdBy": null,
246253
"createdByType": null,
247254
"lastModifiedAt": null,
@@ -254,7 +261,7 @@ Result:
254261
}
255262
```
256263

257-
Make a note of the server name that is displayed in the JSON output (e.g. "fullyQualifiedDomainName": "<postgresqlserver>.postgres.database.azure.com") as it will be used later to deploy ODM with `helm install`.
264+
Make a note of the server name that is displayed in the JSON output (e.g. `"fullyQualifiedDomainName": "<postgresqlserver>.postgres.database.azure.com"`) as it will be used later to deploy ODM with `helm install`.
258265

259266
### Create a firewall rule that allows access from Azure services
260267

@@ -292,31 +299,31 @@ $ kubectl create secret docker-registry <registrysecret> --docker-server=cp.icr.
292299
--docker-password="<entitlementkey>" \
293300
--docker-email=<email>
294301
```
295-
296302
Where:
297303

298304
* \<registrysecret\> is the secret name
299305
* \<entitlementkey\> is the entitlement key from the previous step. Make sure you enclose the key in double-quotes.
300306
* \<email\> is the email address associated with your IBMid.
301307

302308
> [!NOTE]
303-
> 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.
309+
> 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.
310+
311+
Make a note of the secret name so that you can set it for the `image.pullSecrets` parameter when you run a helm install of your containers. The `image.repository` parameter should be set to `cp.icr.io/cp/cp4a/odm`.
304312

305-
Make a note of the secret name so that you can set it for the image.pullSecrets parameter when you run a helm install of your containers. The image.repository parameter will later be set to cp.icr.io/cp/cp4a/odm.
306313

307314
Add the public IBM Helm charts repository:
308315

309316
```shell
310-
helm repo add ibmcharts https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
317+
helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
311318
helm repo update
312319
```
313320

314321
Check that you can access the ODM charts:
315322

316323
```shell
317324
helm search repo ibm-odm-prod
318-
NAME CHART VERSION APP VERSION DESCRIPTION
319-
ibmcharts/ibm-odm-prod 24.1.0 9.0.0.1 IBM Operational Decision Manager License By in...
325+
NAME CHART VERSION APP VERSION DESCRIPTION
326+
ibm-helm/ibm-odm-prod 25.0.0 9.5.0.0 IBM Operational Decision Manager License By in...
320327
```
321328

322329
### Manage a digital certificate (10 min)
@@ -364,7 +371,7 @@ You can now install the product.
364371
- `<password>` is the password to login with the basic registry users like `odmAmin`
365372

366373
```shell
367-
helm install <release> ibmcharts/ibm-odm-prod --version 24.1.0 -f aks-values.yaml
374+
helm install <release> ibm-helm/ibm-odm-prod --version 25.0.0 -f aks-values.yaml
368375
```
369376

370377
Where:
@@ -406,7 +413,7 @@ You can then open a browser on `https://xxx.xxx.xxx.xxx:9453` to access Decision
406413

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

409-
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.9?topic=ils-installing-license-service-without-operator-lifecycle-manager-olm) documentation.
416+
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.11.0?topic=ilsfpcr-installing-license-service-without-operator-lifecycle-manager-olm) documentation.
410417

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

@@ -420,7 +427,7 @@ Wait a couple of minutes for the changes to be applied.
420427
Then, you should see an EXTERNAL-IP available for the exposed licensing service.
421428

422429
```shell
423-
oc get service -n ibm-licensing
430+
kubectl get service -n ibm-licensing
424431
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
425432
ibm-licensing-service-instance LoadBalancer 10.0.58.142 xxx.xxx.xxx.xxx 8080:32301/TCP 10m
426433
```
@@ -435,30 +442,30 @@ kubectl patch IBMLicensing instance --type merge --patch-file licensing-instance
435442

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

438-
You can find more information and use cases on [this page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.9?topic=configuration-configuring-kubernetes-ingress).
445+
You can find more information and use cases on [this page](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.11.0?topic=configuring-kubernetes-ingress).
439446

440447
> **Note**
441448
> 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).
442449
443450
### Retrieve license usage
444451

445-
You will be able to access the IBM License Service by retrieving the URL with this command:
452+
You will be able to access the IBM License Service by retrieving the URL and the required token with this command:
446453

447454
```bash
448455
export LICENSING_URL=$(kubectl get service ibm-licensing-service-instance -n ibm-licensing -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
449456
export TOKEN=$(kubectl get secret ibm-licensing-token -n ibm-licensing -o jsonpath='{.data.token}' |base64 -d)
450457
```
451458

452459
> **Note**
453-
> If `LICENSING_URL` is empty, take a look at the [troubleshooting](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.9?topic=service-troubleshooting-license) page.
460+
> If `LICENSING_URL` is empty, take a look at the [troubleshooting](https://www.ibm.com/docs/en/cloud-paks/foundational-services/4.11.0?topic=service-troubleshooting-license) page.
454461
455462
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:
456463

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

461-
If your IBM License Service instance is not running properly, refer to this [troubleshooting page](https://www.ibm.com/docs/en/cpfs?topic=software-troubleshooting).
468+
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.11.0?topic=service-troubleshooting-license).
462469

463470
## Troubleshooting
464471

0 commit comments

Comments
 (0)