You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Salt's fileserver has a concept of environments, which can work decently well to isolate different versions of states and other files to operate on minions under different circumstances. Salt even includes the ability to set the default saltenv and/or lock_saltenv in the minion config. However, one aspect in which this falls short is when you have custom modules in different environments. Currently the minion does not have a concept of a version of a module per environment, and is simply the last one synced to the minion's cache wins. This is especially strange, since salt supports and defaults to syncing modules from multiple environments via the saltutil.sync_modules command. This default behavior does not make sense in the scenario where different versions of modules of the same name exist in multiple environments. The problem is that this could prevent sharing masters / minions in the scenario where they are running jobs simultaneously with different modules for different "environments", in production or development scenarios.
Describe the solution you'd like
The solution to this could simply be to have a directory in the minion's module cache, per environment, that it would use based on the saltenv that is active for a given command.
Describe alternatives you've considered
There does not seem to be a way to allow for simultaneous executions on the same minion with different salt environments specified specifically when they are attempting to use different versions of the the same module in the different environments, due to the fact that only one can be cached on the minion at a single time.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
Salt's fileserver has a concept of environments, which can work decently well to isolate different versions of states and other files to operate on minions under different circumstances. Salt even includes the ability to set the default saltenv and/or lock_saltenv in the minion config. However, one aspect in which this falls short is when you have custom modules in different environments. Currently the minion does not have a concept of a version of a module per environment, and is simply the last one synced to the minion's cache wins. This is especially strange, since salt supports and defaults to syncing modules from multiple environments via the saltutil.sync_modules command. This default behavior does not make sense in the scenario where different versions of modules of the same name exist in multiple environments. The problem is that this could prevent sharing masters / minions in the scenario where they are running jobs simultaneously with different modules for different "environments", in production or development scenarios.
Describe the solution you'd like
The solution to this could simply be to have a directory in the minion's module cache, per environment, that it would use based on the saltenv that is active for a given command.
Describe alternatives you've considered
There does not seem to be a way to allow for simultaneous executions on the same minion with different salt environments specified specifically when they are attempting to use different versions of the the same module in the different environments, due to the fact that only one can be cached on the minion at a single time.
The text was updated successfully, but these errors were encountered: