daniellavoie commented on issue #5580:
URL: 
https://github.com/apache/incubator-pinot/issues/5580#issuecomment-645540941


   I like the idea of providing a flexible, simplified and unified startup 
experience regardless of the phase type. 
   
   I have a simple additional requests which might be worth a dedicated topic 
on its own. Yet I'll mention it here because it might influence the design.
   
   A `<service>.config` file will indeed simplify the configuration management 
for documentation and code maintenance. Right now, args needs to be declared in 
the CLI options class as well as in a Commons Configuration properties class. I 
would like to suggest that any properties loaded from `<service>.config` could 
be also passed as environment variable and CLI argument.
   
   Config files are great for packaging config profiles that you ship with your 
deployment but are not friendly to Cloud Native deployments. For Docker and 
Kubernetes, they would require declaring and mounting volumes when a simple ENV 
VAR or CLI arg would have done the job. Pinot uses Apache Commons Configuration 
which supports Composite configuration properties classes that allows to define 
a hierarchy of sources for configuration. Done right, I think there is an 
importunity to support pluggable configurations provider (could even support 
config providers such as Vault or cloud KSM for instance).
   
   In short, providing support and quick start examples based on config file is 
a good choice, but power users and clusters operators would certainly benefits 
from env var and cli args support since they would enable cleaner and 
simplified deployment manifest without requiring volumes mounts.
   
   The Spring project implements an `Environment` abstraction with [prioritized 
config 
sources](https://docs.spring.io/spring-boot/docs/1.0.1.RELEASE/reference/html/boot-features-external-config.html#boot-features-external-config)
 decoupled from the application code which should be a good inspiration to 
follow. Even Quarkus has that concept.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to