Thanks to everyone for the feedback. Here's an attempt to summarize broad topics discussed.
*No negative roles* Everyone agree *Roles on/off by default?* Jason+(Ilan,Houston?): All roles to be on by default Gus,Ishan,Noble: Only those roles to be on by default that are needed for backcompat *Which branch to target?* Jan,Ishan,Noble: New feature to be added to 9x branch *Need for roles?* Tim: new concept of nodes unnecessary since everything that's proposed can be achieved using changes to new autoscaling framework and replica placement plugins. Ishan,Noble: A first class concept of roles is important so that this functionality is expected to work, irrespective of whatever custom placement plugins users deploy (since placement plugins don't support chaining). *Roles for collections?* Ilan: Role aware collections Ishan: This can be implemented separately later using node roles and placement plugins. *Configuration* Sysprops vs solr.xml+sysprops vs envvars: Shawn: Solr.xml and/or envvars Houston,Ilan: Sysprops and/or envvars Ishan,Noble: Sysprops Jan: SIP-11 *Outstanding issues* Shawn: Color of the bikeshed ;-) Please let me know if I missed something here. If there are no further strong objections, we can proceed to the implementation phase. There's already a draft/WIP PR in the works: https://github.com/apache/solr/pull/403 Thanks, Ishan On Fri, Nov 12, 2021 at 11:38 PM Gus Heck <gus.h...@gmail.com> wrote: > Yeah we should only be looking for and only be reporting (if we choose to > report to the user) a specific set of env variables. Anything else should > be ignored.Should be an enum or constants somewhere listing what solr cares > about, and we should ignore or be blind to anything else. > > Perhaps we'd like to have a ConfigParams (or whatever) enum that has > methods returning the env, sysprop, bin/solr arg, configFile and zkLocation > that can be used to provide each possible configuration option (for things > that are single value or short list, obviously an entire schema probably > would not be setable by sysprop :) )? > > The return type of those methods could be Optional<>() since we neither > have all of those for everything any time soon, and not all of them will > make sense in all cases. > > zkLocation is a bit tricky and nebulous since it's probably a zk path and > a JSON path or Xpath combined and relative to the chroot which itself is a > potential config param, some stuff to think through there. > > On Thu, Nov 11, 2021 at 3:49 PM Ilan Ginzburg <ilans...@gmail.com> wrote: > >> Houston made a very valid comment back then on the placement plugin >> support of environment variables (dropped as a consequence). >> >> >> https://issues.apache.org/jira/browse/SOLR-15019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17286680#comment-17286680 >> >> It could be possible to unintentionally leak node data that should be >> kept secret if Solr is allowed to freely access (random?) environment >> variables as part of configuration. >> >> Something to keep in mind. >> >> Ilan >> >> >> On Thu 11 Nov 2021 at 20:12, Eric Pugh <ep...@opensourceconnections.com> >> wrote: >> >>> Agreed! >>> >>> I’ve noticed that in the Play Framework, you can configure everything >>> via a property based configuration file, however it makes it easy to >>> override the property file via another one, or via an ENV variables: >>> >>> db.default.username="smui" >>> db.default.username=${?SMUI_DB_USER} >>> >>> Which turns out to be very liberating! >>> >>> >>> On Nov 11, 2021, at 2:09 PM, Jan Høydahl <jan....@cominvent.com> wrote: >>> >>> +1 to a roundup of env and props across the board. I think SIP 11 is on >>> the track of something. But can be done independent of this. >>> >>> Jan Høydahl >>> >>> 11. nov. 2021 kl. 17:44 skrev Gus Heck <gus.h...@gmail.com>: >>> >>> >>> I guess all I mean is that it shouldn't be only sysprops. Enabling >>> sysprops, Env vars etc seems fine but we need to clearly document >>> precedence among any/all options. What is convenient varies from case to >>> case and in a perfect world what I'd like to see is full support across >>> each style (files, zk, props, env vars) with consistent and obvious naming >>> and well documented resolution order. >>> >>> What I don't like is a little bit of env vars for some stuff, props for >>> others, files for yet more stuff and some unclear aggregation of that >>> showing up in zk... (or maybe some of it not showing up anywhere code could >>> check it...) >>> >>> On Thu, Nov 11, 2021 at 11:07 AM Houston Putman <houstonput...@gmail.com> >>> wrote: >>> >>>> I agree with Jan, when thinking about making Solr as cloud friendly as >>>> possible EnvVars and (to a lesser extent) sysProps are much preferable than >>>> having a setting in the solr.xml. >>>> This is because it's easier to customize EnvVars per-node, while >>>> customizing a config file is much harder, as those tend to be static and >>>> shared across a whole environment. >>>> >>>> Also thanks for linking that SIP Jan, very applicable. >>>> >>>> - Houston >>>> >>>> On Fri, Nov 5, 2021 at 5:19 PM Jan Høydahl <jan....@cominvent.com> >>>> wrote: >>>> >>>>> Thinking of these roles as labels, I think sysProps and envVars are >>>>> the two universal methods, and nothing wrong with that. >>>>> I keep trying to think cloud native and container, so having excellent >>>>> 1st class support for env.vars for such configs is a priority to me. >>>>> Most tools, CI-environments etc have built-in support for env.vars, >>>>> and so it makes sense to me. >>>>> >>>>> See >>>>> https://cwiki.apache.org/confluence/display/SOLR/SIP-11+Uniform+cluster-level+configuration+API >>>>> for some interesting ideas around cluster/node level config. >>>>> >>>>> See >>>>> >>>>> 5. nov. 2021 kl. 15:04 skrev Gus Heck <gus.h...@gmail.com>: >>>>> >>>>> Agree better to something other than sysprops. an arg in the start >>>>> script would be friendlier than -D props which generally are irritatingly >>>>> verbose and expose too much implementation. >>>>> >>>>> We lack a config file per level. solr.xml does double duty as global >>>>> and per-node depending on how it's used (zk or filesystem). >>>>> >>>>> Config file names are confusing too. Our file names are legacy of >>>>> non-cloud mode I think, and we really should at some point (10.x?) rework >>>>> configs to be cluster.xml, node.xml, collection.xml (formerly >>>>> solrconfig.xml) and schema.xml (and maybe support something other than >>>>> xml, >>>>> but that's not nearly as important as clarity in naming, and having >>>>> features) >>>>> >>>>> But this is all straying way off topic and should have its own SIP if >>>>> someone seems to have time for it :) >>>>> >>>>> On Thu, Nov 4, 2021 at 6:07 PM Shawn Heisey <elyog...@elyograg.org> >>>>> wrote: >>>>> >>>>>> On 11/4/21 2:51 PM, Noble Paul wrote: >>>>>> > The SIP can be boiled down to the following >>>>>> > >>>>>> > * *Tag a node with a label (role) using a system property* >>>>>> > ** Use the placement plugin to whitelist/block list certain nodes* >>>>>> > ** Publish the roles through an API* >>>>>> >>>>>> >>>>>> In general, for Solr, do we like the idea of having things controlled >>>>>> by >>>>>> system properties? >>>>>> >>>>>> I would think solr.xml would be the right place to configure this, >>>>>> except that people can and probably do put solr.xml in zookeeper, >>>>>> which >>>>>> would mean every system would have the SAME solr.xml, and we're back >>>>>> to >>>>>> system properties as a way to customize solr.xml on each system. >>>>>> >>>>>> I have never used system properties to configure Solr. When I >>>>>> customize >>>>>> the config, I will often remove property substitutions from it and go >>>>>> with explicit settings. My general opinion about system properties >>>>>> is >>>>>> that if they're going to be used, they should DIRECTLY configure the >>>>>> application, not be sent in via property substitution in a config >>>>>> file. >>>>>> I've never liked the way our default configs use that paradigm. It >>>>>> means you cannot look at the config and know exactly how things are >>>>>> configured, without finding out whether system properties have been >>>>>> set. >>>>>> >>>>>> What color do others think that bikeshed should be painted? >>>>>> >>>>>> Thanks, >>>>>> Shawn >>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org >>>>>> For additional commands, e-mail: dev-h...@solr.apache.org >>>>>> >>>>>> >>>>> >>>>> -- >>>>> http://www.needhamsoftware.com (work) >>>>> http://www.the111shift.com (play) >>>>> >>>>> >>>>> >>> >>> -- >>> http://www.needhamsoftware.com (work) >>> http://www.the111shift.com (play) >>> >>> >>> _______________________ >>> *Eric Pugh **| *Founder & CEO | OpenSource Connections, LLC | 434.466.1467 >>> | http://www.opensourceconnections.com | My Free/Busy >>> <http://tinyurl.com/eric-cal> >>> Co-Author: Apache Solr Enterprise Search Server, 3rd Ed >>> <https://www.packtpub.com/big-data-and-business-intelligence/apache-solr-enterprise-search-server-third-edition-raw> >>> This e-mail and all contents, including attachments, is considered to be >>> Company Confidential unless explicitly stated otherwise, regardless >>> of whether attachments are marked as such. >>> >>> > > -- > http://www.needhamsoftware.com (work) > http://www.the111shift.com (play) >