Skip to content

cmarzullo/saltscaffold

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

saltscaffold

This python module creates a new directory structure for salt formulas with the following features:

  • README.md with sample content
  • state files that mimic the package / file / service pattern.
  • .kitchen.yml with content to drive test-kitchen
  • .kitchen-ci.yml with content to drive test-kitchen with alternate settings
  • custom-pillar content to show pillar overrides
  • defaults.yml content with default values
  • map.jinja show how to have grains based overrides and merge defaults with custom pillars
  • example of toggle feature
  • The resulting formula will be testable with test-kitchen
  • serverspec test to used with kitchen verify
  • Gemfile added so one can 'bundle install' inside the formula directory to get the necessary ruby gems

Folder and File Structure

Each salt formula that you scaffold will create the following folder structure:

[formula_name]/
[formula_name]/README.md
[formula_name]/pillar-custom.sls
[formula_name]/Gemfile
[formula_name]/.kitchen.yml
[formula_name]/.kitchen-ci.yml
[formula_name]/LICENSE.txt
[formula_name]/[formula_name]
[formula_name]/[formula_name]/defaults.yaml
[formula_name]/[formula_name]/map.jinja
[formula_name]/[formula_name]/init.sls
[formula_name]/[formula_name]/install.sls
[formula_name]/[formula_name]/config.sls
[formula_name]/[formula_name]/service.sls
[formula_name]/[formula_name]/files/
[formula_name]/[formula_name]/files/config.conf
[formula_name]/test/integration/default/serverspec/_spec.rb
[formula_name]/test/mockup/init.sls

It's expected you'll modify and rename these as you need.

Installing saltscaffold

You can view the source code on the Github Project Page

Install from source

  1. clone the repo git clone https://github.com/cmarzullo/saltscaffold
  2. make the packages cd saltscaffold && python setup.py sdist
  3. install the package sudo pip install dist/Saltscaffold-<version>.tar.gz

Running saltscaffold

The module gets installed as an executable python script. There aren't many options. You can only choose the name of the formula and an optional directory to create the formula in.

saltscaffold -p myformula [-d {base directory} ]

If you don't supply a base directory the formula will be created in your current directory.

Contribution

Pull requests are welcome!

Templating

It's kinda wierd to have to write jinja looking files with jinja. So I switched to the mako templating engine.

Running Tests

There are tests written. Make sure they pass. You can run tests using nosetests -v There's no test for it, but make sure you can do a kitchen verify with the output.