Conditional Role Configuration/More Flexible Variants

Description

Currently it's limiting that conditional configuration must always be associated with a variant. There's e.g. no way to have a different list of httpd.modules for the dispatcher role based on the value of another parameter like enableSsl, httpd.version or distribution. The only way to model these kinds of differences is to have a separate variant with its own configuration, so you would have to create all kinds of permutation variants like no-ssl+ssl-debian-apache22 (actually we already have no-ssl+ssl variant which illustrates the problem).

I'm not sure how to best solve this, but a few random ideas are:

  1. Allow to define parameters conditionally based on other parameters

  2. Have some kind of "mix-in" variant that contributes certain configuration, i.e. a variant that is not mutually exclusive with all others but adds/modifies them

  3. Allow some inheritance between variants so that it would be easy to create combined variants like no-ssl+ssl without having to redundantly declare the configuration of the other variants.

Environment

None

Status

Assignee

Unassigned

Reporter

Martin Wehner

Labels

None

Components

Fix versions

Priority

Minor
Configure