VMware Tanzu RabbitMQ for Kubernetes ignores "disk_free_limit.absolute" config setting
search cancel

VMware Tanzu RabbitMQ for Kubernetes ignores "disk_free_limit.absolute" config setting

book

Article ID: 293209

calendar_today

Updated On:

Products

VMware RabbitMQ

Issue/Introduction

When created, a VMware Tanzu RabbitMQ for Kubernetes Cluster will have its "disk_free_limit"
configured as {mem_relative,1.0} by default. Moreover, attempting to override this parameter using
RabbitmqCluster.spec.rabbitmq.additionalConfig: disk_free_limit will have no effect.

For example:
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: example
spec:
  rabbitmq:
    additionalConfig: |
      disk_free_limit.absolute = 3GB
$rabbitmq-diagnostics environment | grep -i disk
{start_disksup,false},
{disk_free_limit,{mem_relative,1.0}},
{disk_monitor_failure_retries,10},
{disk_monitor_failure_retry_interval,120000},


XXXXXX-server-0:/etc/rabbitmq/conf.d$ cat 90-userDefinedConfiguration.conf 
ssl_options.certfile         = /etc/rabbitmq-tls/tls.crt
ssl_options.keyfile          = /etc/rabbitmq-tls/tls.key
listeners.ssl.default         = 5671
......
disk_free_limit.absolute       = 3GB
heartbeat               = 40


XXXXXX-server-0:/etc/rabbitmq/conf.d$ cat 10-operatorDefaults.conf 
cluster_formation.peer_discovery_backend       = rabbit_peer_discovery_k8s
cluster_formation.k8s.host              = kubernetes.default
cluster_formation.k8s.address_type          = hostname
......
disk_free_limit.absolute               = 2GB
cluster_formation.randomized_startup_delay_range.min = 0
cluster_formation.randomized_startup_delay_range.max = 60
cluster_name                     = XXXXXX

Note: the RabbitMQ OSS image does not have this issue.

Environment

Product Version: 1.2

Resolution

VMware Tanzu RabbitMQ for Kubernetes Image has the "disk_free_limit.relative" configured in "/etc/rabbitmq/rabbitmq.conf" file, while RabbitMQ OSS image does not have "/etc/rabbitmq/rabbitmq.conf" file.

"/etc/rabbitmq/rabbitmq.conf" is loaded after "/etc/rabbitmq/conf.d/90-userDefinedConfiguration.conf" in the VMware Tanzu RabbitMQ for Kubernetes image and therefore "disk_free_limit.relative" setting is taking precedence.

You can utilize advanced config which is loaded after that rabbitmq.conf file to change this config accordingly. 
For example:
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: example
spec:
  rabbitmq:
    advancedConfig: |
      [
          {rabbit, [
            {disk_free_limit, [{absolute, '3GB'}
          ]}]}
      ].
  replicas: 1
  service:
    type: LoadBalancer
  image: example.registry.pivotal.io/rabbitmq/vmware-tanzu-rabbitmq:1.2.2