Yamazaki Richard
Yamazaki Richard

Reputation: 21

difficulty with advanced configuration for rabbitmq in kubernetes

I'm using the kubernetes operator https://www.rabbitmq.com/kubernetes/operator/operator-overview.html to deploy rabbitmq, however I'm having some issues with advanced config. I did refer to https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/advanced.config.example but I'm not sure what I'm missing

I have a receipe such as this:

---
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
 name: mybunny
spec:
 replicas: 3
 image: rabbitmq:3.10
 rabbitmq:
   advancedConfig: |
     [
      {rabbit,
       [
        {vm_memory_high_watermark, 0.75},
        {disk_free_limit, {mem_relative, 1.0}}
       ]}
     [
      {kernel, []},
     ].

I think it generated the advanced.config file as I wanted it to look:

$ kubectl exec mybunny-server-2 -it -- cat /etc/rabbitmq/advanced.config
Defaulted container "rabbitmq" out of: rabbitmq, setup-container (init)
[
{rabbit,
 [
  {vm_memory_high_watermark, 0.75},
  {disk_free_limit, {mem_relative, 1.0}}
 ]},
{kernel, []},
].

However the application always fails to load, I can't figure out where is the syntaxt error

kubectl logs mybunny-server-2                                          
2022-07-19 20:23:25.723748+00:00 [warning] <0.130.0> cluster_formation.randomized_startup_delay_range.min and clus
ter_formation.randomized_startup_delay_range.max are deprecated
2022-07-19 20:23:25.732008+00:00 [error] <0.130.0> Failed to load advanced configuration file "/etc/rabbitmq/advan
ced.config": unknown POSIX error

BOOT FAILED
===========
Error during startup: {error,failed_to_read_advanced_configuration_file}

2022-07-19 20:23:25.732677+00:00 [error] <0.130.0>  
2022-07-19 20:23:25.732677+00:00 [error] <0.130.0> BOOT FAILED
2022-07-19 20:23:25.732677+00:00 [error] <0.130.0> ===========
2022-07-19 20:23:25.732677+00:00 [error] <0.130.0> Error during startup: {error,failed_to_read_advanced_configurat
ion_file}
2022-07-19 20:23:25.732677+00:00 [error] <0.130.0>  
2022-07-19 20:23:26.734535+00:00 [error] <0.130.0>     supervisor: {local,rabbit_prelaunch_sup}
2022-07-19 20:23:26.734535+00:00 [error] <0.130.0>     errorContext: start_error
2022-07-19 20:23:26.734535+00:00 [error] <0.130.0>     reason: failed_to_read_advanced_configuration_file

=======================

If I keep the advanced config very simple, the app loads fine

 cat mybunny.yaml  
---
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
 name: mybunny
spec:
 replicas: 3
 image: rabbitmq:3.10
 rabbitmq:
   advancedConfig: |
     [
      {rabbit,
       [
        {vm_memory_high_watermark, 0.75},
        {disk_free_limit, {mem_relative, 1.0}}
       ]}
     ].

$ kubectl exec mybunny-server-2 -it -- cat /etc/rabbitmq/advanced.config
Defaulted container "rabbitmq" out of: rabbitmq, setup-container (init)
[
{rabbit,
 [
  {vm_memory_high_watermark, 0.75},
  {disk_free_limit, {mem_relative, 1.0}}
 ]}
].

The above loads fine, notice how I didnt enter the "kernel" feature in the advanced config

Upvotes: 0

Views: 764

Answers (1)

Kamol Hasan
Kamol Hasan

Reputation: 13556

There are a few typos in advancedConfig your YAML file:

     [
      {rabbit,
       [
        {vm_memory_high_watermark, 0.75},
        {disk_free_limit, {mem_relative, 1.0}}
       ]} # a comma (,) is missing here 
     [  # It shouldn't be here.  
      {kernel, []}, # No need to put comma after the last {} part. 
     ].

Fixed YAML:

apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
 name: mybunny
spec:
 replicas: 3
 image: rabbitmq:3.10
 rabbitmq:
   advancedConfig: |
     [
      {rabbit,
       [
        {vm_memory_high_watermark, 0.75},
        {disk_free_limit, {mem_relative, 1.0}}
       ]},
      {kernel, []}
     ].
$ kubectl get RabbitmqCluster
NAME      ALLREPLICASREADY   RECONCILESUCCESS   AGE
mybunny   True               True               5m46s

$ kubectl get pods 
NAME                                                              READY   STATUS    RESTARTS   AGE
mybunny-server-0                                                  1/1     Running   0          6m34s
mybunny-server-1                                                  1/1     Running   0          6m34s
mybunny-server-2                                                  1/1     Running   0          6m34s

Upvotes: 1

Related Questions