Reputation: 21
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
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