Central Deployer Pattern
UFO can be use as either an app-centric or ops-centric tool.
- app-centric: Each app repo has it’s own
.ufosettings files. This is useful if your applications are very differently setup.
- ops-centric: Each app repo has pretty much the same
.ufosettings files. This is useful if your applications are very similarly set up.
With an ops-centric approach, you use the same
.ufo settings files for the app repos you want to use. For example:
You then also have a
You can copy the
ufo-central repo into the app repo folder with the ufo central update command like so:
cd app1 ufo central update
You’ll end up with something like this:
Then to deploy different app level settings.
cd app1 export UFO_APP=app1 ufo ship
And for app2:
cd app1 export UFO_APP=app2 ufo ship
The central deployer approach is removes duplication of the ufo config files between projects. Leveraging app-level overrides provide a great degree of control.
If the settings start to diverge too much, then it probably makes sense to use separate
.ufo files in that app specific repo.