Move stages to after main
Working with the stages in stdlib, I quickly ran into an issue where most of the stages were before the main stage. This made it difficult to declare any resources in a traditional "include" style class while hiding the end user from the stages being associated with other module classes. For example, in class mcollective, a package would be declared in main. However, if mcollective declared class mcollective::service in stage infra_deploy and this was before main, there would be a dependency loop between the package and the service. There appears to be a convention around "chain your stages after main" to avoid the need to create relatively empty shell classes.
This commit is contained in:
parent
46533ae428
commit
6e9e838a0e
1 changed files with 9 additions and 12 deletions
|
@ -5,13 +5,13 @@
|
|||
# The high level stages are (In order):
|
||||
#
|
||||
# * setup
|
||||
# * deploy
|
||||
# * main
|
||||
# * runtime
|
||||
# * setup_infra
|
||||
# * deploy_infra
|
||||
# * main
|
||||
# * setup_app
|
||||
# * deploy_app
|
||||
# * deploy
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
|
@ -31,15 +31,12 @@
|
|||
#
|
||||
class stdlib::stages {
|
||||
|
||||
stage { 'setup': before => Stage['deploy'] }
|
||||
stage { 'deploy': before => Stage['setup_infra'] }
|
||||
stage { 'runtime':
|
||||
require => Stage['deploy'],
|
||||
before => Stage['setup_infra'],
|
||||
}
|
||||
stage { 'setup_infra': before => Stage['deploy_infra'] }
|
||||
stage { 'deploy_infra': before => Stage['main'] }
|
||||
stage { 'setup_app': require => Stage['main'] }
|
||||
stage { 'deploy_app': require => Stage['setup_app'] }
|
||||
stage { 'setup': before => Stage['main'] }
|
||||
stage { 'runtime': require => Stage['main'] }
|
||||
-> stage { 'setup_infra': }
|
||||
-> stage { 'deploy_infra': }
|
||||
-> stage { 'setup_app': }
|
||||
-> stage { 'deploy_app': }
|
||||
-> stage { 'deploy': }
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue