You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Current »

Status

Current state: Accepted

Discussion thread: here

JIRA: Unable to render Jira issues macro, execution error.

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

So far it is not possible to inject additional configurations stored in environment variables. This topic came up in several projects and would be a useful feature to have as a Kafka config feature similar to file/directory providers, example configuration:

config.providers=env

config.providers.env.class=org.apache.kafka.common.config.provider.EnvVarConfigProvider

ssl.key.password=${env:KEY_PASSPHRASE}

Public Interfaces

A new implementation of the interface org.apache.kafka.common.config.provider.ConfigProvider will be added.

Affected components:

  • org/apache/kafka/common

Proposed Changes

A class EnvVarConfigProvider implementing the ConfigProvider interface will be added. Core functionality is to provide the map returned by System.getEnv() via the get methods of the ConfigProvider.

Example implementation: https://github.com/Schm1tz1/kafka-config-provider-env-var was already added to https://github.com/Schm1tz1/kafka/tree/kip-887

Compatibility, Deprecation, and Migration Plan

No compatibility issues as this will add a new separate functionality and configuration options.

Test Plan

No breakages expected. Integration testing with a client (producer/consumer) along with unit testing should be sufficient.

Rejected Alternatives

No currently known alternatives with a provider. One existing workaround that some implementations use are templates for configs and scripts to replace environment variables.

  • No labels