Skip to main content
Quick navigation

Yaml Configuration

This page describes the valid yaml file configuration options for the opensource Conduktor Gateway (Enterprise documentation is in progress).

To configure the Enterprise Conduktor Gateway: refer to the Environment Variables.

Kafka Connection Configurations

kafkaSelector:
type: file
path: the path to the file containing properties to connect gateway to the Kafka cluster

Example:

kafkaSelector:
type: file
path: gateway-core/config/kafka.config

Interceptors

- name: Unique name for this instance of the interceptor
pluginClass: Fully qualified class name of the interceptor plugin
priority: Priority for running this intercetpor. 0 is highest priority (run first), 2^32 is lowest. If two interceptors have the same priority then the running order is indeterminate.
config: Configuration for this interceptor

Example:

- name: myLoggingInterceptor
pluginClass: io.conduktor.example.loggerinterceptor.LoggerInterceptorPlugin
priority: 100
config:
- key: "loggingStyle"
value: "obiWan"

Host/Port Configurations

hostPortConfiguration:
gatewayBindHost: the host to bind on
gatewayHost: the host name of the gateway to be returned to clients
portRange: a port range that gateway can assign to brokers

Example:

hostPortConfiguration:
gatewayBindHost: 0.0.0.0
gatewayHost: localhost
portRange: 6969:6975

Authentication Configurations

authenticationConfig:
authenticatorType: the authentication type for clients connecting to the gateway. Value can be one of:
NONE (unencrypted connection, no userid/password authentication)
SSL (tls encrypted connection, no userid/password authentication
SASL_PLAINTEXT (unencrypted connection, userid/password authentication)
SASL_SSL (tls encrypted connection, userid/password authentication)
sslConfig: required if SSL is specified in authenticatorType
updateContextIntervalMinutes: the duration in minutes between checks for for SSL context changes (minimum 1)
keyStore:
keyStorePath: path to a SSL keystore
keyStorePassword: the keystore password
keyPassword: the key password
keyStoreType: the keystore type (jks)
updateIntervalMsecs: the interval to check for keystore changes e.g. 600000
userPool: A list of user name and password pairs for users connecting to the gateway. Required if SASL is set in authenticatorType
- username: The username
password: The password for this username

Example:

authenticationConfig:
authenticatorType: SASL_SSL
sslConfig:
updateContextIntervalMinutes: 60
keyStore:
keyStorePath: config/kafka-gateway.keystore.jks
keyStorePassword: keyStorePassw0rd
keyPassword: keyPassw0rd
keyStoreType: jks
updateIntervalMsecs: 600000
userPool:
- username: alice
password: passw0rd
- unsername: bob
password: alsoPassw0rd

Open Source Security describes the security considerations and settings in more detail.

Thread Configurations

threadConfig:
downStreamThread: the thread pool size for handling downstream connections (connections from Kafka clients)
upstream:
numberOfThread: the thread pool size for handling upstream connections (connections to Kafka brokers)
maxPendingTask: the maximum pending upstream tasks before new tasks will be rejected

Example:

threadConfig:
downStreamThread: 2
upstream:
numberOfThread: 2
maxPendingTask: 2048

Upstream Connection Configurations

upstreamConnectionConfig:
numOfConnection: the number of connections made to each upstream Kafka broker
maxIdleTimeMs: the maximum time a connection can remain idle before it will be reaped

Example:

upstreamConnectionConfig:
numOfConnection: 10
maxIdleTimeMs: 200000

Request Handling Configurations

maxResponseLatency: the maximum time gateway will wait for a response from Kafka
inFlightRequestExpiryMs: the maximum total time to process a request in gateway before it will be rejected

Example:

maxResponseLatency: 3000
inFlightRequestExpiryMs: 30000