Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Current state: Under Discussion Accepted

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
JIRA:

JIRA:

Jira
serverASF JIRA
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-14376
here [Change the link from KAFKA-1 to your own ticket]

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


The provider will expose a configuration to restrict the environment variables accessing by the provider.

Name: allowlist.pattern
Type: String
Documentation: 
A pattern / regular expression that needs to match for environment variables to be used by this config provider
Default: .*

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

...