Should it be possible to override a previously set configuration setting with multiple RABBITMQ_CONFIG_FILES? #12544
-
Describe the bugIssueI have the files For local development I don't need TLS and just want to go with simple HTTP endpoint ( My Dockerfile gets an argument which deletes the For the messaging itself, you can specify WorkaroundThe only workaround I found was to set the ip to localhost ( Reproduction stepsHave 2 files and
In
Expected behaviorManagement UI non-TLS (HTTP) endpoint should be as easily be disableable as the actual messaging port ( Additional contextInvestigationThere seems to be a mapping that lets rabbitmq-server/deps/rabbit/priv/schema/rabbit.schema Lines 44 to 46 in 4c57a42 For InfoRabbitMQ: 3.13.7 (also briefly tested 4.0.2) via Docker image |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
@warappa I do not see a single place in the docs that claims that what you are trying to do should be possible. Multiple configuration files support was not added to allow for overriding of values set in "earlier" configuration files. They are supported to make it possible to incrementally generate the final The two files you pass are both passed to the library that parses, validates and translates |
Beta Was this translation helpful? Give feedback.
-
As for a way to disable the regular TCP listener, it is as trivial as not configuring it at all. Given the following #
# Management
#
management.http_log_dir = /tmp/rabbitmq-http-api/logs/
management.ssl.port = 15671
management.ssl.cacertfile = /path/to/tls-gen.git/basic/result/ca_certificate.pem
management.ssl.certfile = /path/to/tls-gen.git/basic/result/server_certificate.pem
management.ssl.keyfile = /path/to/tls-gen.git/basic/result/server_key.pem You will get the following listeners enabled:
In other words, there will be just one listener enabled. This is exactly what the HTTPS section of the docs claims, with joint HTTP/HTTPS setup being documented separately for this reason. Is There Much Interest in an Alternative?The management plugin already supports three different generations of settings and it is easily the most complex listeners-related part of the entire codebase. You don't have to know much about Erlang or RabbitMQ to evaluate how complex this part is compared to its peers. This is further complicated by the fact that there are other HTTP-based plugins such as STOMP and MQTT-over-WebSockets, the Prometheus plugin, and so on. More changes to that area are very difficult to justify. They are not requested by paying users or regular contributors, in fact, we have seen requests of an exact opposite over the years, |
Beta Was this translation helpful? Give feedback.
As for a way to disable the regular TCP listener, it is as trivial as not configuring it at all.
Given the following
rabbitmq.conf
:You will get the following listeners enabled:
In other words, there will be just o…