Chapter 8. Known issues
This section lists the known issues for AMQ Streams 2.4 on OpenShift.
8.1. Kafka Bridge sending messages with CORS enabled Copy linkLink copied to clipboard!
If Cross-Origin Resource Sharing (CORS) is enabled for the Kafka Bridge, a 400 bad request error is returned when sending a HTTP request to produce messages.
Workaround
To avoid this error, disable CORS in the Kafka Bridge configuration. HTTP requests to produce messages must have CORS disabled in the Kafka Bridge. This issue will be fixed in a future release of AMQ Streams.
To use CORS, you can deploy Red Hat 3scale for the Kafka Bridge.
- For information on deploying 3scale see, Using 3scale API Management with the AMQ Streams Kafka Bridge.
- For information on CORS request handling by 3scale, see Administering the API Gateway.
8.2. AMQ Streams Cluster Operator on IPv6 clusters Copy linkLink copied to clipboard!
The AMQ Streams Cluster Operator does not start on Internet Protocol version 6 (IPv6) clusters.
Workaround
There are two workarounds for this issue.
Workaround one: Set the KUBERNETES_MASTER environment variable
Display the address of the Kubernetes master node of your OpenShift Container Platform cluster:
oc cluster-info Kubernetes master is running at <master_address> # ...
oc cluster-info Kubernetes master is running at <master_address> # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy the address of the master node.
List all Operator subscriptions:
oc get subs -n <operator_namespace>
oc get subs -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
Subscriptionresource for AMQ Streams:oc edit sub amq-streams -n <operator_namespace>
oc edit sub amq-streams -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow In
spec.config.env, add theKUBERNETES_MASTERenvironment variable, set to the address of the Kubernetes master node. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Save and exit the editor.
Check that the
Subscriptionwas updated:oc get sub amq-streams -n <operator_namespace>
oc get sub amq-streams -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check that the Cluster Operator
Deploymentwas updated to use the new environment variable:oc get deployment <cluster_operator_deployment_name>
oc get deployment <cluster_operator_deployment_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Workaround two: Disable hostname verification
List all Operator subscriptions:
oc get subs -n <operator_namespace>
oc get subs -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
Subscriptionresource for AMQ Streams:oc edit sub amq-streams -n <operator_namespace>
oc edit sub amq-streams -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow In
spec.config.env, add theKUBERNETES_DISABLE_HOSTNAME_VERIFICATIONenvironment variable, set totrue. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Save and exit the editor.
Check that the
Subscriptionwas updated:oc get sub amq-streams -n <operator_namespace>
oc get sub amq-streams -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Check that the Cluster Operator
Deploymentwas updated to use the new environment variable:oc get deployment <cluster_operator_deployment_name>
oc get deployment <cluster_operator_deployment_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3. Cruise Control CPU utilization estimation Copy linkLink copied to clipboard!
Cruise Control for AMQ Streams has a known issue that relates to the calculation of CPU utilization estimation. CPU utilization is calculated as a percentage of the defined capacity of a broker pod. The issue occurs when running Kafka brokers across nodes with varying CPU cores. For example, node1 might have 2 CPU cores and node2 might have 4 CPU cores. In this situation, Cruise Control can underestimate and overestimate CPU load of brokers The issue can prevent cluster rebalances when the pod is under heavy load.
There are two workarounds for this issue.
Workaround one: Equal CPU requests and limits
You can set CPU requests equal to CPU limits in Kafka.spec.kafka.resources. That way, all CPU resources are reserved upfront and are always available. This configuration allows Cruise Control to properly evaluate the CPU utilization when preparing the rebalance proposals based on CPU goals.
Workaround two: Exclude CPU goals
You can exclude CPU goals from the hard and default goals specified in the Cruise Control configuration.
Example Cruise Control configuration without CPU goals
For more information, see Insufficient CPU capacity.
8.4. User Operator scalability Copy linkLink copied to clipboard!
The User Operator can timeout when creating multiple users at the same time. Reconciliation can take too long.
Workaround
If you encounter this issue, reduce the number of users you are creating at the same time. And wait until they are ready before creating more users.
8.5. JMX authentication when running in FIPS mode Copy linkLink copied to clipboard!
When running AMQ Streams in FIPS mode with JMX authentication enabled, clients may fail authentication. To work around this issue, do not enable JMX authentication while running in FIPS mode. We are investigating the issue and working to resolve it in a future release.
8.6. Startup failure for Cruise Control when OAuth 2.0 metrics are enabled Copy linkLink copied to clipboard!
If you enable OAuth 2.0 metrics using the enableMetrics property, Cruise Control fails with an exception. To be able to use Cruise Control, you must not configure the enableMetrics property or set it to false. We are investigating the issue and working to resolve it in a future release.
Track this issue: ENTMQST-4735.