feat(rabbitmq_bridge): add TLS support #11363
Analysis complete
Summary
This pull request adds TLS support for the emqx_bridge_rabbitmq
application, which enables secure communication between the emqx broker and the rabbitmq broker. It defines the SSL options in the schema, converts them to the amqp_client
format, and updates the test suite and the docker-compose file accordingly. It also bumps the version of the application and adds a changelog entry.
Walkthrough
- Add TLS support for the rabbitmq bridge (link, link, link, link, link, link, link, link, link, link)
- Update the version of the
emqx_bridge_rabbitmq
application to 0.1.4 (link) - Add the SSL fields to the schema of the
emqx_bridge_rabbitmq_connector
using theemqx_connector_schema_lib
module (link) - Modify the function that creates the rabbitmq connection options from the connector configuration to handle the SSL options using the
emqx_tls_lib
module (link) - Add the volumes section to the rabbitmq service in the
docker-compose-rabbitmq.yaml
file to mount the certificates and the TLS configuration file from the host to the container (link) - Create the TLS configuration file for the rabbitmq service in the
.ci/docker-compose-file/rabbitmq/20-tls.conf
file (link) - Restructure the common test suite for the
emqx_bridge_rabbitmq
application to introduce two groups of test cases: tcp and tls (link) - Modify the function that sets up the rabbitmq exchange and queue for the test cases to use the connection options from the group configuration and the certificates from the
certs
directory (link) - Rename the
end_per_suite
function toend_per_group
and update the calls to this function in the test cases (link) - Remove the
all
function from the test suite and update the calls to this function in the test cases (link) - Add a changelog entry for the new feature in the
changes/ee/feat-11363.en.md
file (link)
Poem
We bridge the gap with
rabbitmq
We secure the data with TLS
We face the doom of the network
We update and test with finesse
Emoji
🔒🐰🌉
Include these descriptions in your pull request description by including the following marker tags:
copilot:all
: all the content, in one gocopilot:summary
: a one paragraph summary of the code changescopilot:walkthrough
: a step by step walkthrough of the code changescopilot:poem
: a poem about the code changes!copilot:emoji
: three emoji that capture the changes
Feedback is welcome. Simply add a comment to this PR of the form /copilot feedback [your comments here]
.
Details
Copilot for PRs is a limited technical preview from GitHub Next.
It's aim is to make it easier to write pull request descriptions by providing automatically generated suggestions based on the code changes.
To find out more go to https://githubnext.com/projects/copilot-for-pull-requests or come and chat with us on Discord
File | Status | Duration |
---|---|---|
.ci/docker-compose-file/docker-compose-rabbitmq.yaml | ✅ Finished | 38.3 seconds |
.ci/docker-compose-file/rabbitmq/20-tls.conf | ✅ Finished | 38.3 seconds |
Summary & Walkthrough | ✅ Finished | 66.3 seconds |
apps/emqx_bridge_rabbitmq/src/emqx_bridge_rabbitmq.app.src | ✅ Finished | 38.3 seconds |
apps/emqx_bridge_rabbitmq/src/emqx_bridge_rabbitmq_connector.erl | ✅ Finished | 40.4 seconds |
apps/emqx_bridge_rabbitmq/test/emqx_bridge_rabbitmq_SUITE.erl | ✅ Finished | 40.7 seconds |
changes/ee/feat-11363.en.md | ✅ Finished | 38.3 seconds |