Homec4science

Add an extensible "SiteSource" for configuration

Authored by epriestley <git@epriestley.com> on Nov 6 2014, 00:30.

Description

Add an extensible "SiteSource" for configuration

Summary:
Fixes T2792. This adds a pluggable configuration layer between all the stuff on disk (local/file) and the runtime configurable stuff (database).

An install can subclass this source and:

  • For Phacility, query a remote service (like Almanac) to retrieve hostname-based configuration, allowing one install to serve multiple instances.
  • Maybe for Phacility, query a remote service (like Phlux) to retrieve sitevar-like configuration (e.g., put everything in readonly mode to deal with a maintenance issue?). Not sure if we'll do this or not. We might just nuke Phlux since Almanac is sort-of-a-superset of it for our purposes.
  • For third parties, query some other remote service if that makes config management easier. In particular, it would theoretically let you put locked config in Zookeeper or whatever else you want.

Test Plan: Added a fake source and saw it inject configuration.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T2792

Differential Revision: https://secure.phabricator.com/D10787

Details

Committed
epriestley <git@epriestley.com>Nov 6 2014, 00:30
Pushed
aubortJan 31 2017, 17:16
Parents
rPH2b495f1f032d: Implement PhabricatorProjectInterface on Almanac Services and Devices
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH6a5369b173d5: Add an extensible "SiteSource" for configuration (authored by epriestley <git@epriestley.com>).Nov 6 2014, 00:30