In some puppet installations, especially when an ENC is in use, there are not really any environment specific manifests. Instead the ENC controls all of the classes that are included for a node. However, there is still some global setup that needs to take place outside of the ENC. One example of this is globally setting up a filebucket for all file resources.
In the current directory environment design, users are forced to copy the same site.pp to every environment's manifest directory or they are forced to ensure that every environment specifies some specific manifest value in environment.conf.
A recommended solution is to bring back the manifest setting in the [master] section. The manifests pointed to by the manifest setting would then be read before the environment's manifests.
- should the [master] manifests even be read if the environment specifies manifest? Skipping the [master] manifests when the environment provides its own would be consistent with modulepath. If that is done, how does an environment.conf specify the default? For modulepath this was done by using basemodulepath instead of modulepath for the non-environment value.
- what is the default [master] manifest? a default of "nothing" would keep the current directory environment behavior.