I agree that it is confusing. I don't have any immediate ideas for fixing the problem, but here are my observations:
It can also be confusing to new users that the Apache Pulsar docker image has a different bookkeeper.conf than the Apache Bookkeeper project. I found configuring the function worker particularly confusing when I first started working with it. Here is an example [0] of my confusion. The function worker config is a yml file instead of a conf file and it has a different way of providing arbitrary configuration. We do not have a standard way of naming configuration values. The "same" config can have different names in different components. Thanks, Michael [0] - https://github.com/apache/pulsar/pull/11468 On Tue, Dec 13, 2022 at 9:45 AM Yunze Xu <y...@streamnative.io.invalid> wrote: > > > they have to prepend PULSAR_PREFIX_ to the other options. > > Good point. It should be taken carefully. > > Thanks, > Yunze > > On Tue, Dec 13, 2022 at 10:46 PM Enrico Olivelli <eolive...@gmail.com> wrote: > > > > I agree that we should make it simpler. > > There are too many knobs that people shouldn't try to turn if they > > don't know what they are doing. > > > > Il giorno mar 13 dic 2022 alle ore 14:19 Kai Wang > > <wangkai744567...@gmail.com> ha scritto: > > > > > > +1, we can provide a minimal configuration file to users. It only > > > contains the required config and a few commonly used configs. > > > > > > The full configuration file can be named `broker.full.conf`, and it is > > > used to provide a reference for users. > > > > I am not sure that we need this file, we can use the documentation > > website to advertise about all the possibilities. > > > > I want to add a point: > > currently k8s users use the script that handles only the options > > explicitly written in broker.conf and proxy.conf. > > and they have to prepend PULSAR_PREFIX_ to the other options. > > > > We should make changes that are compatible with current k8s users, > > otherwise it will be a big pain. > > Maybe we have to change the script that applies the ENV to the .conf file > > > > > > Enrico > > > > > > > > Thanks, > > > Kai > > > On Dec 13, 2022 at 9:03 PM +0800, Yunze Xu > > > <y...@streamnative.io.invalid>, wrote: > > > > For example, when running a standalone (without TLS enabled), only the > > > > following configs are required: > > > > > > > > ```properties > > > > brokerServicePort=6650 > > > > webServicePort=8080 > > > > allowLoopback=true > > > > clusterName=standalone > > > > managedLedgerDefaultEnsembleSize=1 > > > > managedLedgerDefaultWriteQuorum=1 > > > > managedLedgerDefaultAckQuorum=1 > > > > ``` > > > > > > > > Actually only these two ports and `clusterName` are needed, other > > > > configurations can be configured with a default values for standalone. > > > > However, I found there are over 600 configurations in the > > > > `standalone.conf`: > > > > > > > > ```bash > > > > $ grep "^[^#]" conf/standalone.conf | wc -l > > > > 629 > > > > ``` > > > > > > > > Thanks, > > > > Yunze Xu > > > > > > > > On Tue, Dec 13, 2022 at 8:53 PM Yunze Xu <y...@streamnative.io> wrote: > > > > > > > > > > Hi all, > > > > > > > > > > As more people joined the development of Pulsar and more PIPs are > > > > > opened, I found the configurations became very large. At the moment > > > > > for commit 9917aac, there are 426 configuration items in broker.conf, > > > > > which is too many. > > > > > > > > > > ```bash > > > > > $ grep "^[^#]" conf/broker.conf | wc -l > > > > > 426 > > > > > ``` > > > > > > > > > > For beginners, finding the real useful configs from the `broker.conf` > > > > > is hard. For developers, it's also bad. For example, the IDE code > > > > > completion works significantly slower for a method of > > > > > `ServiceConfiguration` than other classes. > > > > > > > > > > Let's look at Apache Kafka, there are only 17 configs in the server > > > > > configuration file. > > > > > > > > > > ```bash > > > > > kafka_2.13-3.3.1$ grep "^[^#]" config/server.properties | wc -l > > > > > 17 > > > > > ``` > > > > > > > > > > I think this difference makes Pulsar far more complicated to customize > > > > > than Kafka, or than Pulsar should be. > > > > > > > > > > I have an idea that we can split `ServiceConfiguration` into different > > > > > configuration classes. Some configs that are not commonly used should > > > > > be moved into another configuration file. Just a brainstorm, does > > > > > anyone else have better ideas? > > > > > > > > > > Thanks, > > > > > Yunze