This proposes deprecating the kafka-env-var-config-provider project. It also proposes a timeline to archive the project and stop including the JAR in Strimzi releases.
In proposal 30, we added an implementation of the ConfigProvider interface of Apache Kafka that allows retrieving configuration values at runtime from environment variables. This implementation lives in the kafka-env-var-config-provider
project. This is especially useful to safely configure sensitive settings in virtualized/containerized environments like Kubernetes.
For example, a Kafka client can use this provider with specified environment variables:
config.providers=env
config.providers.env.class=io.strimzi.kafka.EnvVarConfigProvider
option1=${env:FIRST_ENV_VAR}
Since Apache Kafka 3.5.0, there's a built-in ConfigProvider
implementation that works with environment variables. It was added via KIP-887. It provides the same functionality as Strimzi's implementation.
Example usage:
config.providers=env
config.providers.env.class=org.apache.kafka.common.config.provider.EnvVarConfigProvider
option1=${env:FIRST_ENV_VAR}
Once Strimzi only supports Kafka versions >= 3.5.0, we should:
- deprecate the kafka-env-var-config-provider project
- update all references to
io.strimzi.kafka.EnvVarConfigProvider
byorg.apache.kafka.common.config.provider.EnvVarConfigProvider
. This includes code, examples, documentation, etc
After 4 Strimzi releases have happened or Strimzi reached 1.0.0 (whichever comes first), we will archive the kafka-env-var-config-provider
project and stop including the JAR in Strimzi releases.
This impacts:
- kafka-env-var-config-provider: To be deprecated and archived
- strimzi-kafka-operator: Update all references to
io.strimzi.kafka.EnvVarConfigProvider
to use Kafka's implementation
Users relying on Strimzi's EnvVarConfigProvider
will have to migrate to Kafka's implementation.
Do nothing and keep maintaining our own environment variable ConfigProvider implementation.