Kafka as Event Bus
How to setup BindPlane OP to use Kafka as its event bus
important
🚧 This feature is only available in BindPlane OP Enterprise. Learn more here.
Enable Kafka as the Event Bus
Kafka can be used as the event bus for BindPlane OP Enterprise and is a good option for distributed on-prem deployments.
Prerequisites
In order to use Kafka as the event bus we need to ensure a topic exists. The below command can be used to generate the topic, just replace <YOUR_KAFKA_SERVER>
with a broker address. Auto topic creation can also be used if configured in your Kafka environment.
note
Ordering is required for BindPlane OP events so the topic must only have 1 partition.
Configuration
In order to use Kafka as the event bus the eventBus.type
field must be set to kafka
and the eventBus.kafka
config must be filled out.
Here is an example of a full configuration using Kafka as the event bus.
Configuration Parameters
Parameter Name | Description | Required | Default Value |
---|---|---|---|
brokers | List of brokers to connect to. | :heavy-check-mark: | |
protocolVersion | The protocol version the Kafka brokers are using. Should be specified as MAJOR.MINOR.PATCH . This usually matches the version of the brokers. | :heavy-check-mark: | |
topic | The name of the topic to use. See Prerequisites. | :heavy-check-mark: | bindplane-op-message-bus |
authType | The type of authentication to use. Valid values are none , plainText , and sasl . | :heavy-check-mark: | none |
plainText | Authentication configuration when authType is plainText . See PlainText Auth. | ||
sasl | Authentication configuration when authType is sasl . See SASL Auth. | ||
enableTLS | Signals whether or not to use TLS. | false | |
tls | TLS Configuration when enableTLS is true . See TLS Configuration. |
PlainText Auth
Below are the configuration parameters when using PlainText authentication.
Parameter Name | Description | Required | Default Value |
---|---|---|---|
plainText.username | The username for authentication. | :heavy-check-mark: | |
plainText.password | The password for the user. | :heavy-check-mark: |
Here is an example configuration using PlainText authentication:
SASL Authentication
Below are the configuration parameters when using SASL authentication.
Parameter Name | Description | Required | Default Value |
---|---|---|---|
sasl.username | The username for authentication. | :heavy-check-mark: | |
sasl.password | The password for the user. | :heavy-check-mark: | |
sasl.mechanism | The mechanism by which to use SASL authentication. Valid values are plain , scramSHA256 , and scramSHA512 . | :heavy-check-mark: | plain |
sasl.version | The version of SASL authentication to use. Valid values are 0 or 1 . | :heavy-check-mark: | 0 |
Here is an example configuration using SASL authentication:
TLS Configuration
Below are the configuration parameters when using TLS.
Parameter Name | Description | Required | Default |
---|---|---|---|
tls.tlsCert | Path to the TLS certificate file. | ||
tls.tlsKey | Path to the TLS key file. | ||
tls.tlsCa | Path to the TLS certificate authority file. | ||
tls.tlsSkipVerify | If true use TLS without verification. | false |
Here is an example configuration using TLS: