I agree with this.  I think we'd be better off without the --delete-config-file 
option.  It just seems confusing.

best,
Colin

On Wed, Mar 25, 2020, at 03:48, Rajini Sivaram wrote:
> Hi Aneel,
> 
> Thanks for the KIP. As configurations get more complex, the ability to
> provide compound configs in a file is really useful. I am not convinced
> about the `--delete-config-file` option though. I am not familiar with the
> Kubernetes case, but I guess if you create an entity with a file, it is
> reasonable to delete the entity with the same config file, even though some
> configs of the entity may have changed. But like their non-file
> counterparts, `--add-config-file` and `--delete-config-file` aren't
> creating or deleting anything, they are both updating configs of an entity.
> To be precise, they are updating config overrides, one adds an element to a
> hierarachy and the other removes an element from a hierarchy. The current
> proposal allows you to update configs of entityA using fileA and then
> delete configs of entityB using fileA, with totally unintended consequences
> since config values are not validated. Since configs are like maps, it is
> confusing if delete with value doesn't have the semantics of remove(key,
> value). And the option to specify both `--delete-config` and `
> --delete-config-file` just makes this option inconsistent. Do we really
> need a `--delete-config-file` option?
> 
> Regards,
> 
> Rajini
> 
> On Wed, Mar 25, 2020 at 8:25 AM Kamal Chandraprakash <
> kamal.chandraprak...@gmail.com> wrote:
> 
> > STDIN wasn't standard practice in other scripts like
> > kafka-console-consumer.sh, kafka-console-producer.sh and kafka-acls.sh
> > in which the props file is accepted via consumer.config / producer.config /
> > command-config parameter.
> >
> > Shouldn't we have to maintain the uniformity across scripts?
> >
> > On Mon, Mar 16, 2020 at 4:13 PM David Jacot <dja...@confluent.io> wrote:
> >
> > > Hi Aneel,
> > >
> > > Thanks for the updated KIP. I have made a second pass over it and the
> > > KIP looks good to me.
> > >
> > > Best,
> > > David
> > >
> > > On Tue, Mar 10, 2020 at 9:39 PM Aneel Nazareth <an...@confluent.io>
> > wrote:
> > >
> > > > After reading a bit more about it in the Kubernetes case, I think it's
> > > > reasonable to do this and be explicit that we're ignoring the value,
> > > > just deleting all keys that appear in the file.
> > > >
> > > > I've updated the KIP wiki page to reflect that:
> > > >
> > > >
> > >
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-574%3A+CLI+Dynamic+Configuration+with+file+input
> > > >
> > > > And updated my sample PR:
> > > > https://github.com/apache/kafka/pull/8184
> > > >
> > > > If there are no further comments, I'll request a vote in a few days.
> > > >
> > > > Thanks for the feedback!
> > > >
> > > > On Mon, Mar 9, 2020 at 1:24 PM Aneel Nazareth <an...@confluent.io>
> > > wrote:
> > > > >
> > > > > Hi David,
> > > > >
> > > > > Is the expected behavior that the keys are deleted without checking
> > the
> > > > values?
> > > > >
> > > > > Let's say I had this file new.properties:
> > > > > a=1
> > > > > b=2
> > > > >
> > > > > And ran:
> > > > >
> > > > > bin/kafka-configs --bootstrap-server localhost:9092 \
> > > > >   --entity-type brokers --entity-default \
> > > > >   --alter --add-config-file new.properties
> > > > >
> > > > > It seems clear what should happen if I run this immediately:
> > > > >
> > > > > bin/kafka-configs --bootstrap-server localhost:9092 \
> > > > >   --entity-type brokers --entity-default \
> > > > >   --alter --delete-config-file new.properties
> > > > >
> > > > > (Namely that both a and b would now have no values in the config)
> > > > >
> > > > > But what if this were run in-between:
> > > > >
> > > > > bin/kafka-configs --bootstrap-server localhost:9092 \
> > > > >   --entity-type brokers --entity-default \
> > > > >   --alter --add-config a=3
> > > > >
> > > > > Would it be surprising if the key/value pair a=3 was deleted, even
> > > > > though the config that is in the file is a=1? Or would that be
> > > > > expected?
> > > > >
> > > > > On Mon, Mar 9, 2020 at 1:02 PM David Jacot <dja...@confluent.io>
> > > wrote:
> > > > > >
> > > > > > Hi Colin,
> > > > > >
> > > > > > Yes, you're right. This is weird but convenient because you don't
> > > have
> > > > to
> > > > > > duplicate
> > > > > > the "keys". I was thinking about the kubernetes API which allows to
> > > > create
> > > > > > a Pod
> > > > > > based on a file and allows to delete it as well with the same
> > file. I
> > > > have
> > > > > > always found
> > > > > > this convenient, especially when doing local tests.
> > > > > >
> > > > > > Best,
> > > > > > David
> > > > > >
> > > > > > On Mon, Mar 9, 2020 at 6:35 PM Colin McCabe <cmcc...@apache.org>
> > > > wrote:
> > > > > >
> > > > > > > Hi Aneel,
> > > > > > >
> > > > > > > Thanks for the KIP.  I like the idea.
> > > > > > >
> > > > > > > You mention that "input from STDIN can be used instead of a file
> > on
> > > > > > > disk."  The example given in the KIP seems to suggest that the
> > > > command
> > > > > > > defaults to reading from STDIN if no argument is given to
> > > > --add-config-file.
> > > > > > >
> > > > > > > I would argue against this particular command-line pattern.  From
> > > the
> > > > > > > user's point of view, if they mess up and forget to supply an
> > > > argument, or
> > > > > > > for some reason the parser doesn't treat something like an
> > > argument,
> > > > the
> > > > > > > program will appear to hang in a confusing way.
> > > > > > >
> > > > > > > Instead, it would be better to follow the traditional UNIX
> > pattern
> > > > where a
> > > > > > > dash indicates that STDIN should be read.  So "--add-config-file
> > -"
> > > > would
> > > > > > > indicate that the program should read form STDIN.  This would be
> > > > difficult
> > > > > > > to trigger accidentally, and more in line with the traditional
> > > > conventions.
> > > > > > >
> > > > > > > On Mon, Mar 9, 2020, at 08:47, David Jacot wrote:
> > > > > > > > I wonder if we should also add a `--delete-config-file` as a
> > > > counterpart
> > > > > > > of
> > > > > > > > `--add-config-file`. It would be a bit weird to use a
> > properties
> > > > file in
> > > > > > > > this case as the values are not necessary but it may be handy
> > to
> > > > have the
> > > > > > > > possibility to remove the configurations which have been set.
> > > Have
> > > > you
> > > > > > > > considered this?
> > > > > > >
> > > > > > > Hi David,
> > > > > > >
> > > > > > > That's an interesting idea.  However, I think it might be
> > confusing
> > > > to
> > > > > > > users to supply a file, and then have the values supplied in that
> > > > file be
> > > > > > > ignored.  Is there really a case where we need to do this (as
> > > > opposed to
> > > > > > > creating a file with blank values, or just passing the keys to
> > > > > > > --delete-config?
> > > > > > >
> > > > > > > best,
> > > > > > > Colin
> > > > > > >
> > > > > > > >
> > > > > > > > David
> > > > > > > >
> > > > > > > > On Thu, Feb 27, 2020 at 11:15 PM Aneel Nazareth <
> > > > an...@confluent.io>
> > > > > > > wrote:
> > > > > > > >
> > > > > > > > > I've created a PR for a potential implementation of this:
> > > > > > > > > https://github.com/apache/kafka/pull/8184 if we decide to go
> > > > ahead
> > > > > > > with
> > > > > > > > > this KIP.
> > > > > > > > >
> > > > > > > > > On Wed, Feb 26, 2020 at 12:36 PM Aneel Nazareth <
> > > > an...@confluent.io>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > >
> > > > > > > > > > I'd like to discuss adding a new argument to
> > kafka-configs.sh
> > > > > > > > > > (ConfigCommand.scala).
> > > > > > > > > >
> > > > > > > > > > Recently I've been working on some things that require
> > > complex
> > > > > > > > > > configurations. I've chosen to represent them as JSON
> > strings
> > > > in my
> > > > > > > > > > server.properties. This works well, and I'm able to update
> > > the
> > > > > > > > > > configurations by editing server.properties and restarting
> > > the
> > > > > > > broker.
> > > > > > > > > I've
> > > > > > > > > > added the ability to dynamically configure them, and that
> > > > works well
> > > > > > > > > using
> > > > > > > > > > the AdminClient. However, when I try to update these
> > > > configurations
> > > > > > > using
> > > > > > > > > > kafka-configs.sh, I run into a problem. My configurations
> > > > contain
> > > > > > > commas,
> > > > > > > > > > and kafka-configs.sh tries to break them up into key/value
> > > > pairs at
> > > > > > > the
> > > > > > > > > > comma boundary.
> > > > > > > > > >
> > > > > > > > > > I'd like to enable setting these configurations from the
> > > > command
> > > > > > > line, so
> > > > > > > > > > I'm proposing that we add a new option to kafka-configs.sh
> > > that
> > > > > > > takes a
> > > > > > > > > > properties file.
> > > > > > > > > >
> > > > > > > > > > I've created a KIP for this idea:
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > >
> > >
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-574%3A+CLI+Dynamic+Configuration+with+file+input
> > > > > > > > > > And a JIRA:
> > https://issues.apache.org/jira/browse/KAFKA-9612
> > > > > > > > > >
> > > > > > > > > > I'd appreciate your feedback on the proposal.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Aneel
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > >
> > >
> >
>

Reply via email to