All Projects → cmarzullo → saltscaffold

cmarzullo / saltscaffold

Licence: GPL-3.0 license
A python module to create a salt formula skeleton

Programming Languages

python
139335 projects - #7 most used programming language
SaltStack
118 projects
HTML
75241 projects
ruby
36898 projects - #4 most used programming language

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].