chef-flavor-flay 0.3.2 → 0.4.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 +4 -4
- data/Gemfile +1 -0
- data/README.md +6 -7
- data/lib/flay/version.rb +1 -1
- data/shared/flavor/flay/files/default/CODE_OF_CONDUCT.md +49 -0
- data/shared/flavor/flay/files/default/CONTRIBUTING.md +36 -0
- data/shared/flavor/flay/files/default/Rakefile +21 -1
- data/shared/flavor/flay/files/default/rspec +1 -0
- data/shared/flavor/flay/files/default/test/chef/client.enc +0 -0
- data/shared/flavor/flay/files/default/test/chef/knife.rb +4 -0
- data/shared/flavor/flay/files/default/{keys.json → test/integration/data_bags/ejson/keys.json} +0 -0
- data/shared/flavor/flay/files/default/{keys.plaintext.json → test/integration/data_bags/ejson/keys.plaintext.json} +0 -0
- data/shared/flavor/flay/files/default/{encrypted_data_bag_secret → test/integration/encrypted_data_bag_secret} +0 -0
- data/shared/flavor/flay/files/default/{serverspec_spec_helper.rb → test/integration/helpers/serverspec/spec_helper.rb} +0 -0
- data/shared/flavor/flay/files/default/{spec_helper.rb → test/unit/spec_helper.rb} +0 -0
- data/shared/flavor/flay/files/default/travis.yml +19 -6
- data/shared/flavor/flay/recipes/cookbook.rb +28 -14
- data/shared/flavor/flay/recipes/recipe.rb +1 -1
- data/shared/flavor/flay/templates/default/LICENSE.erb +1 -0
- data/shared/flavor/flay/templates/default/README.md.erb +29 -1
- data/shared/flavor/flay/templates/default/metadata.rb.erb +1 -1
- metadata +12 -8
- data/shared/flavor/flay/files/default/Gemfile +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d4b88000fcba519db2b2cdbeaa9fbf9e7b5cff6
|
4
|
+
data.tar.gz: b3ab490cb4ca32b39224719afdd80275a32b78e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 122d01ba1d27fbf5fa90f30963d5e7d3384b9f821e9e011ff15dcf0e21af2021cac61642528a1cceafc784a29d938a9d42d8982b5bc08566aac1d7ef61ce6245
|
7
|
+
data.tar.gz: 36c895f4e86bc37ee158be8be4910d2b14fa46fa03f29fc7d6f4b090039a3400806703845be88876c74a03cbe0d2e4d6560cfe73a68af9007d29533092b3f0a1
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -5,10 +5,9 @@
|
|
5
5
|
[](https://coveralls.io/github/sweeperio/flay?branch=master)
|
6
6
|
|
7
7
|
This repo is a custom cookbook/recipe template for use with the [ChefDK]. It uses [chef-gen-flavors] to create a custom
|
8
|
-
template that can be used with `chef generate [cookbook|recipe]` commands.
|
8
|
+
template that can be used with `chef generate [cookbook|recipe]` commands.
|
9
9
|
|
10
|
-
It's
|
11
|
-
`shared/flavor/flay` directory.
|
10
|
+
It's very opinionated and works with the sweeperio infrastructure specifically.
|
12
11
|
|
13
12
|
[ChefDK]: https://downloads.chef.io/chef-dk/
|
14
13
|
[chef-gen-flavors]: https://github.com/jf647/chef-gen-flavors
|
@@ -22,12 +21,12 @@ It's pretty opinionated, but you could easily modify it to suit your needs, by m
|
|
22
21
|
## What?
|
23
22
|
|
24
23
|
* Normal setup in place...[Berkshelf], [ChefSpec], [Test Kitchen], etc.
|
25
|
-
* Only ubuntu is supported and setup in ChefSpec and Test Kitchen (I said it was opinionated)
|
26
|
-
*
|
24
|
+
* _**Only ubuntu**_ is supported and setup in ChefSpec and Test Kitchen (I said it was opinionated)
|
25
|
+
* Sets up berks to use our berks api
|
26
|
+
* Adds [core] cookbook to metadata.rb
|
27
27
|
* Adds [rubocop] with some updated (opinionated) settings
|
28
28
|
* Updates all templates to pass `bundle exec rubocop && bundle exec rspec`
|
29
|
-
* Adds a travis file for CI that will
|
30
|
-
* Ensures `berks`, `chef`, `chefspec` and `rubocop` are in the Gemfile (pessimistically locked to current major version)
|
29
|
+
* Adds a travis file for CI that will use the chefdk to run tests
|
31
30
|
* Creates a single `test` directory rather than spec/unit and test/integration
|
32
31
|
* Adds a _dummy_ `encrypted_data_bag_secret` file for [Test Kitchen]
|
33
32
|
* Adds `encrypt_data_bag` rake task for working with encrypted data bags in [Test Kitchen] (see note below)
|
data/lib/flay/version.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of this project, and in the interest of
|
4
|
+
fostering an open and welcoming community, we pledge to respect all people who
|
5
|
+
contribute through reporting issues, posting feature requests, updating
|
6
|
+
documentation, submitting pull requests or patches, and other activities.
|
7
|
+
|
8
|
+
We are committed to making participation in this project a harassment-free
|
9
|
+
experience for everyone, regardless of level of experience, gender, gender
|
10
|
+
identity and expression, sexual orientation, disability, personal appearance,
|
11
|
+
body size, race, ethnicity, age, religion, or nationality.
|
12
|
+
|
13
|
+
Examples of unacceptable behavior by participants include:
|
14
|
+
|
15
|
+
* The use of sexualized language or imagery
|
16
|
+
* Personal attacks
|
17
|
+
* Trolling or insulting/derogatory comments
|
18
|
+
* Public or private harassment
|
19
|
+
* Publishing other's private information, such as physical or electronic
|
20
|
+
addresses, without explicit permission
|
21
|
+
* Other unethical or unprofessional conduct
|
22
|
+
|
23
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
24
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
25
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
26
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
27
|
+
threatening, offensive, or harmful.
|
28
|
+
|
29
|
+
By adopting this Code of Conduct, project maintainers commit themselves to
|
30
|
+
fairly and consistently applying these principles to every aspect of managing
|
31
|
+
this project. Project maintainers who do not follow or enforce the Code of
|
32
|
+
Conduct may be permanently removed from the project team.
|
33
|
+
|
34
|
+
This code of conduct applies both within project spaces and in public spaces
|
35
|
+
when an individual is representing the project or its community.
|
36
|
+
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
38
|
+
reported by contacting a project maintainer at david.muto@gmail.com. All
|
39
|
+
complaints will be reviewed and investigated and will result in a response that
|
40
|
+
is deemed necessary and appropriate to the circumstances. Maintainers are
|
41
|
+
obligated to maintain confidentiality with regard to the reporter of an
|
42
|
+
incident.
|
43
|
+
|
44
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
45
|
+
version 1.3.0, available at
|
46
|
+
[http://contributor-covenant.org/version/1/3/0/][version]
|
47
|
+
|
48
|
+
[homepage]: http://contributor-covenant.org
|
49
|
+
[version]: http://contributor-covenant.org/version/1/3/0/
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
First off, glad you're here and want to contribute! :heart:
|
4
|
+
|
5
|
+
## Getting Started
|
6
|
+
|
7
|
+
You'll need to have the [chefdk] and [vagrant] installed to work on this repo. For installation and setup details,
|
8
|
+
check out the links.
|
9
|
+
|
10
|
+
## Making Changes
|
11
|
+
|
12
|
+
* If necessary, [fork this repo]
|
13
|
+
* Create a branch off of master
|
14
|
+
* Make focused commits with descriptive messages
|
15
|
+
* Add tests that will fail without your code, and pass with it
|
16
|
+
* Push your branch and submit a pull request indicating the problem you're addressing and the solution you're proposing
|
17
|
+
* **Ping someone on the PR!** - Most of us only get notifications if we're pinged directly
|
18
|
+
|
19
|
+
### Running Tests
|
20
|
+
|
21
|
+
* Style (rubocop/foodcritic) - `chef exec rake style`
|
22
|
+
* RSpec/ChefSpec - `chef exec rake rspec`
|
23
|
+
* Style and Specs - `chef exec rake`
|
24
|
+
* Integration Tests (Test Kitchen) - `chef exec kitchen test`
|
25
|
+
|
26
|
+
Generally, during development, it's faster to run `chef exec kitchen converge && chef exec kitchen verify` after each
|
27
|
+
change. That's totally cool, just be sure to run a clean test with `chef exec kitchen test` before submitting a PR.
|
28
|
+
|
29
|
+
#### Tip
|
30
|
+
|
31
|
+
If you get sick of typing `chef exec` in front of these commands, you can run `eval "$(chef shell-init SHELL)"` to
|
32
|
+
update your current shell to use the [chefdk] by default (you can remove `chef exec` from all these).
|
33
|
+
|
34
|
+
[chefdk]: https://downloads.chef.io/chef-dk/
|
35
|
+
[vagrant]: https://www.vagrantup.com/
|
36
|
+
[fork this repo]: https://help.github.com/articles/fork-a-repo
|
@@ -1,6 +1,9 @@
|
|
1
|
-
require "bundler/setup"
|
2
1
|
require "chef"
|
2
|
+
require "foodcritic"
|
3
|
+
require "rspec/core/rake_task"
|
4
|
+
require "rubocop/rake_task"
|
3
5
|
|
6
|
+
# Data Bag Helpers
|
4
7
|
SECRET_FILE = "./test/integration/encrypted_data_bag_secret".freeze
|
5
8
|
INPUT_PATH_FORMAT = "./test/integration/data_bags/%s/%s.plaintext.json".freeze
|
6
9
|
OUTPUT_PATH_FORMAT = "./test/integration/data_bags/%s/%s.json".freeze
|
@@ -12,6 +15,15 @@ def raw_bag_item(args)
|
|
12
15
|
Chef::DataBagItem.from_hash(hash)
|
13
16
|
end
|
14
17
|
|
18
|
+
RSpec::Core::RakeTask.new { |rspec| rspec.rspec_opts = File.read("./.rspec").split("\n") }
|
19
|
+
|
20
|
+
RuboCop::RakeTask.new { |rubocop| rubocop.options = %w(-D) }
|
21
|
+
|
22
|
+
FoodCritic::Rake::LintTask.new do |foodcritic|
|
23
|
+
foodcritic.options[:progress] = true
|
24
|
+
foodcritic.options[:fail_tags] = "any"
|
25
|
+
end
|
26
|
+
|
15
27
|
desc "encrypts a data bag item for integration tests"
|
16
28
|
task :encrypt_data_bag, [:bag, :item] do |_, args|
|
17
29
|
data_bag_item = raw_bag_item(args)
|
@@ -24,3 +36,11 @@ task :encrypt_data_bag, [:bag, :item] do |_, args|
|
|
24
36
|
|
25
37
|
puts format("encrypted test data bag: %s", output_path)
|
26
38
|
end
|
39
|
+
|
40
|
+
desc "Run Rubocop and Foodcritic style checks"
|
41
|
+
task style: [:rubocop, :foodcritic]
|
42
|
+
|
43
|
+
desc "Run all style checks and unit tests"
|
44
|
+
task test: [:style, :spec]
|
45
|
+
|
46
|
+
task default: :test
|
Binary file
|
data/shared/flavor/flay/files/default/{keys.json → test/integration/data_bags/ejson/keys.json}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,9 +1,22 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
addons:
|
3
|
+
apt:
|
4
|
+
sources:
|
5
|
+
- chef-current-precise
|
6
|
+
packages:
|
7
|
+
- chefdk
|
8
|
+
|
9
|
+
install: echo "skipping bundle install"
|
10
|
+
|
11
|
+
before_script:
|
12
|
+
- eval "$(/opt/chefdk/bin/chef shell-init bash)"
|
13
|
+
- cp -r test/chef .chef
|
14
|
+
- openssl enc -d -aes-256-cbc -k $CLIENT_PASSPHRASE -in .chef/client.enc -out .chef/client.pem
|
6
15
|
|
7
16
|
script:
|
8
|
-
-
|
9
|
-
-
|
17
|
+
- chef --version
|
18
|
+
- rubocop --version
|
19
|
+
- foodcritic --version
|
20
|
+
- rspec --version
|
21
|
+
- rake --version
|
22
|
+
- rake
|
@@ -1,5 +1,6 @@
|
|
1
1
|
context = ChefDK::Generator.context
|
2
2
|
cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
|
3
|
+
kitchen_dir = File.join(cookbook_dir, "test", "integration")
|
3
4
|
|
4
5
|
# Common Cookbook Things
|
5
6
|
directory cookbook_dir
|
@@ -10,43 +11,56 @@ cookbook_file("#{cookbook_dir}/.gitignore") { source "gitignore" }
|
|
10
11
|
cookbook_file("#{cookbook_dir}/.rubocop.yml") { source "rubocop.yml" }
|
11
12
|
cookbook_file("#{cookbook_dir}/Berksfile") { action :create_if_missing }
|
12
13
|
cookbook_file "#{cookbook_dir}/chefignore"
|
13
|
-
cookbook_file "#{cookbook_dir}/
|
14
|
+
cookbook_file "#{cookbook_dir}/CODE_OF_CONDUCT.md"
|
15
|
+
cookbook_file "#{cookbook_dir}/CONTRIBUTING.md"
|
14
16
|
cookbook_file "#{cookbook_dir}/Rakefile"
|
15
17
|
|
16
18
|
flay_template "#{cookbook_dir}/metadata.rb"
|
17
19
|
flay_template "#{cookbook_dir}/README.md"
|
20
|
+
flay_template "#{cookbook_dir}/LICENSE"
|
18
21
|
|
19
22
|
# ChefSpec
|
23
|
+
directory("#{cookbook_dir}/test/chef") { recursive true }
|
20
24
|
directory("#{cookbook_dir}/test/unit/recipes") { recursive true }
|
21
25
|
|
26
|
+
cookbook_file("#{cookbook_dir}/.rspec") { source "rspec" }
|
27
|
+
cookbook_file("#{cookbook_dir}/.travis.yml") { source "travis.yml" }
|
28
|
+
cookbook_file("#{cookbook_dir}/test/chef/client.enc") { source "test/chef/client.enc" }
|
29
|
+
cookbook_file("#{cookbook_dir}/test/chef/knife.rb") { source "test/chef/knife.rb" }
|
30
|
+
|
22
31
|
cookbook_file "#{cookbook_dir}/test/unit/spec_helper.rb" do
|
23
|
-
source "spec_helper.rb"
|
32
|
+
source "test/unit/spec_helper.rb"
|
24
33
|
action :create_if_missing
|
25
34
|
end
|
26
35
|
|
27
|
-
cookbook_file("#{cookbook_dir}/.rspec") { source "rspec" }
|
28
|
-
cookbook_file("#{cookbook_dir}/.travis.yml") { source "travis.yml" }
|
29
|
-
|
30
36
|
flay_template("#{cookbook_dir}/recipes/default.rb") { source "recipe.rb.erb" }
|
31
37
|
flay_template("#{cookbook_dir}/test/unit/recipes/default_spec.rb") { source "recipe_spec.rb.erb" }
|
32
38
|
|
33
39
|
# Test Kitchen
|
34
|
-
directory("#{
|
35
|
-
directory("#{
|
36
|
-
directory("#{
|
40
|
+
directory("#{kitchen_dir}/data_bags/ejson") { recursive true }
|
41
|
+
directory("#{kitchen_dir}/default/serverspec") { recursive true }
|
42
|
+
directory("#{kitchen_dir}/helpers/serverspec") { recursive true }
|
37
43
|
|
38
|
-
cookbook_file("#{
|
39
|
-
|
40
|
-
|
44
|
+
cookbook_file("#{kitchen_dir}/encrypted_data_bag_secret") do
|
45
|
+
source "test/integration/encrypted_data_bag_secret"
|
46
|
+
end
|
47
|
+
|
48
|
+
cookbook_file("#{kitchen_dir}/data_bags/ejson/keys.json") do
|
49
|
+
source "test/integration/data_bags/ejson/keys.json"
|
50
|
+
end
|
51
|
+
|
52
|
+
cookbook_file("#{kitchen_dir}/data_bags/ejson/keys.plaintext.json") do
|
53
|
+
source "test/integration/data_bags/ejson/keys.plaintext.json"
|
54
|
+
end
|
41
55
|
|
42
|
-
cookbook_file "#{
|
43
|
-
source "
|
56
|
+
cookbook_file "#{kitchen_dir}/helpers/serverspec/spec_helper.rb" do
|
57
|
+
source "test/integration/helpers/serverspec/spec_helper.rb"
|
44
58
|
action :create_if_missing
|
45
59
|
end
|
46
60
|
|
47
61
|
flay_template("#{cookbook_dir}/.kitchen.yml") { source "kitchen.yml.erb" }
|
48
62
|
|
49
|
-
flay_template "#{
|
63
|
+
flay_template "#{kitchen_dir}/default/serverspec/default_spec.rb" do
|
50
64
|
source "serverspec_default_spec.rb.erb"
|
51
65
|
end
|
52
66
|
|
@@ -7,7 +7,7 @@ spec_path = File.join(cookbook_dir, "test", "unit", "recipes", "#{context
|
|
7
7
|
directory("#{cookbook_dir}/test/unit/recipes") { recursive true }
|
8
8
|
|
9
9
|
cookbook_file spec_helper_path do
|
10
|
-
source "spec_helper.rb"
|
10
|
+
source "test/unit/spec_helper.rb"
|
11
11
|
action :create_if_missing
|
12
12
|
end
|
13
13
|
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= license_description("#").rstrip %>
|
@@ -1,3 +1,31 @@
|
|
1
1
|
# <%= sanitized_cookbook_name %>
|
2
2
|
|
3
|
-
|
3
|
+
[](https://travis-ci.org/sweeperio/<%= cookbook_name %>)
|
4
|
+
|
5
|
+
Install/configure <%= sanitized_cookbook_name %>
|
6
|
+
|
7
|
+
## What This Does
|
8
|
+
|
9
|
+
* Thing 1
|
10
|
+
* Thing 2
|
11
|
+
|
12
|
+
* Add the cookbook description here.
|
13
|
+
* Add status badge once travis is setup
|
14
|
+
|
15
|
+
## Attributes
|
16
|
+
|
17
|
+
| attribute | description | default |
|
18
|
+
|-----------|-------------|---------|
|
19
|
+
| `node["<%= sanitized_cookbook_name %>"]["value"]` | some description | `""` |
|
20
|
+
|
21
|
+
## Recipes
|
22
|
+
|
23
|
+
### <%= sanitized_cookbook_name %>::default
|
24
|
+
|
25
|
+
TODO: description
|
26
|
+
|
27
|
+
**Usage:** add `recipe[<%= sanitized_cookbook_name %>]` to your run list.
|
28
|
+
|
29
|
+
## License
|
30
|
+
|
31
|
+
<%= license_description.rstrip %>
|
@@ -4,7 +4,7 @@ maintainer "<%= copyright_holder %>"
|
|
4
4
|
maintainer_email "<%= email %>"
|
5
5
|
license "<%= license %>"
|
6
6
|
description "Installs/Configures <%= sanitized_cookbook_name %>"
|
7
|
-
long_description
|
7
|
+
long_description IO.read(File.join(File.dirname(__FILE__), "README.md"))
|
8
8
|
version "0.1.0"
|
9
9
|
# rubocop:enable Style/SingleSpaceBeforeFirstArg
|
10
10
|
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pseudomuto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-gen-flavors
|
@@ -70,22 +70,26 @@ files:
|
|
70
70
|
- lib/flay/helpers.rb
|
71
71
|
- lib/flay/version.rb
|
72
72
|
- shared/flavor/flay/files/default/Berksfile
|
73
|
-
- shared/flavor/flay/files/default/
|
73
|
+
- shared/flavor/flay/files/default/CODE_OF_CONDUCT.md
|
74
|
+
- shared/flavor/flay/files/default/CONTRIBUTING.md
|
74
75
|
- shared/flavor/flay/files/default/Rakefile
|
75
76
|
- shared/flavor/flay/files/default/chefignore
|
76
|
-
- shared/flavor/flay/files/default/encrypted_data_bag_secret
|
77
77
|
- shared/flavor/flay/files/default/gitignore
|
78
|
-
- shared/flavor/flay/files/default/keys.json
|
79
|
-
- shared/flavor/flay/files/default/keys.plaintext.json
|
80
78
|
- shared/flavor/flay/files/default/rspec
|
81
79
|
- shared/flavor/flay/files/default/rubocop.yml
|
82
|
-
- shared/flavor/flay/files/default/
|
83
|
-
- shared/flavor/flay/files/default/
|
80
|
+
- shared/flavor/flay/files/default/test/chef/client.enc
|
81
|
+
- shared/flavor/flay/files/default/test/chef/knife.rb
|
82
|
+
- shared/flavor/flay/files/default/test/integration/data_bags/ejson/keys.json
|
83
|
+
- shared/flavor/flay/files/default/test/integration/data_bags/ejson/keys.plaintext.json
|
84
|
+
- shared/flavor/flay/files/default/test/integration/encrypted_data_bag_secret
|
85
|
+
- shared/flavor/flay/files/default/test/integration/helpers/serverspec/spec_helper.rb
|
86
|
+
- shared/flavor/flay/files/default/test/unit/spec_helper.rb
|
84
87
|
- shared/flavor/flay/files/default/travis.yml
|
85
88
|
- shared/flavor/flay/metadata.rb
|
86
89
|
- shared/flavor/flay/recipes/cookbook.rb
|
87
90
|
- shared/flavor/flay/recipes/recipe.rb
|
88
91
|
- shared/flavor/flay/resources/template.rb
|
92
|
+
- shared/flavor/flay/templates/default/LICENSE.erb
|
89
93
|
- shared/flavor/flay/templates/default/README.md.erb
|
90
94
|
- shared/flavor/flay/templates/default/kitchen.yml.erb
|
91
95
|
- shared/flavor/flay/templates/default/metadata.rb.erb
|