IBM Support

Embedded EDB PostgreSQL database license key expires on October 1st, 2024 used for IBM Cloud Pak operators

General Page

This article discusses the effects of the embedded Postgres license key expiration on various cloud pak environments (Products) and offers guidance on remediation steps. The existing Embedded PostgreSQL license key is scheduled to expire on October 1st, 2024. After the expiration, the Embedded PostgreSQL operator will cease monitoring the Embedded Postgres cluster instances(Pods), which may result in downtime for the Embedded PostgreSQL cluster during Pod evictions or worker node reboots, potentially causing overall system downtime.
This article discusses the effects of the embedded Postgres license key expiration on various environments (products) and offers guidance on remediation steps. The existing embedded Postgres license key is scheduled to expire on October 1st, 2024. After the expiration, the embedded Postgres operator will cease monitoring the embedded Postgres operand pods. This may result in downtime for the embedded PostgreSQL database during pod evictions or worker node reboots, potentially causing overall system downtime.

Impact of embedded Postgres license expiry

License expiry date: October 1st, 2024, at 00:00:00 (midnight) in UTC.

All IBM Cloud Pak operators released before June 2024 that use the Embedded EDB PostgreSQL cluster as a database are affected.  

After the license expiration, the PostgreSQL cluster instances (pods) and the data will remain available, but the operator will cease any reconciliation attempt on the PostgreSQL cluster with an expired license key, effectively stopping the management of its status. This includes self-healing and high availability capabilities, such as automated failover and primary instance switchovers.  

Symptoms include:

  • For existing PostgreSQL clusters, failure to switch over the primary instance to the standby instance during node network issues, reboots, and openshift upgrades results in downtime for the cloud Pak operator. 
  • You will not be able to deploy new Cloud Pak operators that require the Embedded PostgreSQL database since the required PostgreSQL cluster will not get created.

Cloud Pak operators affected.

The Cloud Pak operators deployed using the IBM Foundational services operator (CPFS)version 3.19.21, version 3.23.13, or version 4.6.1 or below will have the license key expiring on October 1st, 2024 

Following cloud Pak products and operators using the embedded EDB PostgreSQL database are affected by the embedded Postgres license expiry:

Cloud Pak operators table
Cloud Pak Operators affected The version includes the updated license Key and CPFS version
IBM Cloud Pak for Business Automation (CP4BA)
Zen(CPFS 4.0+), Workflow Process Service, and Starter deployments
(Business Teams Service(BTS) not affected)
CP4BA 24.0.0 /CPFS 4.6.2 
IBM Cloud Pak for Data (CP4D) Zen(CPFS 4.0), Watson Speech, Watson Assistant, Watson Discovery, Spark, Analytic Engine CP4D 5.0.x /CPFS 4.7.0
IBM Cloud Pak for Integration (CP4I)
CP4I 2023.4.1 ,  Keycloak,
CP4Int 16.1.0 /CPFS 4.6.3
IBM Cloud Pak for Watson AIOps (CP4AIOps) Zen(CPFS 4.0+), spark. watsonAIops CP4AIOps 4.6.0/CPFS 4.6.3
IBM APIConnect  IBM APIConnect (v10.0.7)  IBM APIConnect v10.0.8 and above

You can review the "licenseExpiration" in the  PostgreSQL cluster description for the existing license key expiration date. The following command will display the namespace,   PostgreSQL cluster, and the current expiration date for all the PostgreSQL clusters on your cloud pak environment. 

oc get cluster.postgresql -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.status.licenseStatus.licenseExpiration}{"\t"}{.status.licenseStatus.licenseStatus}{"\n"}{end}'
Example output: 
 
cp4i          keycloak-edb-cluster   2024-10-01T00:00:00Z Valid license (IBM - Data & Analytics (Cloud))
cpd-instance  zen-metastore-edb      2024-10-01T00:00:00Z Valid license (IBM - Data & Analytics (Cloud))
cpd-instance2 zen-metastore-edb      2024-10-01T00:00:00Z Valid license (IBM - Data & Analytics (Cloud))


Resolution:

Updating the license key automatically by upgrading CPFS operator: 

 EDB postgreSQL versions older than 1.18.x  have been End of Life and no longer supported by EDB.  You can no longer use the documented workaround to update the license Key .  You should upgrade the EDB version to 1.18.x or above and upgrade the  IBM Foundational Services to version 3.19.22, version 3.23.14, or version 4.6.2 as appropriate for the cloud Pak. 

The IBM Foundational Services operator (CPFS) version 3.19.22, version 3.23.14, or version 4.6.2, or above will install a later version of the EDB PostgreSQL operator and update the license key expiration date 2999-12-31 .  

If you have questions about specific Cloud Pak versions related to compatibility or upgrade steps, review the respective Cloud Pak documentation and open a case if you need clarification. 

Manually updating the license key: 

If you are not ready to upgrade the Cloud Pak version for various reasons, you can manually update the PostgreSQL cluster license using the following procedure.  

NOTE:  Manually updating without updating the CPFS will cause  EDB postgreSQL upgrrade issues,  when you upgrade in the future remember to delete the job and restart the ODLM pod .  For more details refer to the KI DT453151 

Please note that the manual step only applies to embedded EDB PostgreSQL versions 1.18.x or above, which are installed using the CPFS operator.  

1-- Find the namespace where the create-postgres-license-config job is located:
oc get job -A | egrep "NAME|create-postgres-license-config" 
Example output :
NAMESPACE     NAME                            COMPLETIONS  DURATION  AGE
cp4i          create-postgres-license-config  1/1          17s       218d
cpd-operator  create-postgres-license-config  1/1          17s       218d

You will find the job under the same namespace where the postgresql-operator-controller-manager-xxx pod is deployed and manage multiple postgreSQL clusters. This operator can manage multiple  
Depending on the cloud pak operators and operand deployment patterns on the OCP cluster, you may find the postgresql-operator-controller-manager under multiple namespace
2-- For each namesapce found in the previous step output,  use the following script to patch the job:  
namesapce=<NAMESPACE1> 
 
​​​​oc get job create-postgres-license-config -n $namespace -o yaml | \
sed -e 's/operator.ibm.com\/opreq-control: "true"/operator.ibm.com\/opreq-control: "false"/' \
    -e 's|\(image: \).*|\1"cp.icr.io/cp/cpd/edb-postgres-license-provider@sha256:c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce"|' \
    -e '/controller-uid:/d' | \
oc replace --force -f - && \
oc wait --for=condition=complete job/create-postgres-license-config -n $namespace

3-- Verify that the embedded Postgres cluster correctly reflects the status of the license expiry. Run the following command:

oc get cluster.postgresql -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.status.licenseStatus.licenseExpiration}{"\t"}{.status.licenseStatus.licenseStatus}{"\n"}{end}'
Depending on the cloud pak and instance deployment the postgresql-operator-controller-manager can manage clusters on multiple namespaces. You will see the  license key for the PostgreSQL clusters has been updated to  2999-12-31T00:00:00Z managed by the operator on a specific namespace  
4--  Repeat the steps-2 and step-3  for each namespace where the create-postgres-license-config job is located found in step 1:
Example of the output after patching all the postgresql clusters:

cp4i          keycloak-edb-cluster   2999-12-31T00:00:00Z Valid license (IBM - Data & Analytics (Cloud))
cpd-instance  zen-metastore-edb      2999-12-31T00:00:00Z Valid license (IBM - Data & Analytics (Cloud))
cpd-instance2 zen-metastore-edb      2999-12-31T00:00:00Z Valid license (IBM - Data & Analytics (Cloud))

Offline (Airgap) environment: 
For Cloud Pak installation behind the firewall with no direct access to the internet, if you are unable to upgrade to a Cloud Pak product that includes the updated license key, 
1--  use your internal procedure to copy the new edb-postgres-license -provider image from the IBM catalog Registry to your local image registry used during the cloud pak installation.
cp.icr.io/cp/cpd/edb-postgres-license-provider@sha256:c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce 
For Example, your private registry($PRIVATE_REGISTRY_LOCATION). The process involves using the podman pull command to download the license key image while providing your IBM entitlement key. Refer to https://myibm.ibm.com/products-services/containerlibrary.
podman login cp.icr.io -u cp -p '<entitlement-key>'
podman pull cp.icr.io/cp/cpd/edb-postgres-license-provider@sha256:c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce
podman tag cp.icr.io/cp/cpd/edb-postgres-license-provider cp.icr.io/cp/cpd/edb-postgres-license-provider:1600
podman push cp.icr.io/cp/cpd/edb-postgres-license-provider:1600 ${PRIVATE_REGISTRY_LOCATION}/cp/cpd/edb-postgres-license-provider:1600

podman push will change the original image digest(sha256:c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce) for edb-postgres-license-provider,  using skopo inspect to get the current digest:

#skopeo inspect docker://${PRIVATE_REGISTRY_LOCATION}/cp/cpd/edb-postgres-license-provider:1600 --tls-verify=false
{
  "Name": "test:5000/cp/cpd/edb-postgres-license-provider",
  "Digest": "sha256:5ea15c640c66100179c9f33161aa8af774075ba33a8463a837d75f4937f5bbb4",
  "RepoTags": [
    "1600"
  ],
  "Created": "2024-05-07T10:25:34.699036409Z",
  .......
}
2-- Depending on your OCP cluster strategy to access the local registry,  either update the script in step-2 and replace the image location with your local registry hostname where you have copied the new image.
Example : 
$PRIVATE_REGISTRY_LOCATION:port/cp/cpd/edb-postgres-license-provider@sha256:c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce 
Review the  'imageContentSourcePolicy' and update appropriately if you are redirected the icr.io to a local image registry  
3-- Follow the same manual update procedure described above to update all the EDB PostgreSQL license key 

Conclusion: 

To prevent potential downtime due to the Embedded Postgres license key expiry, it is critical to upgrade to a Cloud Pak product that includes the updated license key before October 1st, 2024, at 00:00:00 (midnight) in UTC or follow the manual license update procedure to update the license kay. If an environment encounters downtime post-expiry, the above method should still be applicable as an update to the license key. Always ensure to keep your environment updated to avoid such issues.

Contact the respective IBM Cloud Pak Support team if you have questions about specific Cloud Pak versions or the operators using embedded EDB PostgreSQL as a database.
Reference Document: 

[{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SS8QTD","label":"IBM Cloud Pak for Integration"},"ARM Category":[{"code":"a8mKe000000XZC8IAO","label":"Components-\u003EOperators-\u003ECP4I Platform Navigator-\u003EKeycloak for PostgreSQL"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSRV9V","label":"IBM Cloud Pak foundational services"},"ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB76","label":"Data Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSBYVB","label":"IBM Cloud Pak for Business Automation"},"ARM Category":[{"code":"a8m3p000000hBJ8AAM","label":"Other-\u003ECloudPak4Automation Platform-\u003EFoundation Services-\u003EBTS"},{"code":"a8m3p000000hBeaAAE","label":"Other-\u003ECloudPak4Automation Platform-\u003EFoundation Services-\u003EPostgre"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB77","label":"Automation Platform"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSMNED","label":"IBM API Connect"},"ARM Category":[{"code":"a8m50000000Ce8mAAC","label":"API Connect-\u003ESecurity (SE)"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.0.7"}]

Document Information

Modified date:
11 October 2025

UID

ibm17158681