kitchen-chef_zero_berks_env 0.0.1 → 1.0.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: 1783b25f34c1019072530c1d1054d715fdf4128d
4
- data.tar.gz: 22cc6843ad7997c77d783dd5ddda6705a8b0fa4c
3
+ metadata.gz: f606d23cba1fa31d168cbccf375d367e7443fd04
4
+ data.tar.gz: b297ce4e8f2a5a707fab565a5bf89eb63bac4422
5
5
  SHA512:
6
- metadata.gz: 7b377e9d35cf7c9c5e110e4318179658e31c64b74fd9a16986ef607355074690b9eb422bd209b8ad24238276de0fb0b23e8ba19f4145b0a28f9cb0036fc1d007
7
- data.tar.gz: 5ec23b509085b994245291024172416baa4ed5036ada5f6b814cc8947cc049e5365345df8793bb020d87f6568152b5d8f4e63f40c7aa99687796d49840e711af
6
+ metadata.gz: 12ca5700a66cb6244b9ffddb8887ab1ca75308a918ae9857bf8a697ddba40009aea3d7c6a2eab521837524291815f5762f00c07edc586a1f460749c59710faa9
7
+ data.tar.gz: a0fd9421e62f51ca709c82ddf87f049d1525e832f2a2af863e76c9ef937f31419251538396b9abee0cf969a9062ddb576676e8dac7139979dcbb149244d03f9e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # kitchen-chef_zero_berks_env
2
2
 
3
- ## v0.1.0 (2015-09-20)
3
+ ## v0.0.1 (2015-09-20)
4
4
 
5
5
  Initial release
data/README.md CHANGED
@@ -1,3 +1,35 @@
1
1
  # kitchen-chef_zero_berks_env
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/kitchen-chef_zero_berks_env.svg)](http://badge.fury.io/rb/kitchen-chef_zero_berks_env)
4
+ [![Gem Downloads](http://ruby-gem-downloads-badge.herokuapp.com/kitchen-chef_zero_berks_env?type=total&color=brightgreen)](https://rubygems.org/gems/kitchen-chef_zero_berks_env)
5
+ [![Build Status](https://travis-ci.org/ruizink/kitchen-chef_zero_berks_env.png)](https://travis-ci.org/ruizink/kitchen-chef_zero_berks_env)
6
+
3
7
  Chef Zero provider for Test Kitchen that enables Berkshelf to vendor the cookbook versions specified by a given chef environment.
8
+
9
+ ## Use Case
10
+
11
+ If you adopted the pattern of pinning cookbooks per chef environment, and still want to use Berkshelf and Test Kitchen on your workflow,
12
+ this provider extension enables Berkshelf to build a lock file based on a given chef environment, respecting the cookbook version dependencies.
13
+ The default behaviour of the Chef providers is to first gather the cookbook dependencies using Berkshelf vendor and then run Chef on the box.
14
+ Well, if you don't pin the cookbook version dependencies within the cookbooks, Berkshelf will end up vendoring allways the latest versions.
15
+ That might conflict with cookbook restrictions that you have defined within the chef environment, and the converge will fail.
16
+ Hopefuly this provider will do the trick!
17
+
18
+ ## Usage
19
+
20
+ Simply replace the provider from `chef_zero` to `chef_zero_berks_env`.
21
+ The provider will look for the `environments_path` and `environment` configs from the provider.
22
+
23
+ ## Example
24
+
25
+ ```yaml
26
+ provisioner:
27
+ name: chef_zero_berks_env
28
+ environments_path: 'environments'
29
+
30
+ suites:
31
+ - name: default
32
+ provisioner:
33
+ client_rb:
34
+ environment: 'my_chef_environment'
35
+ ```
@@ -1,21 +1,18 @@
1
- # -*- encoding: utf-8 -*-
1
+ # -*- coding: utf-8 -*-
2
2
 
3
- require "kitchen/provisioner/chef_zero"
3
+ require 'kitchen/provisioner/chef_zero'
4
4
 
5
5
  module Kitchen
6
-
7
6
  module Provisioner
8
-
9
- # Tweaked Chef Zero provisioner that enables Berkshelf to load cookbook restrictions from Chef environments.
7
+ # Tweaked Chef Zero provisioner that enables Berkshelf to load
8
+ # cookbook restrictions from Chef environments.
10
9
  #
11
- # @author Mário Santos <mario.rf.santos@gmail.com>
10
+ # @author Mario Santos <mario.rf.santos@gmail.com>
12
11
  class ChefZeroBerksEnv < ChefZero
13
-
14
12
  # Performs a Berkshelf cookbook resolution inside a common mutex.
15
13
  #
16
14
  # @api private
17
15
  def resolve_with_berkshelf
18
-
19
16
  # Load Berksfile
20
17
  berks = ::Berkshelf::Berksfile.from_file(berksfile)
21
18
 
@@ -32,10 +29,10 @@ module Kitchen
32
29
  info("Resolving dependency graph with Berkshelf #{::Berkshelf::VERSION}...")
33
30
  berks.install
34
31
  info("Locking the versions fetched from the chef environment '#{chef_environment}'...")
35
- unless environment_json["cookbook_versions"].nil?
36
- berks.lockfile.graph.each do | graphitem |
37
- version = environment_json["cookbook_versions"][graphitem.name]
38
- unless version.nil? or berks.has_dependency?(graphitem.name)
32
+ unless environment_json['cookbook_versions'].nil?
33
+ berks.lockfile.graph.each do |graphitem|
34
+ version = environment_json['cookbook_versions'][graphitem.name]
35
+ unless version.nil? || berks.has_dependency?(graphitem.name)
39
36
  info("Adding Berkshelf dependency: #{graphitem.name} (#{version})")
40
37
  berks.add_dependency(graphitem.name, version)
41
38
  end
@@ -58,7 +55,7 @@ module Kitchen
58
55
  FileUtils.rm_rf(tmpbooks_dir)
59
56
  berks.vendor(tmpbooks_dir)
60
57
  else
61
- berks.install(:path => tmpbooks_dir)
58
+ berks.install(path => tmpbooks_dir)
62
59
  end
63
60
  end
64
61
  end
@@ -1 +1,3 @@
1
+ # -*- encoding: utf-8 -*-
2
+
1
3
  require 'kitchen/provisioner/chef_zero_berks_env'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-chef_zero_berks_env
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mário Santos
@@ -52,10 +52,11 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.2'
55
- description: "Plugin for test-kitchen that extends the chef_zero provisioner allowing\n
56
- \ berkshelf to use cookbook restrictions loaded from chef environment
57
- files.\n This way, Berkshelf will allways vendor the cookbook
58
- versions specified \n in the chef environment."
55
+ description: |2
56
+ Plugin for test-kitchen that extends the chef_zero provisioner allowing
57
+ berkshelf to use cookbook restrictions loaded from chef environment files.
58
+ This way, Berkshelf will allways vendor the cookbook versions specified
59
+ in the chef environment.
59
60
  email:
60
61
  - mario.rf.santos@gmail.com
61
62
  executables: []
@@ -65,8 +66,8 @@ files:
65
66
  - CHANGELOG.md
66
67
  - LICENSE
67
68
  - README.md
68
- - lib/kitchen-chef_zero_berks_env.rb
69
69
  - lib/kitchen/provisioner/chef_zero_berks_env.rb
70
+ - lib/kitchen_chef_zero_berks_env.rb
70
71
  homepage: https://github.com/ruizink/kitchen-chef_zero_berks_env
71
72
  licenses:
72
73
  - MIT