Pular para o conteúdo

AMQP configuration

Use this page to understand the AMQP fields that control RabbitMQ connectivity for Ripple Custody. The examples show one possible configuration shape; your broker topology, hostnames, credentials, and TLS settings depend on your deployment.

This page applies to on-premise deployments only. For current defaults and the full supported schema, use the configuration packaged with your release.

What this config controls

Ripple Custody uses AMQP for message-based communication between components. There are two AMQP configuration areas:

  • External AMQP: Customer-managed RabbitMQ. External AMQP is required for event processing and can optionally be used for core components.
  • Internal AMQP: RabbitMQ deployed with Ripple Custody. Internal AMQP is enabled by default for core components and is never used for event processing.

Core components can use either internal AMQP or external AMQP, but not both at the same time.

Configuration fields

External AMQP

Location: harmonize.externalAmqp

ParameterTypeDefaultDescription
enabledForCoreComponentsboolfalseRoute core component AMQP traffic through the external broker. Mutually exclusive with internalAmqp.enabledForCoreComponents.
hoststringnilExternal AMQP host address.
portintnilExternal AMQP port. Common values are 5672 or 5671 for TLS.
usernamestringnilUsername for authentication.
passwordstring""Password for authentication.
vhoststringnilVirtual host name.
sslEnabledboolnilEnable SSL/TLS connection.
authTypestring"plain-authentication"Authentication type.
amqpProtocolVersionstring"v1"Protocol version. Possible values: v1, v09.
topicNamestringnilTopic name for messaging.
existingSecretstringnilReference to an existing Kubernetes secret.

Internal AMQP

Location: harmonize.internalAmqp

ParameterTypeDefaultDescription
enabledForCoreComponentsbooltrueEnable internal AMQP for core components. Mutually exclusive with externalAmqp.enabledForCoreComponents.
hoststring<chart-fullname>Internal RabbitMQ host.
portint5672RabbitMQ port.
usernamestring"user"RabbitMQ username.
vhoststring"harmonize"RabbitMQ virtual host.
sslEnabledbooltrueEnable SSL for internal RabbitMQ.
amqpProtocolVersionstring"v09"Protocol version. Internal AMQP supports v09.
existingSecretstring""Reference to an existing Kubernetes secret.

Constraints and relationships

  • harmonize.externalAmqp.enabledForCoreComponents and harmonize.internalAmqp.enabledForCoreComponents are mutually exclusive.
  • Event processing requires external AMQP.
  • Internal AMQP is not used for event processing.
  • Core components use internal AMQP unless you route them to external AMQP.
  • External AMQP supports v1 and v09; internal AMQP uses v09.

Secret format

When you use existingSecret for either internal or external AMQP, the secret must contain the expected password and connection URI keys:

apiVersion: v1
kind: Secret
metadata:
  name: amqp-credentials
type: Opaque
stringData:
  rabbitmq-password: "<password>"
  AMQP_URI: "amqp://<username>:<password>@<host>:<port>/<vhost>"

Example

This example shows internal AMQP for core components and external AMQP for event processing:

harmonize:
  internalAmqp:
    enabledForCoreComponents: true
    username: "user"
    vhost: "harmonize"
    sslEnabled: true

  externalAmqp:
    enabledForCoreComponents: false
    host: "events-rabbitmq.example.com"
    port: 5671
    username: "events"
    password: "SECURE_PASSWORD"
    vhost: "events"
    sslEnabled: true
    amqpProtocolVersion: "v1"

In this shape, core components communicate through internal AMQP. Event processing uses the external broker.