Skip to content
Marcus Ottosson edited this page Jul 29, 2014 · 1 revision

Cascading configuration

Applications are configured via Open Metadata, each level of a hierarchy appending to previous levels.

/
  projects/
    spiderman/ | apps->maya->2015 installed
       1000/   | apps->maya->2014 installed

1000 augments software installed across spiderman

Strengths

  • Per-resource application configuration
  • Configuration branching

A base-configuration may persist at the root of a project and be augmented by additional configuration from within a hierarchy.

Limitations

No global configurations. For example, if a studio wishes to append a certain PYTHONPATH across app projects, currently there is no way of doing so without also installing the specific application across all projects.

Ideally, this should be possible:

>>> openmetadata.write(root,
...                    'apps/maya/2014/x64|environement/PYTHONPATH',
...                    '$ROOT/scripts/customdir')

In this case, a particular version of Maya is augmented across a studio. This also installs Maya across every project. In cases where one would like to augment ALL versions of a particular piece of software, this should be possible:

>>> openmetadata.write(root,
...                    'apps/maya|environement/PYTHONPATH',
...                    '$ROOT/scripts/customdir')

At the moment, this isn't possible as it would merely mean "install 'maya' across all projects, using this configuration".

Solution

One alternative may be to introduce an additional category of configuration, along with the group apps.

>>> openmetadata.write(root,
...                    'apps-config/maya/2014/x64|environement/PYTHONPATH',
...                    '$ROOT/scripts/customdir')

config could get read separately and treated in isolation from apps, allowing configuration to exists without simultaneously installing applications.

Clone this wiki locally