SolaceProducts / pubsubplus-kubernetes-quickstart

Quickstart to launch a Solace PubSub+ Software Event Broker in Kubernetes using Operator
Apache License 2.0
6 stars 2 forks source link

[Bug]: Setting systemScaling.system_scaling_maxsubscriptioncount parameter for broker size >= PubSub+ENT-100K breaks deployment #88

Open JanGrosse opened 2 weeks ago

JanGrosse commented 2 weeks ago

Bug Description

Tested with Solace Operator version 1.2.0

According to the solace calculator when one defines the broker size to be PubSub+ENT-100K the systemScaling parameters should be set to the following value

  systemScaling:
    system_scaling_maxconnectioncount: 100000
    system_scaling_maxqueuemessagecount: 240
    system_scaling_maxkafkabridgecount: 0
    system_scaling_maxkafkabrokerconnectioncount: 0
    system_scaling_maxbridgecount: 500
    system_scaling_maxsubscriptioncount: 5000000
    messagespool_maxspoolusage: 200000
    messagingNodeCpu: "8"
    messagingNodeMemory: "30925Mi"

creating a PubSubPlusEventBroker manifest with those parameters will result in a pod which is stuck in a CrashLoopBackoff the reason for that is that the 5.000.000 of the maxSubscriptionCount get somehow transformed into the exponential format "5+e06" which results in a statefulset containing the following environment variable

        - name: SYSTEM_SCALING_MAXSUBSCRIPTIONCOUNT
          value: "5e+06"

during the pod startup the container crashes because it can not read the undefined scaling key `5\n' (I have already manually fixed my deployment and did not copy the correct error message, but it is something like this)

Expected Behavior

Setting a systemScaling paramater above 1 million should not result in it being transformed into the exponential format.

Steps to Reproduce

Create a PubSubPlusEventBroker manifest file with the systemScaling parameters for PubSub+ENT-100K (or higher).

apiVersion: pubsubplus.solace.com/v1beta1
kind: PubSubPlusEventBroker
metadata:
  name: demo
spec:
  podDisruptionBudgetForHA: true
  redundancy: true
  systemScaling:
    system_scaling_maxconnectioncount: 100000
    system_scaling_maxqueuemessagecount: 240
    system_scaling_maxkafkabridgecount: 0
    system_scaling_maxkafkabrokerconnectioncount: 0
    system_scaling_maxbridgecount: 500
    system_scaling_maxsubscriptioncount: 5000000
    messagespool_maxspoolusage: 200000
    messagingNodeCpu: "8"
    messagingNodeMemory: "30925Mi"
  storage:
    messagingNodeStorageSize: "228700MB"
    monitorNodeStorageSize: 3Gi

Apply the manifest file kubectl apply -f <manifest.yaml> and you should see in the resulting statefulset the wrong environment variable set for SYSTEM_SCALING_MAXSUBSCRIPTIONCOUNT and the messaging nodes keep on crashing.

Solace Broker version

10.8.1.52

Solace API

No response

Solace API version

No response

LewisKSaint commented 1 week ago

Hello @JanGrosse, thanks for reporting this. It's being tracked. For a temporal fix, use the scaling parameters in quotes.