test-kitchen-pc 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c9ff538b8800da1e38047406e03e606dc577c2d6
4
+ data.tar.gz: a5bd147e05844d207393cabb7d33c8f670483711
5
+ SHA512:
6
+ metadata.gz: 7e4c198879ae3f8c261699ad157320e6271aaee7c96f0baf51f6ad681517763fa9c114509093e2dd77b3e5250694cba84ff3e7b9c1b816b89dad989cff585fa3
7
+ data.tar.gz: 82341434cf0d5cfd0afc1aef317ac13adab44e71a8da504706448c5df4968701ceb0e46743f8cd4e05a9d1216ad96804e7b66c5cfa73109b133f2a377bf0835e
data/.gitignore ADDED
@@ -0,0 +1,57 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Lockfiles
14
+ Berksfile.lock
15
+ Gemfile.lock
16
+
17
+ # Kitchen testing files
18
+ .kitchen/
19
+
20
+ # Used by dotenv library to load environment variables.
21
+ # .env
22
+
23
+ ## Specific to RubyMotion:
24
+ .dat*
25
+ .repl_history
26
+ build/
27
+ *.bridgesupport
28
+ build-iPhoneOS/
29
+ build-iPhoneSimulator/
30
+
31
+ ## Specific to RubyMotion (use of CocoaPods):
32
+ #
33
+ # We recommend against adding the Pods directory to your .gitignore. However
34
+ # you should judge for yourself, the pros and cons are mentioned at:
35
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
36
+ #
37
+ # vendor/Pods/
38
+
39
+ ## Documentation cache and generated files:
40
+ /.yardoc/
41
+ /_yardoc/
42
+ /doc/
43
+ /rdoc/
44
+
45
+ ## Environment normalization:
46
+ /.bundle/
47
+ /vendor/bundle
48
+ /lib/bundler/man/
49
+
50
+ # for a library or gem, you might want to ignore these files since the code is
51
+ # intended to run in multiple environments; otherwise, check them in:
52
+ # Gemfile.lock
53
+ # .ruby-version
54
+ # .ruby-gemset
55
+
56
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
57
+ .rvmrc
data/.kitchen.ci.yml ADDED
@@ -0,0 +1,11 @@
1
+ ---
2
+ parent: ./.kitchen.parent.yml
3
+
4
+ # Configure to run on the CI machine (e.g. - Travis CI)
5
+ driver:
6
+ name: proxy
7
+ host: localhost
8
+ reset_command: "exit 0"
9
+ port: <%= ENV["machine_port"] %>
10
+ username: <%= ENV["machine_user"] %>
11
+ password: <%= ENV["machine_pass"] %>
@@ -0,0 +1,17 @@
1
+ ---
2
+ driver:
3
+ name: SHOULD_BE_OVERRIDDEN
4
+
5
+ provisioner:
6
+ name: chef_zero
7
+
8
+ platforms:
9
+ - name: ubuntu-14.04
10
+
11
+ verifier:
12
+ name: inspec
13
+
14
+ suites:
15
+ - name: default
16
+ run_list:
17
+ - recipe[test_cookbook::default]
data/.kitchen.yml ADDED
@@ -0,0 +1,6 @@
1
+ ---
2
+ parent: ./.kitchen.parent.yml
3
+
4
+ # Configure to run on the CI machine (e.g. - Travis CI)
5
+ driver:
6
+ name: docker
data/.pryrc ADDED
@@ -0,0 +1,27 @@
1
+ # vim: set ft=ruby:
2
+
3
+ require 'rb-fsevent'
4
+
5
+ # Create a reload function that reloads all files in lib
6
+ def reload!
7
+ Object.send(:remove_const, :Kitchenw)
8
+ path = File.expand_path("../", __FILE__)
9
+ Dir.glob("#{path}/**/*.rb") { |f| load f }
10
+ end
11
+
12
+ # Watch for changes and fire off the reload function
13
+ def watcher
14
+ fsevent = FSEvent.new
15
+ fsevent.watch Dir.pwd do |directories|
16
+ reload!
17
+ end
18
+ fsevent.run
19
+ end
20
+
21
+ # Load the current directory into the Ruby lib search path,
22
+ # then pull in our module
23
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/lib")
24
+ #require("kitchenw.rb")
25
+
26
+ # Kick off the monitoring thread
27
+ Thread.start { watcher }
data/.travis.yml ADDED
@@ -0,0 +1,38 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.3.4
5
+
6
+ env:
7
+ - global:
8
+ - machine_user=travis
9
+ - machine_pass=travis
10
+ - machine_port=22
11
+
12
+ dist: precise
13
+ sudo: required
14
+
15
+ before_install:
16
+ - sudo usermod -p `openssl passwd -1 'travis'` travis
17
+ - gem --version
18
+
19
+ bundler_args: --without guard integration
20
+
21
+ script:
22
+ - bundle install --with integration
23
+ - export KITCHEN_YAML=.kitchen.ci.yml
24
+ - bundle exec kitchen-pc verify ubuntu
25
+
26
+ branches:
27
+ only:
28
+ - master
29
+ - /v\d+\.\d+[a-z]/
30
+
31
+ deploy:
32
+ provider: rubygems
33
+ api_key:
34
+ secure: B50sWvo60Ok+dfOcg7RGdeD2Eg7qLRU7XiVr050WIAWdOVY5UTjaRfKAEpC6UYq9d88Ab4dE+7EwgoObwEpcfMw4Aukcu0vlsz6fvyVO7lRtIfnZ9h5hYY5b1Q1kV6IUkcr5dwYZmrZiX2lLg2FW7S/y5DkELFiZA5RA/wKworB/eGvXfR4R7LhRZQpUywJ5hAFO8TLmK/CJehhtmuwqqFvKErU2Uwmu8DcAjhLvaTbmbVpVWxWVRraf0Y3ecBqvck81irgZKD63HmT2bRtQJmA7wvxhl1KCE2pxSnxuyLRoAOklfeTOYnLGblAEYPas8DefLE2V34DRy3tg+iWXsHaFwylnRMjYD6oDaK8TWJfmkdkIyC5T0yi/+PRibbCm012eYYK1nEjOOKV3kQ48gmfJgeKRZHSel11Oosm4ws/4jxODrj4NM1AWKo7eT/gmtUUQ0gGZlSRrGCZQvzvlrJLBOSobuIhGeam5OWey7pCDeEmJRixplsat1t3KketDwnxaGu2oqkneaUxfZFivllAGxgih3Ct887vv9eH755FnJmQArDQorMrIEXKn3fg0AUoiCxJar9zJtmuwDkd03YHZaSdib8sDQutLTiMlcoRh08/QBKfuhdkqj/RToE7z8GINYrW3HrZUarBFSRB/6xRVDNa29lBaLEfEBjblKoc=
35
+ gem: test-kitchen-pc
36
+ on:
37
+ tags: true
38
+ repo: rusnyder/test-kitchen-pc
data/Berksfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://supermarket.chef.io"
2
+
3
+ cookbook "test_cookbook", path: "./test/cookbooks/test_cookbook"
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+
4
+ group :integration do
5
+ gem "berkshelf"
6
+ gem "kitchen-inspec"
7
+ gem "kitchen-docker"
8
+ end
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Russell Snyder
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,148 @@
1
+ # Test Kitchen Parent Child
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/test-kitchen-pc.svg)](http://badge.fury.io/rb/test-kitchen-pc)
4
+ [![Build Status](https://travis-ci.org/rusnyder/test-kitchen-pc.svg?branch=master)](https://travis-ci.org/rusnyder/test-kitchen-pc)
5
+
6
+ Test Kitchen Parent-Child is a thin wrapper around Test Kitchen that adds
7
+ support for inheritance in the .kitchen.yml configuration files for multi-role
8
+ projects.
9
+
10
+ ## What is this for?
11
+
12
+ While Test Kitchen is a phenomenal tool for testing a suite of infrastructure
13
+ code, it doesn't lend itself quite as well to testing many related suites that
14
+ are contained in the same project.
15
+
16
+ I'm coming at this from the Ansible world where I've got a single project that
17
+ houses all of my "roles" (machine profiles), and Test Kitchen is great for
18
+ testing each individual role. The main pain point comes when these roles all
19
+ use the same set of test configurations, and it would be great to share configs
20
+ instead of duplicating them across dozens of roles.
21
+
22
+ Here's a sample directory structure of the type of project that this extension
23
+ was written to help test:
24
+
25
+ ```
26
+ ansible-project/
27
+ ├── roles/
28
+ │ ├── ssh-role/
29
+ │ | ├── .kitchen.yml
30
+ │ | └── ...
31
+ │ ├── java-service-role/
32
+ │ | ├── .kitchen.yml
33
+ │ | └── ...
34
+ │ └── nginx-webserver-role/
35
+ │ ├── .kitchen.yml
36
+ │ └── ...
37
+ └── site.yml
38
+ ```
39
+
40
+ This project aims at reducing the duplication between the `.kitchen.yml` files
41
+ and improving the maintainability of more complex infrastructure projects.
42
+
43
+ ## Getting Started
44
+
45
+ Being only a simple extension to Test Kitchen, you should start with the
46
+ guides there. See the [Test Kitchen README][kitchen-readme] to get started
47
+ and to get your tests running without this extension.
48
+
49
+ [kitchen-readme]: https://github.com/test-kitchen/test-kitchen
50
+
51
+ ## Usage
52
+
53
+ This can be run in all the same ways as Test Kitchen, just using the command
54
+ `kitchen-pc` instead of `kitchen`.
55
+
56
+ If you're using RubyGem to manage your gems:
57
+
58
+ ```bash
59
+ # Install the gem by name
60
+ gem install test-kitchen-pc
61
+
62
+ # Run kitchen-pc the same way you run kitchen
63
+ kitchen-pc converge default-centos-6
64
+ ```
65
+
66
+ Optionally, you can use [Bundler](http://bundler.io/) to manage the gem by
67
+ adding `gem "test-kitchen-pc"` to your `Gemfile`, then:
68
+
69
+ ```bash
70
+ # Install the deps from the Gemspec
71
+ bundle install
72
+
73
+ # Run kitchen-pc the same way you run kitchen
74
+ bundle exec kitchen-pc converge default-centos-6
75
+ ```
76
+
77
+ ## Configuration
78
+
79
+ To support inheritance, this extensions adds support for the top-level
80
+ `parent` paremeter in any of the `.kitchen.yml` files that Test Kitchen
81
+ is configured to read normally.
82
+
83
+ Let's say you have a project `.kitchen.yml` that defines a set of pretty
84
+ generic settings for testing:
85
+
86
+ **`.kitchen.parent.yml`**
87
+
88
+ ```yaml
89
+ ---
90
+ driver:
91
+ name: docker
92
+
93
+ provisioner:
94
+ name: ansible_playbook
95
+ ansible_inventory: test/integration/inventory/hosts
96
+ roles_path: ../
97
+
98
+ platforms:
99
+ - name: centos-6
100
+ - name: centos-7
101
+
102
+ suites:
103
+ - name: default
104
+ ```
105
+
106
+ The majority of this configuration will be the same across all of the
107
+ infrastructure modules that you're testing. Using this extension, you
108
+ can export all common configuration to a shared file, and then source
109
+ the shared configuration using the `parent` parameter, then inline any
110
+ customizations you may need to make.
111
+
112
+ For example, say we wanted to export the above as common configuration,
113
+ but then have a role that needs to define some host aliases in the
114
+ Docker driver:
115
+
116
+ **`roles/sample-role/.kitchen.yml`**
117
+
118
+ ```yaml
119
+ ---
120
+ parent: ../../.kitchen.parent.yml
121
+
122
+ driver:
123
+ name: docker
124
+ run_options:
125
+ add-host:
126
+ - "sample-host:127.0.0.1"
127
+ ```
128
+
129
+ This will result in the `roles/sample-role/.kitchen.yml` config being merged
130
+ into the `.kitchen.parent.yml` file, with the former overriding and properties
131
+ that are specified in both.
132
+
133
+
134
+ ## Development
135
+
136
+ If you'd like to contribute, feel free to open a PR. To run the tests prior
137
+ to submitting the PR, just clone the project and run the integration tests:
138
+
139
+ ```
140
+ # Install deps
141
+ bundle install
142
+
143
+ # Run integration tests
144
+ bundle exec kitchen-pc test
145
+ ```
146
+
147
+
148
+
data/bin/kitchen-pc ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+
4
+ # Trap interrupts to quit cleanly. See
5
+ # https://twitter.com/mitchellh/status/283014103189053442
6
+ Signal.trap("INT") { exit 1 }
7
+
8
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), %w{.. lib})
9
+ require "rubygems"
10
+ require "kitchen/pc/cli"
11
+ require "kitchen/errors"
12
+
13
+ Kitchen.with_friendly_errors { Kitchen::PC::CLI.start }
@@ -0,0 +1,90 @@
1
+ require "kitchen"
2
+ require "kitchen/cli"
3
+ require "kitchen/config"
4
+ require "kitchen/loader/yaml"
5
+ require "tempfile"
6
+ require "yaml"
7
+
8
+ module Kitchen
9
+ module PC
10
+ class CLI < Kitchen::CLI
11
+ # Intercept the CLI call and merge project and parent configs
12
+ # before firing off the proper CLI intialization
13
+ def initialize(*args)
14
+ # Read the configs as provided
15
+ loader = Kitchen::Loader::YAML.new(
16
+ project_config: ENV["KITCHEN_YAML"],
17
+ local_config: ENV["KITCHEN_LOCAL_YAML"],
18
+ global_config: ENV["KITCHEN_GLOBAL_YAML"]
19
+ )
20
+ # For any configs that have parents, merge in the parents
21
+ # and write out to a temporary file, then set the associated
22
+ # environment variable for Test Kitchen to use that file
23
+ tmp_files = []
24
+ configs = [
25
+ { :path_fn => :config_file, :yaml_fn => :yaml, :env_var => 'KITCHEN_YAML' },
26
+ { :path_fn => :local_config_file, :yaml_fn => :local_yaml, :env_var => 'KITCHEN_LOCAL_YAML' },
27
+ { :path_fn => :global_config_file, :yaml_fn => :global_yaml, :env_var => 'KITCHEN_GLOBAL_YAML' },
28
+ ].each do |params|
29
+ config_path = loader.send params[:path_fn]
30
+ config = loader.send params[:yaml_fn]
31
+ if config.key?('parent')
32
+ merged_file = self.class.merge_parent(config)
33
+ ENV[params[:env_var]] = merged_file
34
+ tmp_files.push(merged_file)
35
+ else
36
+ ENV[params[:env_var]] = config_path
37
+ end
38
+ end
39
+
40
+ # Cleanup the temp config files on exit
41
+ at_exit do
42
+ begin
43
+ File.unlink(*tmp_files)
44
+ rescue
45
+ # ignore cleanup errors
46
+ end
47
+ end
48
+
49
+ # Finally delegate to super
50
+ super
51
+ end
52
+
53
+ def self.merge_parent(config)
54
+ # If the config doesn't have a parent, except
55
+ if !config.key?('parent')
56
+ raise "Bad Programmer! merge_parent called on a config without a parent: #{config.to_s}"
57
+ end
58
+ # Create a temp file to write the merged config
59
+ file = Tempfile.new(['test-kitchen-config', '.yml'])
60
+ begin
61
+ parent = parse_config(File.expand_path(config['parent']))
62
+ merged = merge_configs(parent, config)
63
+ merged.delete('parent')
64
+ file.write merged.to_yaml
65
+ rescue
66
+ file.unlink # Only unlink here if an error occurred,
67
+ # otherwise we'll leave that up to the caller
68
+ # to unlink eonce finished processing the file
69
+ raise # Re-raise the original exception
70
+ ensure
71
+ file.close
72
+ end
73
+ return file.path
74
+ end
75
+
76
+ def self.parse_config(config_path)
77
+ str = Kitchen::Loader::YAML.new.send(:yaml_string, config_path)
78
+ Kitchen::Loader::YAML.new.send(:parse_yaml_string, str, config_path)
79
+ end
80
+
81
+ def self.merge_configs(parent, child)
82
+ normalize(parent).rmerge(normalize(child))
83
+ end
84
+
85
+ def self.normalize(obj)
86
+ Kitchen::Loader::YAML.new.send(:normalize, obj)
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,7 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ module Kitchen
4
+ module PC
5
+ VERSION = "0.1.0".freeze
6
+ end
7
+ end
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "kitchen/pc/version"
5
+ require "English"
6
+
7
+ Gem::Specification.new do |gem|
8
+ gem.name = 'test-kitchen-pc'
9
+ gem.version = Kitchen::PC::VERSION
10
+ gem.license = 'MIT'
11
+ gem.authors = ['Russell Snyder']
12
+ gem.email = ['ru.snyder@gmail.com']
13
+ gem.summary = 'Test Kitchen Parent-Child adds config inheritance to '\
14
+ 'Test Kitchen .kitchen.yml files'
15
+ gem.description = 'Test Kitchen Parent-Child is a thin wrapper around ' \
16
+ 'Test Kitchen that adds support for inheritance in the ' \
17
+ '.kitchen.yml configuration files for multi-role projects.'
18
+ gem.homepage = 'https://github.com/rusnyder/test-kitchen-pc'
19
+
20
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
21
+ gem.executables = %w{kitchen-pc}
22
+ #gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
23
+ gem.require_paths = ["lib"]
24
+
25
+ gem.required_ruby_version = ">= 2.3"
26
+
27
+ gem.add_dependency 'test-kitchen', '>= 1.0.0'
28
+
29
+ # General test/build gems
30
+ gem.add_development_dependency 'bundler'
31
+ gem.add_development_dependency 'rake'
32
+
33
+ # Integration testing gems
34
+ gem.add_development_dependency 'kitchen-inspec', '~> 0.14'
35
+ end
@@ -0,0 +1,6 @@
1
+ name "test_cookbook"
2
+ maintainer "Maintainer"
3
+ maintainer_email "Maintainer@example.com"
4
+ license "MIT"
5
+ description "Used for testing test-kitchen-pc"
6
+ version "0.1.0"
@@ -0,0 +1 @@
1
+ directory "/tk_test_directory"
@@ -0,0 +1,3 @@
1
+ describe directory("/tk_test_directory") do
2
+ it { should exist }
3
+ end
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: test-kitchen-pc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Russell Snyder
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: test-kitchen
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: kitchen-inspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.14'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.14'
69
+ description: Test Kitchen Parent-Child is a thin wrapper around Test Kitchen that
70
+ adds support for inheritance in the .kitchen.yml configuration files for multi-role
71
+ projects.
72
+ email:
73
+ - ru.snyder@gmail.com
74
+ executables:
75
+ - kitchen-pc
76
+ extensions: []
77
+ extra_rdoc_files: []
78
+ files:
79
+ - ".gitignore"
80
+ - ".kitchen.ci.yml"
81
+ - ".kitchen.parent.yml"
82
+ - ".kitchen.yml"
83
+ - ".pryrc"
84
+ - ".travis.yml"
85
+ - Berksfile
86
+ - Gemfile
87
+ - LICENSE
88
+ - README.md
89
+ - bin/kitchen-pc
90
+ - lib/kitchen/pc/cli.rb
91
+ - lib/kitchen/pc/version.rb
92
+ - test-kitchen-pc.gemspec
93
+ - test/cookbooks/test_cookbook/metadata.rb
94
+ - test/cookbooks/test_cookbook/recipes/default.rb
95
+ - test/integration/default/inspec/default_spec.rb
96
+ homepage: https://github.com/rusnyder/test-kitchen-pc
97
+ licenses:
98
+ - MIT
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '2.3'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubyforge_project:
116
+ rubygems_version: 2.6.11
117
+ signing_key:
118
+ specification_version: 4
119
+ summary: Test Kitchen Parent-Child adds config inheritance to Test Kitchen .kitchen.yml
120
+ files
121
+ test_files: []