Plugin Support
TOC
Plugin MechanismOperation InstructionsView Supported Plugins in the InstanceEnable/Disable Plugins Already Included in the ImageEnable Third-party or Custom PluginsMethod 1: Environment Has Access to the InternetMethod 2: Environment Cannot Access the InternetUpgrade Impact InstructionsPlugin Mechanism
RabbitMQ supports plugins, which extend functionality in various ways: supporting more protocols, system status monitoring, additional AMQP 0-9-1 exchange types, node federation, etc. Many features are implemented as plugins and are provided along with core releases.
For more information, please refer to: How to use RabbitMQ Plugins.
Operation Instructions
View Supported Plugins in the Instance
Select any node of the RabbitMQ instance, enter the Pod, and execute the following command to view the supported and enabled status of the plugins:
By default, the plugins rabbitmq_peer_discovery_k8s, rabbitmq_prometheus, rabbitmq_management, and their related plugins are enabled upon instance creation.
Below is the list of plugins included in the image along with their descriptions:
Enable/Disable Plugins Already Included in the Image
When you need to enable or disable plugins already included in the image, you can update the relevant fields in the instance's YAML file. Taking rabbitmq_shovel as an example:
Enable Third-party or Custom Plugins
When you need to enable custom plugins or community plugins that are not included in the image, you cannot directly enable them by editing the additionalPlugins in the YAML. Instead, you must download them into the container before starting the pod.
Method 1: Environment Has Access to the Internet
- Update the spec.override field to add the sts configuration, downloading the plugin in the initContainer.
- Update the spec.rabbitmq.envConfig field to add environment variables to configure the plugin path.
- Update the spec.rabbitmq.additionalPlugins field to enable the plugin.
- After the instance is ready, use the command
rabbitmq-plugins listto check if the plugin is enabled.
Sample YAML is shown below:
Method 2: Environment Cannot Access the Internet
- Update the spec.override field to add the sts configuration, mounting the plugin to the container through hostPath. Ensure that the folder on the node where the instance gets scheduled exists (in this example, /root/yh/community-plugins) and that the plugin is placed there.
- Update the spec.rabbitmq.envConfig field to add environment variables to configure the plugin path.
- Update the spec.rabbitmq.additionalPlugins field to enable the plugin.
- After the instance is ready, use the command
rabbitmq-plugins listto check if the plugin is enabled.
Sample YAML is shown below:
Upgrade Impact Instructions
- When your instance needs an upgrade, ensure that the relevant plugins are enabled in both the pre-upgrade and post-upgrade instance configurations to ensure functionality.
- If there are deprecated plugins in the community, you should take them offline in a timely manner.
- When enabling custom or third-party plugins, ensure compatibility across versions.