Flashes (Alerts)
Abstract
In all releases before v24 and versions prior to v24.0.0 IFix 2, Cloud Pak for Business Automation's embedded PostgreSQL database's license key expires on October 1st, 2024 at 00:00:00 (UTC).
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.
For example, creating new clusters, tuning PostgreSQL, or managing recovery and failover.
Once the license has expired the postgresql-operator-controller-manager pod will show the following info message in the logs near startup for each cluster CR associated with an expired license:
"msg":"Invalid license key"
IBM strongly advises that all Cloud Pak for Business Automation customers perform the corrective actions for this at their earliest convenience to prevent any outage for your platform. Step 5 can be preformed to confirm if you have impacted PostgreSQL clusters.
Content
Important: For new installs we recommend using the latest Ifix of the recommended release. The recommended version isn't impacted by the issue. But if you choose to install an affected release or IFix then the install would be blocked by this issue after the CR is applied and during the creation of the various resources. These steps should be applied just after the mentioned resources are created to keep the installation progressing.
- If you are using a local image registry then pull the needed image into your registry.
The image being used to correct the issue is:cp.icr.io/cp/cpd/edb-postgres-license-provider@sha256:c1670e7dd93c1e65a6659ece644e44aa5c2150809ac1089e2fd6be37dceae4ce -
Find the namespaces that contain the PostgreSQL operators and the license jobs:
oc get job -A | egrep "NAME|create-postgres-license-config" -
For each namespace, update the postgresql-operator-controller-manager-config secret. This is done to keep the BTS operator from overwriting any changes.
Where <DiscoveredNamespace> is one of the namespaces discovered in step 2.export namespace=<DiscoveredNamespace> oc annotate secret postgresql-operator-controller-manager-config ibm-bts/skip-updates="true" -n $namespace
Note: If BTS isn't installed in your CP4BA deployment then you can skip step 3. -
For each namespace, update the license job with a new image to correct the issue.
Note: The oc commands are a single command to be executed as listed above.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
If you used a local registry then replace the image setting with the appropriate value to pull the image.
Repeat the commands from step 3 and 4 for each namespace discovered in step 2.
-
Verify that all PostgreSQL clusters in the OCP cluster are updated with a new expiration date.
oc get cluster.postgresql -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.status.licenseStatus.licenseExpiration}{"\t"}{.status.licenseStatus.licenseStatus}{"\n"}{end}'
Results
cp4ba postgres-cp4ba 2999-12-31T00:00:00Z Valid license (IBM - Data & Analytics (ibmda_cloudpak))
cp4ba zen-metastore-edb 2999-12-31T00:00:00Z Valid license (IBM - Data & Analytics (ibmda_cloudpak))
Troubleshooting
- The issue and commands only apply to PostgreSQL clusters installed via the Cloud Pak Foundational Services(CPFS) component of Cloud Paks.
- If the create-postgres-license-config job does not exist with the PostgreSQL operator, review the logs for the operand-deployment-lifecycle-manager(ODLM) pod for any problems.
This ODLM pod should exist in the same namespace as the PostgreSQL operator for each CPFS deployment. This operator is responsible for creating the job if it doesn't exist. - If the updated job has completed successfully but the clusters still show the old expiration, review the logs for the postgresql-operator-controller-manager for any problems. This operator should propagate license updates to the managed clusters.
Was this topic helpful?
Document Information
Modified date:
24 October 2024
UID
ibm17160230