You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by GitBox <gi...@apache.org> on 2020/06/17 18:20:21 UTC

[GitHub] [incubator-pinot] daniellavoie commented on issue #5580: Refactor start/stop commands

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:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org