chef-flavor-flay 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 45069e436ecc0192d9baa77c882363d648fa6349
4
- data.tar.gz: 45d87094a3d0da0e1e3ceea8644cc7b8b9c7e65b
3
+ metadata.gz: 72a4968a59440447aba15bd5968661d3c803c6f7
4
+ data.tar.gz: 593a0bb8a01c0e24f7b8ff91bc844dbdcaa65eb2
5
5
  SHA512:
6
- metadata.gz: 582f7481efa4424327d496b48d2427d96a26127dcd077fbff28744d26b047093a326ce3ae62dc47dc5a26461e30bef518f02d6ff6262daa58380cd67a897683e
7
- data.tar.gz: f816f49225dc7b98dcea18e54976ff696eac607a42ab46928acb84e019b95737b1018252c8066322acedf4c4a9e86089302e2f34d0676c2f56f2b4dd2c379815
6
+ metadata.gz: 278387eb05fa6dbb09e661374b7691876ea5bdf79ba89ca3fcad15ab4c9a92eccf9a8802c4ee742b0bdd7177f992d23810f62a5a5de3ced0a66cd5eeb36b31fe
7
+ data.tar.gz: 21b49512d6eaa44f0de31a1ee453f02425ed0889bebf396a48756a138c7af1520bfed2432da629140aabd94186f2d87f38538e651ce114debb7c5299a52dbc3c
data/README.md CHANGED
@@ -1,10 +1,55 @@
1
- # Flay - cuz Bobby Flay seems like a pretty good chef
1
+ # Flay - A Customizable Chef Cookbook Template
2
2
 
3
3
  [![Build Status](https://travis-ci.org/sweeperio/flay.svg?branch=master)](https://travis-ci.org/sweeperio/flay)
4
4
 
5
- This repo is a custom cookbook/recipe template for use with the [ChefDK].
5
+ This repo is a custom cookbook/recipe template for use with the [ChefDK]. It uses [chef-gen-flavors] to create a custom
6
+ template that can be used with `chef generate [cookbook|recipe]` commands.
7
+
8
+ It's pretty opinionated, but you could easily modify it to suit your needs, by modifying things in the
9
+ `shared/flavor/flay` directory.
6
10
 
7
11
  [ChefDK]: https://downloads.chef.io/chef-dk/
12
+ [chef-gen-flavors]: https://github.com/jf647/chef-gen-flavors
13
+
14
+ ## Why?
15
+
16
+ * Automatically create boilerplate cookbook code/files
17
+ * Put some standards in place that are used consistently across all cookbooks
18
+ * Generate simple, good examples for devs that are new to chef
19
+
20
+ ## What?
21
+
22
+ * Normal setup in place...[Berkshelf], [ChefSpec], [Test Kitchen], etc.
23
+ * Only ubuntu is supported and setup in ChefSpec and Test Kitchen (I said it was opinionated)
24
+ * Adds [core] cookbook to the Berksfile
25
+ * Adds [rubocop] with some updated (opinionated) settings
26
+ * Updates all templates to pass `bundle exec rubocop && bundle exec rspec`
27
+ * Adds a travis file for CI that will cache it's bundle for #webscale
28
+ * Ensures `berks`, `chef`, `chefspec` and `rubocop` are in the Gemfile (pessimistically locked to current major version)
29
+ * Creates a single `test` directory rather than spec/unit and test/integration
30
+ * Adds a _dummy_ `encrypted_data_bag_secret` file for [Test Kitchen]
31
+ * Adds `encrypt_data_bag` rake task for working with encrypted data bags in [Test Kitchen] (see note below)
32
+
33
+ ### Testing Encrypted Data Bags
34
+
35
+ In order to make testing encrypted data bags easier, there's a convention (and rake task) in place in this template.
36
+
37
+ The _test/integration/data_bags_ directory should contain subdirectories for each data bag you want to test (just like
38
+ your chef repo would).
39
+
40
+ **To create an encrypted data bag item, follow these steps (assuming you're testing ejson/keys):**
41
+
42
+ * Create `test/integration/data_bags/ejson/keys.plaintext.json` and add your items
43
+ * Run `bundle exec rake encrypt_data_bag[ejson,keys]` (zsh users, you'll need to quote, escape or `unsetopt nomatch`)
44
+ * Notice that `test/integration/data_bags/ejson/keys.json` has been created and contains the encrypted contents
45
+
46
+ Updating follows the exact same process.
47
+
48
+ [Berkshelf]: https://docs.chef.io/berkshelf.html
49
+ [ChefSpec]: https://docs.chef.io/chefspec.html
50
+ [Test Kitchen]: https://docs.chef.io/kitchen.html
51
+ [core]: https://github.com/sweeperio/chef-core
52
+ [rubocop]: https://docs.chef.io/rubocop.html
8
53
 
9
54
  ## Installation
10
55
 
@@ -25,9 +70,131 @@ Celebrate! :rocket:
25
70
  ## Usage
26
71
 
27
72
  * `chef generate cookbook my_cookbook`
28
- * `chef generate recipe my_recipe`
73
+ * `chef generate recipe my_recipe` (from within the cookbook directory)
29
74
 
30
- You'll be presented with a set of options, choose `flay`
75
+ If you're using this for sweeper cookbooks you should use these instead. They simply call the normal generate methods
76
+ but pass parameters for maintainer, email and license.
77
+
78
+ * `chef exec flay cookbook my_cookbook`
79
+ * `chef exec flay recipe my_cookbook`
80
+
81
+ ### Example
82
+
83
+ ```
84
+ $ chef generate cookbook chef-demo-flay
85
+
86
+ using ChefGen flavor 'flay'
87
+ Compiling Cookbooks...
88
+ Recipe: flay::cookbook
89
+ * directory[/Users/pseudomuto/chef-demo-flay] action create
90
+ - create new directory /Users/pseudomuto/chef-demo-flay
91
+ * directory[/Users/pseudomuto/chef-demo-flay/.bundle] action create
92
+ - create new directory /Users/pseudomuto/chef-demo-flay/.bundle
93
+ * directory[/Users/pseudomuto/chef-demo-flay/recipes] action create
94
+ - create new directory /Users/pseudomuto/chef-demo-flay/recipes
95
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/.gitignore] action create
96
+ - create new file /Users/pseudomuto/chef-demo-flay/.gitignore
97
+ - update content in file /Users/pseudomuto/chef-demo-flay/.gitignore from none to 93f78f
98
+ (diff output suppressed by config)
99
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/.rubocop.yml] action create
100
+ - create new file /Users/pseudomuto/chef-demo-flay/.rubocop.yml
101
+ - update content in file /Users/pseudomuto/chef-demo-flay/.rubocop.yml from none to 53e0ba
102
+ (diff output suppressed by config)
103
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/Berksfile] action create_if_missing
104
+ - create new file /Users/pseudomuto/chef-demo-flay/Berksfile
105
+ - update content in file /Users/pseudomuto/chef-demo-flay/Berksfile from none to dcbbf1
106
+ (diff output suppressed by config)
107
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/.bundle/config] action create
108
+ - create new file /Users/pseudomuto/chef-demo-flay/.bundle/config
109
+ - update content in file /Users/pseudomuto/chef-demo-flay/.bundle/config from none to f7385e
110
+ (diff output suppressed by config)
111
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/chefignore] action create
112
+ - create new file /Users/pseudomuto/chef-demo-flay/chefignore
113
+ - update content in file /Users/pseudomuto/chef-demo-flay/chefignore from none to 51b09a
114
+ (diff output suppressed by config)
115
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/Gemfile] action create
116
+ - create new file /Users/pseudomuto/chef-demo-flay/Gemfile
117
+ - update content in file /Users/pseudomuto/chef-demo-flay/Gemfile from none to ebb472
118
+ (diff output suppressed by config)
119
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/Rakefile] action create
120
+ - create new file /Users/pseudomuto/chef-demo-flay/Rakefile
121
+ - update content in file /Users/pseudomuto/chef-demo-flay/Rakefile from none to b03f32
122
+ (diff output suppressed by config)
123
+ * flay_template[/Users/pseudomuto/chef-demo-flay/metadata.rb] action create_if_missing
124
+ * template[/Users/pseudomuto/chef-demo-flay/metadata.rb] action create_if_missing
125
+ - create new file /Users/pseudomuto/chef-demo-flay/metadata.rb
126
+ - update content in file /Users/pseudomuto/chef-demo-flay/metadata.rb from none to 74ceb0
127
+ (diff output suppressed by config)
128
+
129
+ * flay_template[/Users/pseudomuto/chef-demo-flay/README.md] action create_if_missing
130
+ * template[/Users/pseudomuto/chef-demo-flay/README.md] action create_if_missing
131
+ - create new file /Users/pseudomuto/chef-demo-flay/README.md
132
+ - update content in file /Users/pseudomuto/chef-demo-flay/README.md from none to a6b92d
133
+ (diff output suppressed by config)
134
+
135
+ * directory[/Users/pseudomuto/chef-demo-flay/test/unit/recipes] action create
136
+ - create new directory /Users/pseudomuto/chef-demo-flay/test/unit/recipes
137
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/.rspec] action create
138
+ - create new file /Users/pseudomuto/chef-demo-flay/.rspec
139
+ - update content in file /Users/pseudomuto/chef-demo-flay/.rspec from none to c64d5e
140
+ (diff output suppressed by config)
141
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/.travis.yml] action create
142
+ - create new file /Users/pseudomuto/chef-demo-flay/.travis.yml
143
+ - update content in file /Users/pseudomuto/chef-demo-flay/.travis.yml from none to 1d91c7
144
+ (diff output suppressed by config)
145
+ * flay_template[/Users/pseudomuto/chef-demo-flay/recipes/default.rb] action create_if_missing
146
+ * template[/Users/pseudomuto/chef-demo-flay/recipes/default.rb] action create_if_missing
147
+ - create new file /Users/pseudomuto/chef-demo-flay/recipes/default.rb
148
+ - update content in file /Users/pseudomuto/chef-demo-flay/recipes/default.rb from none to ad3596
149
+ (diff output suppressed by config)
150
+
151
+ * flay_template[/Users/pseudomuto/chef-demo-flay/test/unit/recipes/default_spec.rb] action create_if_missing
152
+ * template[/Users/pseudomuto/chef-demo-flay/test/unit/recipes/default_spec.rb] action create_if_missing
153
+ - create new file /Users/pseudomuto/chef-demo-flay/test/unit/recipes/default_spec.rb
154
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/unit/recipes/default_spec.rb from none to c1956b
155
+ (diff output suppressed by config)
156
+
157
+ * directory[/Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson] action create
158
+ - create new directory /Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson
159
+ * directory[/Users/pseudomuto/chef-demo-flay/test/integration/default/serverspec] action create
160
+ - create new directory /Users/pseudomuto/chef-demo-flay/test/integration/default/serverspec
161
+ * directory[/Users/pseudomuto/chef-demo-flay/test/integration/helpers/serverspec] action create
162
+ - create new directory /Users/pseudomuto/chef-demo-flay/test/integration/helpers/serverspec
163
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/test/integration/encrypted_data_bag_secret] action create
164
+ - create new file /Users/pseudomuto/chef-demo-flay/test/integration/encrypted_data_bag_secret
165
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/integration/encrypted_data_bag_secret from none to 4299f4
166
+ (diff output suppressed by config)
167
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson/keys.json] action create
168
+ - create new file /Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson/keys.json
169
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson/keys.json from none to 3e325d
170
+ (diff output suppressed by config)
171
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson/keys.plaintext.json] action create
172
+ - create new file /Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson/keys.plaintext.json
173
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/integration/data_bags/ejson/keys.plaintext.json from none to 179a27
174
+ (diff output suppressed by config)
175
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/test/integration/helpers/serverspec/spec_helper.rb] action create_if_missing
176
+ - create new file /Users/pseudomuto/chef-demo-flay/test/integration/helpers/serverspec/spec_helper.rb
177
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/integration/helpers/serverspec/spec_helper.rb from none to bef02f
178
+ (diff output suppressed by config)
179
+ * cookbook_file[/Users/pseudomuto/chef-demo-flay/test/unit/spec_helper.rb] action create_if_missing
180
+ - create new file /Users/pseudomuto/chef-demo-flay/test/unit/spec_helper.rb
181
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/unit/spec_helper.rb from none to 918ad3
182
+ (diff output suppressed by config)
183
+ * flay_template[/Users/pseudomuto/chef-demo-flay/.kitchen.yml] action create_if_missing
184
+ * template[/Users/pseudomuto/chef-demo-flay/.kitchen.yml] action create_if_missing
185
+ - create new file /Users/pseudomuto/chef-demo-flay/.kitchen.yml
186
+ - update content in file /Users/pseudomuto/chef-demo-flay/.kitchen.yml from none to dd0b56
187
+ (diff output suppressed by config)
188
+
189
+ * flay_template[/Users/pseudomuto/chef-demo-flay/test/integration/default/serverspec/default_spec.rb] action create_if_missing
190
+ * template[/Users/pseudomuto/chef-demo-flay/test/integration/default/serverspec/default_spec.rb] action create_if_missing
191
+ - create new file /Users/pseudomuto/chef-demo-flay/test/integration/default/serverspec/default_spec.rb
192
+ - update content in file /Users/pseudomuto/chef-demo-flay/test/integration/default/serverspec/default_spec.rb from none to 7fcaa4
193
+ (diff output suppressed by config)
194
+
195
+ * execute[initialize-git] action run
196
+ - execute git init .
197
+ ```
31
198
 
32
199
  ## License
33
200
 
data/exe/flay ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ARGS = "-C sweeper.io -m developers@sweeper.io -I mit".freeze
4
+
5
+ def cookbook(name)
6
+ `chef generate cookbook #{name} #{ARGS}`
7
+ end
8
+
9
+ def recipe(name)
10
+ `chef generate recipe #{name} #{ARGS}`
11
+ end
12
+
13
+ def usage
14
+ puts "USAGE:"
15
+ puts "flay cookbook NAME"
16
+ puts "flay recipe NAME"
17
+ exit 1
18
+ end
19
+
20
+ type, name = ARGV
21
+ usage if ARGV.size != 2
22
+ usage if type.nil? || name.nil?
23
+
24
+ case type
25
+ when "cookbook" then cookbook(name)
26
+ when "recipe" then recipe(name)
27
+ else
28
+ usage
29
+ end
data/flay.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "chef-flavor-flay"
4
- spec.version = "0.1.2"
4
+ spec.version = "0.2.0"
5
5
  spec.authors = ["pseudomuto"]
6
6
  spec.email = ["developers@sweeper.io"]
7
7
 
@@ -3,7 +3,7 @@ module ChefGen
3
3
  class Flay
4
4
  NAME = "flay".freeze
5
5
  DESC = "Generate a new cookbook with **better** defaults".freeze
6
- VERSION = "0.1.2".freeze
6
+ VERSION = "0.2.0".freeze
7
7
 
8
8
  attr_reader :temp_path
9
9
 
@@ -1,12 +1,5 @@
1
1
  require "bundler/setup"
2
2
  require "chef"
3
- require "rspec/core/rake_task"
4
- require "rubocop/rake_task"
5
-
6
- RuboCop::RakeTask.new(:rubocop)
7
- RSpec::Core::RakeTask.new(:spec)
8
-
9
- task default: [:rubocop, :spec]
10
3
 
11
4
  SECRET_FILE = "./test/integration/encrypted_data_bag_secret".freeze
12
5
  INPUT_PATH_FORMAT = "./test/integration/data_bags/%s/%s.plaintext.json".freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-flavor-flay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pseudomuto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-28 00:00:00.000000000 Z
11
+ date: 2015-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-gen-flavors
@@ -27,7 +27,8 @@ dependencies:
27
27
  description: A Chef cookbook generator using [chef-gen-flavors](https://rubygems.org/gems/chef-gen-flavors)
28
28
  email:
29
29
  - developers@sweeper.io
30
- executables: []
30
+ executables:
31
+ - flay
31
32
  extensions: []
32
33
  extra_rdoc_files: []
33
34
  files:
@@ -42,6 +43,7 @@ files:
42
43
  - Rakefile
43
44
  - bin/console
44
45
  - bin/setup
46
+ - exe/flay
45
47
  - flay.gemspec
46
48
  - lib/chef_gen/flavor/flay.rb
47
49
  - shared/flavor/flay/files/default/Berksfile