Peter Horvath created KAFKA-6851:
------------------------------------

             Summary: Kafka CLI commands should support specifying the servers 
in environment variables
                 Key: KAFKA-6851
                 URL: https://issues.apache.org/jira/browse/KAFKA-6851
             Project: Kafka
          Issue Type: New Feature
          Components: clients
    Affects Versions: 1.0.1, 1.1.0, 1.0.0
         Environment: ALL
            Reporter: Peter Horvath


Currently, different Kafka CLI commands require specifying different servers as 
argument (--broker-list, --bootstrap-server and --zookeeper).

 

This is kind of tedious as different CLI commands require specifying different 
servers, which is especially painful if the host names are *long*, and *only 
slightly different* (e.g. naming scheme for AWS: 
ec2-12-34-56-2.region-x.compute.amazonaws.com). 

 
I know I could simply export shell variables for each type of endpoint and 
refer that in the command, but that still only eases the pain:
export 
KAFKA_ZK=[ec2-12-34-56-2.region-x.compute.amazonaws.com|http://ec2-12-34-56-2.region-x.compute.amazonaws.com/]
bin/kafka-topics.sh --list --zookeeper ${KAFKA_ZK}
 
According to [some conversation on the Kafka mailing 
list|http://mail-archives.apache.org/mod_mbox/kafka-users/201804.mbox/%3cca+usspag21mwufr146_hlvdyftuzjm4zfn1c5tnfjugjxag...@mail.gmail.com%3E]
 (started by me), people usually resort to some kind of non-standardised 
work-arounds (see replies to thread _Using Kafka CLI without specifying the 
URLs every single time?_)
 
 
When dealing with Kafka client CLI, it would be huge relief / productivity 
boost if the CLI could pick up the servers from the user's environment 
variables.

For example, instead of using --broker-list, --bootstrap-server or --zookeeper, 
the Kafka client commands could check if there is an environment variable and 
use that in case the argument is missing. (allowing the environment-defined 
server to still be overridden with an *explicit* argument).

 

I propose introducing some kind of specific environment variables that would 
allow the user to omit the explicit specification of the --broker-list, 
--bootstrap-server and --zookeeper argument every single time a CLI command is 
called. This would make using Kafka CLI much easier. 

 
||CLI argument||Proposed environment variable name||
|--broker-list|KAFKA_CLIENT_BROKER_LIST|
|--bootstrap-server|KAFKA_CLIENT_BOOTSTRAP_SERVER|
|--zookeeper|KAFKA_CLIENT_ZOOKEEPER|

It should be possible to implement this solely at the wrapper shell script 
level, with some checks being done that test if the variable is defined or not.

 

 

 

 

 

 

 
 
 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to