RabbitMQ installation

Document version: 250. Automatically generated.

๐Ÿ“˜

RabbitMQ is an open-source message-broker software (sometimes called message-oriented middleware)

It was originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol (STOMP), MQ Telemetry Transport (MQTT), and other protocols.

RabbitMQ 3.8 is used for asynchronous communication between applications.

Prerequisites

  • Kubernetes cluster
  • Helm (version 3 or higher)
  • Access to Automate HELM Charts repository charts.sentione.com is granted
  • Access to harbor-vm-proxy.sentione.com docker images repository is granted
  • Local-path-provisioner (this is optional, but highly reccomended for data persistence. It may also be replaced with other dynamic PV provisioner like OpenEBS)

Steps

Add helm repository

To add the helm repository, use:

helm repo add sentione-hub https://charts.sentione.com/repository/helm --username USERNAME --password PASSWORD

and fetch repository data:

helm repo update

Container images repo access

The chart is based on images available on harbor-vm-proxy.sentione.com which requires authorization. Secret should be created by;

kubectl create secret \
docker-registry sec-harbor-vm-proxy.sentione.com \
--docker-server=<PRIVATE_REPO_ADDRESS> \
--docker-username=<USER> \
--docker-password=<PASSOWRD> \
--docker-email=<EMAIL> \
--namespace <NAMESPACE>

Values preparation

Before deploying the chart prepare values.yaml file, according to this minimal template:

auth:
  erlangCookie: randomcookie
  password: password
  username: rabbit
clusterDomain: cluster.local
global:
  storageClass: local-path
image:
  repository: third-party/bitnami/rabbitmq
  tag: 3.8.35
persistence:
  enabled: true
  size: 8Gi
plugins: rabbitmq_management rabbitmq_peer_discovery_k8s rabbitmq_shovel rabbitmq_shovel_management
  rabbitmq_prometheus
replicaCount: 3
ulimitNofiles: 65535
useCertManager: false

Redis cluster size
The default deployment creates a 3-node cluster, this may be changed by using:

replicaCount: n

n must be uneven number

Data persistence

RabbitMQ is used for asynchronous communication between applications.
We recommend not turning off persistence as it can cause data loss.

Deployment

In order to deploy the chart run, while replacing $RABBITMQ_NAMESPACE with the desired namespace in Kubernetes:

helm -n $RABBITMQ_NAMESPACE upgrade --install -n rabbitmq rabbitmq sentione-hub/rabbitmq -f ./values.yaml --version 11.4.0