rabbitmq-server/deps/rabbitmq_peer_discovery_consul
Luke Bakken ce86fb989e
Remove all usage of `cacerts` from configuration schemas
As mentioned in discussion #14426, the way that `cacerts` is handled by
cuttlefish schemas simply will not work if set.

If `cacerts` were set to a string value containing one X509 certificate,
it would eventually result in a crash because the `cacerts` ssl option
must be of [this type](https://www.erlang.org/doc/apps/ssl/ssl.html#t:client_option_cert/0):

```
{cacerts, CACerts :: [public_key:der_encoded()] | [public_key:combined_cert()]}
```

Neither of those are strings, of course.

This PR removes all use of `cacerts` in cuttlefish schemas. In addition,
it filters out `cacerts` and `certs_keys` from being JSON-encoded by an
HTTP API call to `/api/overview`. It _is_ technically possible to set
`cacerts` via `advanced.config`, so, if set, it would crash this API
call, as would `certs_keys`.
2025-10-01 08:14:14 -07:00
..
examples/compose_consul_haproxy URL Cleanup 2019-03-20 03:19:45 -05:00
include Bump (c) line year 2025-01-01 17:54:10 -05:00
priv/schema Remove all usage of `cacerts` from configuration schemas 2025-10-01 08:14:14 -07:00
src [skip ci] Simplify logging around peer discovery 2025-07-18 08:43:03 +02:00
test Don't meck rabbit_log 2025-07-18 08:43:04 +02:00
.gitignore Cleanup .gitignore files for the monorepo 2024-06-28 12:00:52 +02:00
CODE_OF_CONDUCT.md Replace files with symlinks 2022-04-15 06:04:29 -07:00
CONTRIBUTING.md Replace files with symlinks 2022-04-15 06:04:29 -07:00
LICENSE Replace @rabbitmq.com addresses with rabbitmq-core@groups.vmware.com 2023-06-20 15:40:13 +04:00
LICENSE-MPL-RabbitMQ Revert drop of Exhibit B on MPL 2.0 2020-07-20 17:02:22 +01:00
Makefile Use Erlang.mk's native Elixir support for CLI 2025-03-18 10:02:49 +01:00
README.md More missed license header updates #9969 2024-02-05 12:26:25 -05:00

README.md

RabbitMQ Peer Discovery Consul

This is a Consul-based implementation of RabbitMQ peer discovery interface (new in 3.7.0, previously available in the rabbitmq-autocluster plugin by Gavin Roy).

This plugin only performs peer discovery and most basic node health monitoring using Consul as a data source. Please get familiar with RabbitMQ clustering fundamentals before attempting to use it.

While it may seem at times that this is a RabbitMQ cluster management solution, it is not. Cluster provisioning and most of Day 2 operations such as proper monitoring are not in scope for this plugin.

Supported RabbitMQ Versions

This plugin requires RabbitMQ 3.7.0 or later.

For a Consul-based peer discovery and cluster formation mechanism that supports 3.6.x, see rabbitmq-autocluster.

Installation

This plugin ships with supported RabbitMQ versions. There is no need to install it separately.

As with any plugin, it must be enabled before it can be used. For peer discovery plugins it means they must be enabled or preconfigured before first node boot:

rabbitmq-plugins --offline enable rabbitmq_peer_discovery_consul

Documentation

See RabbitMQ Cluster Formation guide.

Contributing

See CONTRIBUTING.md and our development process overview.

License

Licensed under the MPL, same as RabbitMQ server.

(c) 2007-2024 Broadcom. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.