osp-rabbitmq

Overview

RabbitMQ is the messaging broker used by OnSphere. It is mandatory to have communication between modules and so mandatory for OnSphere usage.

List of configuration files

Filename

Short description

Format

Documentation

module.service

Each service is described in its own file and then assembled

yaml

See the Swarm administration or Official documentation

rabbitmq.conf

The configuration of the module

conf

See RabbitMQ documentation

Warning

The following field define on rabbitmq.conf are mandatory for OnSphere:

  • default_user : Must be swissdotnet

  • default_pass : Changed by the dispatcher

  • ssl_options : Must point to the certificate

  • auth_mechanisms : External is needed for the certificate auth

  • ssl_cert_login_from : Use to identify the module

Hint

The following option need to be customize depending on your node configuration:

  • disk_free_limit.absolute : The minimum free space remaining before blocking the message processing

  • total_memory_available_override_value : The real ram size allowed to use. When running on a container RabbitMQ might not be able to determine the RAM usable.

    When using a resource limit on the container this value must be set to the same value.

  • vm_memory_high_watermark.relative : The maximum allowed ram usage before blocking the connection. Set at 80% by default.

A invalid configuration of these value can lead to RabbitMQ refusing to process message and request.

You can diagnose it with One or more module start but hang.

Environment Variables

All modules env variables

Variable Name

Default Value

Usage

PROMETHEUS_PORT

9100

The internal port used for Openmetrics exposition.

DISPATCHER_HOST

modules_configuration-dispatcher_main

The hostname on which the modules can fetch the configuration.

DISPATCHER_PORT

10000

The port used by the module to listen for configuration request.

USE_LEGACY_RESTART

Not set

When this flag is enabled, the container will terminate itself whenever a restart is needed (for example, after a configuration change). This is the legacy restart (before version 2.1.0). Otherwise, the system will simply restart the process running inside the container.

CUSTOM_JVM_OPTIONS

Not set

Allow to inject JVM options. See Configuration changes for more information.

ALLOW_VERSION_MISMATCH

Not set

Allow to disable the version check when a new configuration is published to a module. By default, a module will not be restarted if its configuration does not match its version.

Dedicated variables

See docker official documentation