-
Notifications
You must be signed in to change notification settings - Fork 308
Description
Is your feature request related to a problem? Please describe.
TLS for AMQP can be enabled by following - https://www.rabbitmq.com/kubernetes/operator/using-operator.html#tls-conf.
TLS for other RabbitMQ plugins - the management plugin for example, must be done through a few CR changes. For example, by configuring the TLS properties for the plugin through additionalConfig and opening the TLS port through the statefulSetOverride.
The extra work for enabling TLS for plugins may not be justified given that in most cases:
- When a user enables TLS, they wish to enable TLS for all plugins and not just AMQP
- The same TLS credentials are used across plugins anyway
This most cases belief came up in our public slack channel and was confirmed by a member of the core team, and a platform architect.
Given this, we can extend the AMQP TLS setting to all plugins.
Scenario: TLS is configured for all enabled plugins
Given I deploy a RabbitMQ cluster with `spec.tls` set, and the plugins - management and stomp
When I try with contact RabbitMQ over the default TLS ports for each of the plugins - amqp, management, stomp
Then the connection succeeds and uses TLS
Scenario: Adding a plugin when TLS is enabled
Given I have a RabbitMQ cluster with TLS enabled
And I update the cluster by adding the MQTT plugin in the `additionalPlugins` section
When I try to connect to RabbitMQ using MQTTS over the default TLS port for MQTT
Then the connection succeeds and uses TLS
Scenario: Overriding the default TLS settings
Given I have a RabbitMQ cluster with TLS enabled and the management plugin
And I update the cluster to change the TLS port for management to 15678
By adding `management.ssl.port = 15678` to the `additionalConfig`
By opening port 15678 using the `statefulSetOverride`
When I try to connect over the new port
Then the connection succeeds and uses TLS
Scenario: Disable non-ssl listeners
Given I have a RabbitMQ cluster with TLS enabled and the management plugin
When I try to connect to the non-TLS management port (15672)
Then I see that the connection failsAdditional Context
RabbitMQ ships with some tier-1 plugins. We will need to decide which of these plugins to auto-enable TLS for. For example, enabling TLS for the management plugin involves much the same work as enabling TLS for AMQP. However, for the shovel and federation plugins, since another cluster is involved, this may be trickier.
The changes for AMQP TLS can be found in it's PR.