summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-06-15(#3) Add an anchor type to provide containmentJeff McCune
With Puppet 2.6.x we do not have a way to specify containment relationships. In the use case of class ntp { } declaring ntp::{package,config,service} classes, the ntp class itself should allow the user to specify before and require relationships to the main ntp class. The anchor resource type allows module authors to close the loop on classes composing the main top level module. For example: class ntp { class { 'ntp::package': } -> class { 'ntp::config': } -> class { 'ntp::service': } # These two resources "anchor" the composed classes # such that the end user may use "require" and "before" # relationships with Class['ntp'] anchor { 'ntp::begin': } -> class { 'ntp::package': } class { 'ntp::service': } -> anchor { 'ntp::end': } } Using this pattern, the module user may then simply declare relationships to the ntp class as they expect: class { 'ntp': } -> class { 'mcollective': } # OR class { 'mcollective': } -> class { 'ntp': }
2011-06-03Add additional tests to validate_bool() specJeff McCune
2011-06-03Update CHANGELOG for 0.1.5Jeff McCune
2011-06-03Add Apache 2.0 LicenseJeff McCune
2011-06-03Merge branch 'feature/master/validation_functions'Jeff McCune
* feature/master/validation_functions: Add spec test for validate_bool function Add validate_bool() function to stdlib
2011-06-03Add spec test for validate_bool functionJeff McCune
This is an interesting spec test for module developers. It illustrates how to cause Puppet to test the function from the Puppet DSL rather than the Ruby DSL, fully exercising the system from the perspective of the end user. (Note how Puppet[:code] is set, then the scope reset, then the compile method called.) Paired-with: Dan Bode <dan@puppetlabs.com>
2011-06-03Add validate_bool() function to stdlibJeff McCune
This function aborts catalog compilation if any of the passed values are not true or false. Note, this catches the string values of true and false correct and will abort catalog compilation if they are not boolean values. Paired-with: Dan Bode <dan@puppetlabs.com>
2011-05-26Update CHANGELOG with stage re-orderingJeff McCune
2011-05-26Merge branch 'bug/master/prefer_stages_after_main'Jeff McCune
* bug/master/prefer_stages_after_main: Move stages to after main
2011-05-26Move stages to after mainJeff McCune
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.
2011-05-25Update CHANGELOG for 0.1.3 releaseJeff McCune
2011-05-25Merge branch 'feature/master/7657_validate_re'Jeff McCune
* feature/master/7657_validate_re: (#7657) Add basic validate_re function
2011-05-25(#7657) Add basic validate_re functionJeff McCune
While developing Puppet Modules with class parameters, data from the user should be validated as per the Style Guide. Puppet should fail early and hard in the situation of invalid data being passed into the module. This function provides a more concise method to the alternative of using if statements in the Puppet manifests.
2011-05-25Add DS_Store to gitignoreJeff McCune
2011-05-24Update changelog for version 0.1.2Jeff McCune
Also add release process information.
2011-05-24Add changelog to track releasesJeff McCune
Following the development process, as new releases of this module are cut the Changelog will be updated.
2011-05-24Add standard set of run stages.Jeff McCune
Many modules I'm working on need a standard but relatively granular location in the catalog. For example, any module that configures the packaging system should run "early" Add the following stages which have inter-dependencies in the top to bottom order listed: * setup * deploy * runtime * setup_infra * deploy_infra * main * setup_app * deploy_app
2011-05-24Update README with target versionsJeff McCune
Also add the list of things this module will likely contain.
2011-05-24Initial commitJeff McCune