- From: AJ Christensen <
>
- To: "FitzGibbon, James" <
>
- Cc: "
" <
>
- Subject: [chef-dev] Re: Announce: chef-dk-template-plugin - easy distribution of ChefDK templates as gems
- Date: Tue, 12 May 2015 13:34:24 +1200
Great work team, looks super dope. Will be stoked to package up some
of our generator skels into gems and such.
IS NAICE
cheers,
--aj
On Tue, May 12, 2015 at 1:23 PM, FitzGibbon, James
<
>
wrote:
>
Ohai Chefs!
>
>
I would like to announce the first release of chef-dk-template-plugin, a
>
stab at making it easy to distribute custom ChefDK templates inside and
>
outside of your organization.
>
>
Here’s a brief demo. Let’s assume you have a plugin class like this:
>
>
require 'chef-dk/template/plugin_base'
>
require 'chef-dk/template/mixins'
>
>
# the Chef Development Kit
>
module ChefDK
>
# templates for 'chef generate'
>
module Template
>
# a pluggable framework for distributing templates as ruby gems
>
class Plugin
>
# an example plugin for chef-dk-template-plugin
>
class Example < PluginBase
>
include ChefDK::Template::Mixin::CookbookBase
>
>
# the version of the gem
>
VERSION = '0.1.0'
>
>
class << self
>
def description
>
'Example cookbook template'
>
end
>
end
>
end
>
end
>
end
>
end
>
>
And you have a generator recipe like this:
>
>
template = ChefDK::Template::Plugin::Example.new(self)
>
template.generate
>
>
Now when you run ‘chef generate cookbook foo’, you’ll get a cookbook that
>
has all the things provided by the ‘CookbookBase’ mixin (things like a
>
README, CHANGELOG, metadata.rb, etc.)
>
>
Because the generators are Ruby classes:
>
>
- you can extend, inherit and metaprogram them to your heart’s delight
>
>
- you can test them using RSpec or minitest or Aruba/Cucumber
>
>
- you can create mixins for other people to use
>
>
- you can distribute your mixins or templates as ruby gems
>
>
- you can update them using ‘chef gem install’
>
>
My hope is that this will spur more sharing of good cookbook practice while
>
still allowing you to compose templates that meet the various needs you
>
have inside your organization.
>
>
Feedback and PRs are welcome.
>
>
Plugin Framework: https://github.com/Nordstrom/chef-dk-template-plugin
>
>
Example Plugin: https://github.com/Nordstrom/chef-dk-template-example
>
>
Cheers
>
>
>
>
Archive powered by MHonArc 2.6.16.