Expert Mode - Overriding RabbitMQ Server Configuration

Note: Pivotal Platform is now part of VMware Tanzu. In v1.20 and later, VMware Tanzu RabbitMQ [VMs] is named VMware Tanzu RabbitMQ for VMs.

This topic explains how to override the configuration set by the broker on RabbitMQ service instances. For more information about the RabbitMQ configuration, see the RabbitMQ documentation.

Warning: This feature is for expert users only. Any override configuration set on the RabbitMQ cluster might conflict with other configurations set by the Tanzu RabbitMQ broker. Any invalid configuration set through an override causes a deployment to fail.

VMware recommends that you thoroughly test any configuration you plan to apply through an override on a test environment, and use this feature with caution.

Overview

On RabbitMQ service instances, the Tanzu RabbitMQ broker applies and maintains configuration on the RabbitMQ server. You can override this configuration, or provide your own additional configuration to apply on the RabbitMQ service instance. This configuration takes priority over any set by the Tanzu RabbitMQ broker and is applied last on the server.

Depending on which service offering you are using, you must provide the configuration in either the newer sysctl-style configuration format or the older Erlang-style format. Where possible, use the newer format. For more information, see the RabbitMQ documentation.

Apply the Override Configuration

Both the on-demand and pre-provisioned service offering support overriding the instance configuration.

Override Configuration for On-Demand

To provide override configuration on a per-plan basis for on-demand service plans:

  1. Navigate to the Tanzu RabbitMQ tile in Ops Manager.

  2. Select the on-demand plan you want to provide override configuration for from the sidebar. Any service instances created under this plan will have this override configuration applied to them.

  3. In on-demand, you can provide override configuration in sysctl-style or Erlang-style config format.

    • To provide configuration in the newer sysctl-style format:
      1. Paste the configuration into the Expert Mode: Override Server Config field. You can make this configuration a multiline string if you require multiple configuration items. Screenshot of the 'Expert Mode: Override Server Config' field. The field contains a multiline string; the lines are 'management.rates_mode = detailed', 'management.ssl.ciphers.1 = ECDHE-ECDSA-AES256-GCM-SHA384' and 'management.ssl.ciphers.2 = ECDHE-RSA-AES256-GCM-SHA384'
      2. Click Save.
    • To provide configuration in the older Erlang-style format:
      1. Encode the configuration as a base64 string. For example, to provide the same config as above in the older format, you can do so on Linux by running:
        $ echo -n '[
        {rabbitmq_management, [
        {rates_mode, detailed},
        {ssl_options, [
          {ciphers, [
            "ECDHE-ECDSA-AES256-GCM-SHA384",
            "ECDHE-RSA-AES256-GCM-SHA384"
          ]}
        ]}
        ]}
        ].' | base64

        WwogIHtyYWJiaXRtcV9tYW5hZ2VtZW50LCBbCiAgICB7cmF0ZXNfbW9kZSwgZGV0YWlsZWR9LAogICAge3NzbF9vcHRpb25zLCBbCiAgICAgIHtjaXBoZXJzLCBbCiAgICAgICAgIkVDREhFLUVDRFNBLUFFUzI1Ni1HQ00tU0hBMzg0IiwKICAgICAgICAiRUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IgogICAgICBdfQogICAgXX0KICBdfQpdLg==
      2. Paste this base64-encoded config into the Expert Mode: Override Server Advanced Config field. Screenshot of the 'Expert Mode: Override Server Advanced Config' field.
The field contains a base64 encoded configuration that begins with the characters 'WwogIHty'.
      3. Click Save.

    After applying changes, new service instances using this plan implement this new configuration. Existing service instances implement the configuration after they are upgraded.

    You can provide both sysctl-style and Erlang term-style configuration for an on-demand service plan. Where the same configuration is set in both, the Erlang term-style config takes priority.

    For example, if you set the rates_mode property above to detailed in the Override Server Config and none in the Override Advanced Server Config, the resultant server takes the none value.

Override Configuration for Pre-Provisioned

In pre-provisioned, to set configuration on all service instances:

  1. Navigate to the Tanzu RabbitMQ tile in Ops Manager.
  2. Select Pre-Provisioned RabbitMQ from the sidebar.
  3. Encode your desired config as a base64 string. The pre-provisioned service offering only supports the older Erlang-style format of override configuration. For example, you can do this on Linux by running:

    $ echo -n '[
      {rabbitmq_management, [
        {rates_mode, detailed},
        {ssl_options, [
          {ciphers, [
            "ECDHE-ECDSA-AES256-GCM-SHA384",
            "ECDHE-RSA-AES256-GCM-SHA384"
          ]}
        ]}
      ]}
    ].' | base64

    WwogIHtyYWJiaXRtcV9tYW5hZ2VtZW50LCBbCiAgICB7cmF0ZXNfbW9kZSwgZGV0YWlsZWR9LAogICAge3NzbF9vcHRpb25zLCBbCiAgICAgIHtjaXBoZXJzLCBbCiAgICAgICAgIkVDREhFLUVDRFNBLUFFUzI1Ni1HQ00tU0hBMzg0IiwKICAgICAgICAiRUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IgogICAgICBdfQogICAgXX0KICBdfQpdLg==
  4. Paste this base64-encoded config into the Expert Mode: Override Server Advanced Config field.

    Screenshot of the 'Expert Mode: Override Server Advanced Config' field.
The field contains a base64 encoded configuration that begins with the characters 'WwogIHty'.

  5. Click Save.

After applying changes, pre-provisioned service instances implement this new configuration.