-
Notifications
You must be signed in to change notification settings - Fork 0
Description
When building the SaltStack cluster on a master, the "master", "bootstrap", and "master-bootstrap" (for masterless) environments are used to ensure each member is provisioned properly to work with the cluster. This poses an issue as the target is written using the "base" environment and so these two environments need to be combined in some way. Although these three environments should never change except when updating the non-project-specific components, the way that they're presently organized makes it difficult to process and update independantly from the target's states that reside in the "base" environment.
If the combination of these is a possibility, then we could always have templates running with the "master" role apply the "base" environment for any target-specific provisioning which will remove the need for the user to manually apply their target-specific provisioning on deployment.
It might actually be possible to use the "master" environment only during bootstrap which will then switch its default environment to "base" similar to how the "bootstrap" environment works. After applying the "master" environment, the master's minion can update its environment and then cycle its service, so that it's completely switched into the "base" environment. This way once the "master" environment has been properly provisioned, it can then apply any target-specific provisioning. This switching of the environment should only be temporary so that the "master" environment is _always_ applied on first boot.