Skip to content

Latest commit

 

History

History
83 lines (72 loc) · 4.83 KB

README.md

File metadata and controls

83 lines (72 loc) · 4.83 KB

RabbitMQ Cluster in Openshift

This demonstration describes how to create a RabbitMQ cluster in Openshift.

RabbitMQ

Requirements

  1. OpenShift Container Platform v3.6 or newer (we're using this feature).

  2. This example is configured to use a PersistentVolume for storing cluster and message data. Thus it is a requirement that Openshift is configured to support Persistent Volumes and that there are PVs with at least ReadWriteOnce (RWO) access available.

  3. This example is also using the OpenShift Applier to build and deploy RabbitMQ. As a result you'll need to have ansible installed.

OpenShift objects

The openshift-applier will create the following OpenShift objects:

Parameters

NAME DESCRIPTION VALUE
APPLICATION_NAME The name for the application rabbitmq
CONTEXT_DIR Path within Git project to build rabbitmq
ERLANG_VERSION Erlang version to use 22.1.4
FROM_IMAGE Docker image to build from ubi:7.7
RABBITMQ_VERSION RabbitMQ version to build 3.8.0
SOURCE_REPOSITORY_REF Git branch/tag reference master
SOURCE_REPOSITORY_URL Git source URI for application https://github.com/redhat-cop/containers-quickstarts

ERLANG_VERSION& RABBITMQ_VERSION are passed on to the buildconfig thus these versions can be controlled in the build. This is the equivivalent of docker build --build-arg ERLANG_VERSION=19.3.6` to a docker build.

Start build and deploy

  1. Clone this repository: git clone https://github.com/redhat-cop/containers-quickstarts
  2. cd containers-quickstarts/rabbitmq
  3. Run ansible-galaxy install -r requirements.yml --roles-path=roles
  4. Login to Openshift: oc login -u <username> https://master.example.com:8443
  5. Run openshift-applier: ansible-playbook -i .applier/ roles/openshift-applier/playbooks/openshift-cluster-seed.yml

Verify your pods are running

$ oc get pod -n rabbitmq
NAME               READY     STATUS      RESTARTS   AGE
rabbitmq-0         1/1       Running     0          1m
rabbitmq-1         1/1       Running     0          1m
rabbitmq-1-build   0/1       Completed   0          1m
rabbitmq-2         1/1       Running     0          1m

Verify your RabbitMQ Cluster

$ oc rsh rabbitmq-1 rabbitmqctl cluster_status --formatter json | tail -1 | jq '{"alarms": .alarms,"running_nodes": .running_nodes,"versions": .versions}'
{
  "alarms": [],
  "running_nodes": [
    "[email protected]",
    "[email protected]",
    "[email protected]"
  ],
  "versions": {
    "[email protected]": {
      "erlang_version": "22.1.4",
      "rabbitmq_version": "3.8.0"
    },
    "[email protected]": {
      "erlang_version": "22.1.4",
      "rabbitmq_version": "3.8.0"
    },
    "[email protected]": {
      "erlang_version": "22.1.4",
      "rabbitmq_version": "3.8.0"
    }
  }
}

Tear everything down

oc delete project rabbitmq