RabbitMQ for PCF v1.8

Installing and Configuring RabbitMQ for PCF as an On-Demand Service

This topic provides instructions to PCF operators about how to install, configure, and deploy the RabbitMQ for PCF tile to provide on-demand service.

Note: For instructions on how to install, configure, and deploy the RabbitMQ for PCF tile as a pre-provisioned service, see the documentation for pre-provisioned RabbitMQ for PCF.

About the BOSH CLI

The BOSH CLI is available in two major versions, v1 and v2. Pivotal recommends that you use the BOSH CLI v2 when possible.

This topic provides examples of using each version of the BOSH CLI. While all versions of the BOSH CLI work with RabbitMQ for PCF v1.8.x, your PCF installation may affect which version of the BOSH CLI you can use. Consult the table below to determine which version of the CLI is supported for your installation.

PCF Version BOSH CLI Version
1.10 CLI v1
1.11 CLI v1 or CLI v2 (Pivotal recommends CLI v2)

Download and Install the Tile

  1. Download the product file from Pivotal Network.

  2. Navigate to the Ops Manager Installation Dashboard and click Import a Product to upload the product file.

  3. Under the Import a Product button, click + next to the version number of RabbitMQ for PCF. This adds the tile to your staging area.

  4. Click the newly added RabbitMQ for PCF tile.

Tile Configurations

Global Settings

  • Marketplace name: the service name that will appear in the Cloud Foundry (CF) Marketplace.
  • Service instance quota min: 0, max: 50 set the total number of dedicated service instances which can be deployed.
  • VM options:
    • Allow outbound internet access (IaaS-dependent, for more information, see the Ops Manager documentation, log forwarding and backups may require internet access).

Configuration Options for Plans

The following options are available for the RabbitMQ on demand broker:

  • Enable this plan: check this to enable dedicated RabbitMQ instances on CF marketplace.
  • Service instance quota: The maximum number of services that can be created by the on demand broker.
  • Plan name: the service name that will appear in the CF marketplace.
  • Plan description: the plan description that will appear in the CF marketplace.
  • Plan features: the features associated with this plan that will appear in the CF marketplace.
  • RabbitMQ VM Type: the type of VM that the RabbitMQ node will be created on.
  • Persistent disk type: The type of persistent disk that the RabbitMQ node will be created on.
  • AZ placement: the AZ(s) that the service instance will be deployed into.

Config rabbitmq odb

Enabling the On-Demand Service Broker

To enable the ODB, select Enable this plan in the Settings > Dedicated Instance: Single Node Plan section in the RabbitMQ tile.

Note: If the ODB feature is not enabled, the ODB is deployed alongside with RabbitMQ installation. Nevertheless, it is not going to be available in the Marketplace.

Explanation of Resource Types and Requirements

It is possible to configure the VM type for RabbitMQ and HAProxy instances by using the fields RabbitMQ VM Type and HAProxy VM Type respectively. It is also possible to chose the size of the persistent disk that is going to be attached the RabbitMQ instances. It is also necessary to chose the Availability Zone (AZ) the service instance is going to live in.

Config rabbitmq odb resources

Detail of the Solo Plan

In the Solo plan, there is a single node in the cluster. However, there is still an HAProxy associated with the cluster.

Configure the Tile for On-Demand Service

Follow the steps below to configure the RabbitMQ for PCF tile for on-demand service instances. This procedure only addresses how to configure RabbitMQ for PCF as an on-demand service. Currently there is only one type of plan available for the on-demand service. Its default name is Solo.

  1. Click Assign AZs and Networks.

    IMPORTANT: You cannot change the regions or networks after you have clicked Apply Changes in the final step below.

  2. Configure the fields on the Assign AZs and Networks as follows:

    Place singleton jobs in Select the region that you want for singleton VMs. PCF creates the RabbitMQ broker in this AZ.
    Balance other jobs in Select additional region. This selection does not affect the on-demand RabbitMQ for PCF service.
    Network Select a subnet for the RabbitMQ broker.
    This network is represented by the Default Network in this picture. Typically, you select the subnet used for the Pivotal Elastic Runtime components.
    Service Network This is the subnet that the on-demand service instances are on. A typical practice is to put all on-demand services on a single subnet. This network is represented by the Services Network in this picture. If you are not using on-demand services but only pre-provisioned services, you need to specify a subnet but which subnet you specify does not matter.

    WARNING: Changing the Network or Service Network, or changing their IP configurations, results in a failed deployment. For more information, see Changing Network or IP Addresses Results in a Failed Deployment.

  3. Click Save.

  4. Click RabbitMQ.

  5. Enter RabbitMQ admin user credentials.
    These credentials are not used by the on-demand RabbitMQ for PCF service but the fields cannot be blank. You do not need to make any other edits to this page.

  6. (Optional) Enter a value for the Metrics polling interval. The default is 30 seconds.

  7. Click Save.

  8. If you want to set up monitoring, click Syslog, complete the fields, and save.
    For more information, see Monitoring RabbitMQ for PCF.

  9. Click Dedicated Instance: Single Node Plan.


  10. Configure the fields on the Dedicated Instance: Single Node Plan as follows:

    Enable this plan Select the checkbox.
    Service instance quota Enter the maximum number of dedicated service instances that can be available at one time.
    Plan name Accept the default or enter a name. This is the name that appears in the Marketplace.
    Plan description Accept the default or enter a description.
    Plan features Accept the default or enter information about the plan to help your app developers.
    RabbitMQ VM Type Select a large VM type.
    The plan will create a service instance of this size.
    Persistent disk type This is where RabbitMQ will page messages to disk. See Disk Size Concerns for more details.
    AZ placement Select one AZ for the single node.
    The plan will create all the on-demand service instance VMs in this AZ.

  11. Click Save.

  12. Click Stemcell.

  13. Verify and, if necessary, import a new stemcell version. For more information, see the information about importing the stemcell for your IaaS: AWS, Azure, GCP, or vSphere.

  14. Return to the Ops Manager Installation Dashboard and click Apply Changes.

Disk Size Concerns

RabbitMQ raises alarms when disk space drops below the configured limit. Incorrect disk sizes may cause the deployed instance not to start. RabbitMQ declines to start if there is not enough space available according to the threshold.

Dedicated instances are configured with a threshold set to the 40% of the memory (RAM) of the VM. Operators can take the following table as an example when selecting the size of the persistent disk.

The following table shows an example of possible RAM values, absolute minimal value below which RabbitMQ declines to start, and the disk size suggested for an average use case.

RAM Free disk alarm threshold (0.4xRAM) Suggested disk size (2xRAM)
10 GB 4 GB 20 GB
16 GB 6.4 GB 32 GB
32 GB 12.8 GB 64 GB

Vm ram disk example

RabbitMQ Documentation

Smoke-Tests Steps

The smoke tests perform the following for each available service plan:

  1. Targets the org system and creates a space to run the tests.
  2. Deploys an instance of the CF RabbitMQ Example App to this space
  3. Creates a RabbitMQ service instance and binds it to the CF RabbitMQ Example App
  4. Checks that the CF RabbitMQ Example App can write to and read from the RabbitMQ service instance
  5. Cleans up all deployed application and all its service bindings. Finally, the cf space is deleted.
Create a pull request or raise an issue on the source for this page in GitHub