Overview

Red Hat JBoss A-MQ (JBoss A-MQ) is available as a containerized xPaaS image that is designed for use with OpenShift. It allows developers to quickly deploy an A-MQ message broker in a hybrid cloud environment.

There are significant differences in supported configurations and functionality in the JBoss A-MQ image compared to the regular release of JBoss A-MQ.

This topic details the differences between the JBoss A-MQ xPaaS image and the regular release of JBoss A-MQ, and provides instructions specific to running and configuring the JBoss A-MQ xPaaS image. Documentation for other JBoss A-MQ functionality not specific to the JBoss A-MQ xPaaS image can be found in the JBoss A-MQ documentation on the Red Hat Customer Portal.

Differences Between the JBoss A-MQ xPaaS Image and the Regular Release of JBoss A-MQ

There are several major functionality differences in the OpenShift JBoss A-MQ xPaaS image:

  • The Karaf shell is not available.

  • The Fuse Management Console (Hawtio) is not available.

  • Configuration of the broker can be performed:

Installing the JBoss A-MQ xPaaS Image Streams and Application Templates

To use the Red Hat xPaaS middleware images in your OpenShift project, you must first install the image streams and Source-to-Image (S2I) application templates.

Configuring the JBoss A-MQ Image

Application Template Parameters

Basic configuration of the JBoss A-MQ xPaaS image is performed by specifying values of application template parameters. The following parameters can be configured:

AMQ_RELEASE

The JBoss A-MQ release version. This determines which JBoss A-MQ image will be used as a basis for the application. At the moment, only version 6.2 is available.

APPLICATION_NAME

The name of the application used internally in OpenShift. It is used in names of services, pods, and other objects within the application.

MQ_USERNAME

The user name used for authentication to the broker. In a standard non-containerized JBoss A-MQ, you would specify the user name in the AMQ_HOME/opt/user.properties file. If no value is specified, a random user name is generated.

MQ_PASSWORD

The password used for authentication to the broker. In a standard non-containerized JBoss A-MQ, you would specify the password in the AMQ_HOME/opt/user.properties file. If no value is specified, a random password is generated.

AMQ_ADMIN_USERNAME

The user name used as an admin authentication to the broker. If no value is specified, a random user name is generated.

AMQ_ADMIN_PASSWORD

The password used for authentication to the broker. If no value is specified, a random password is generated.

MQ_PROTOCOL

Comma-separated list of the messaging protocols used by the broker. Available options are amqp, mqtt, openwire, and stomp. If left empty, all available protocols will be available. Please note that for integration of the image with Red Hat JBoss Enterprise Application Platform, the openwire protocol must be specified, while other protocols can be optionally specified as well.

MQ_QUEUES

Comma-separated list of queues available by default on the broker on its startup.

MQ_TOPICS

Comma-separated list of topics available by default on the broker on its startup.

AMQ_SECRET

The name of a secret containing SSL related files. If no value is specified, a random password is generated.

AMQ_TRUSTSTORE

The SSL trust store filename. If no value is specified, a random password is generated.

AMQ_KEYSTORE

The SSL key store filename. If no value is specified, a random password is generated.

Configuration Using S2I

Configuration of the JBoss A-MQ image can also be modified using the Source-to-image feature, described in full detail at S2I Requirements.

Custom A-MQ broker configuration can be specified by creating an openshift-activemq.xml file inside the git directory of your application’s Git project root. On each commit, the file will be copied to the conf directory in the A-MQ root and its contents used to configure the broker.

Configuring the JBoss A-MQ Persistent Image

Application Template Parameters

Basic configuration of the JBoss A-MQ Persistent xPaaS image is performed by specifying values of application template parameters. The following parameters can be configured:

AMQ_RELEASE

The JBoss A-MQ release version. This determines which JBoss A-MQ image will be used as a basis for the application. At the moment, only version 6.2 is available.

APPLICATION_NAME

The name of the application used internally in OpenShift. It is used in names of services, pods, and other objects within the application.

MQ_PROTOCOL

Comma-separated list of the messaging protocols used by the broker. Available options are amqp, mqtt, openwire, and stomp. If left empty, all available protocols will be available. Please note that for integration of the image with Red Hat JBoss Enterprise Application Platform, the openwire protocol must be specified, while other protocols can be optionally specified as well.

MQ_QUEUES

Comma-separated list of queues available by default on the broker on its startup.

MQ_TOPICS

Comma-separated list of topics available by default on the broker on its startup.

VOLUME_CAPACITY

The size of the persistent storage for database volumes.

MQ_USERNAME

The user name used for authentication to the broker. In a standard non-containerized JBoss A-MQ, you would specify the user name in the AMQ_HOME/opt/user.properties file. If no value is specified, a random user name is generated.

MQ_PASSWORD

The password used for authentication to the broker. In a standard non-containerized JBoss A-MQ, you would specify the password in the AMQ_HOME/opt/user.properties file. If no value is specified, a random password is generated.

AMQ_ADMIN_USERNAME

The user name used as an admin authentication to the broker. If no value is specified, a random user name is generated.

AMQ_ADMIN_PASSWORD

The password used for authentication to the broker. If no value is specified, a random password is generated.

AMQ_SECRET

The name of a secret containing SSL related files. If no value is specified, a random password is generated.

AMQ_TRUSTSTORE

The SSL trust store filename. If no value is specified, a random password is generated.

AMQ_KEYSTORE

The SSL key store filename. If no value is specified, a random password is generated.

For more information, see Using Persistent Volumes.

Security

Only SSL connections can connect from outside of the OpenShift instance, regardless of the protocol specified in the MQ_PROTOCOL property of the A-MQ application templates. The non-SSL version of the protocols can only be used inside the OpenShift instance.

For security reasons, using the default KeyStore and TrustStore generated by the system is discouraged. It is recommended to generate your own KeyStore and TrustStore and supply them to the image using the OpenShift secrets mechanism or S2I.

High-Availability and Scalability

The JBoss xPaaS A-MQ image is supported in two modes:

  1. A single A-MQ pod mapped to a Persistent Volume for message persistence. This mode provides message High Availability and guaranteed messaging but does not provide scalability.

  2. Multiple A-MQ pods using local message persistence (i.e. no mapped Persistent Volume). This mode provides scalability but does not provide message High Availability or guaranteed messaging.

Logging

In addition to viewing the OpenShift logs, you can troubleshoot a running JBoss A-MQ image by viewing the JBoss A-MQ logs that are outputted to the container’s console:

$ oc logs -f <pod_name> <container_name>

By default, the OpenShift JBoss A-MQ xPaaS image does not have a file log handler configured. Logs are only sent to the console.