kitchen-terraform 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +61 -27
- data/lib/kitchen/driver/terraform.rb +2 -3
- data/lib/kitchen/provisioner/terraform.rb +3 -0
- data/lib/kitchen/verifier/terraform.rb +36 -21
- data/lib/terraform/apply_command.rb +4 -3
- data/lib/terraform/client.rb +23 -8
- data/lib/terraform/command.rb +1 -2
- data/lib/terraform/group.rb +22 -18
- data/lib/terraform/output_command.rb +3 -2
- data/lib/terraform/{inspec_runner.rb → parallelism_config.rb} +12 -16
- data/lib/terraform/plan_command.rb +6 -3
- data/lib/terraform/version.rb +1 -1
- data/lib/terraform/zero_seven_output.rb +1 -0
- data/lib/terraform/zero_six_output.rb +1 -0
- metadata +46 -36
- metadata.gz.sig +2 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1df0e3998d394adc8988feb446bfc1149575e5a0
|
4
|
+
data.tar.gz: 0f0915e9ad1c7be1a4c941bf4b0d357a455d6b4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eca7ed84aaa1026a85260bffca9696d0f5d0af5c3b14a414ae97514fed568ef95b17eacd89bac1e474be491ed4a2a399475b37daafae62e27836854260c83e66
|
7
|
+
data.tar.gz: 9db90acbe78ad0f876de61b00af6ec2a490115a4a82ed21be8ec35351e24ba19834d4c7a2e3a6a3c31704e560ba185c6bcf9b78b9a9c8e6a856614341074f032
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
# kitchen-terraform
|
1
|
+
# ![kitchen-terraform logo](assets/logo.png) kitchen-terraform
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/kitchen-terraform.svg)](https://badge.fury.io/rb/kitchen-terraform)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/newcontext-oss/kitchen-terraform/badges/gpa.svg)](https://codeclimate.com/github/newcontext-oss/kitchen-terraform)
|
5
|
+
[![Issue Count](https://codeclimate.com/github/newcontext-oss/kitchen-terraform/badges/issue_count.svg)](https://codeclimate.com/github/newcontext-oss/kitchen-terraform)
|
6
|
+
[![Build Status Master](https://travis-ci.org/newcontext-oss/kitchen-terraform.svg?branch=master)](https://travis-ci.org/newcontext-oss/kitchen-terraform)
|
7
|
+
[![Test Coverage](https://codeclimate.com/github/newcontext-oss/kitchen-terraform/badges/coverage.svg)](https://codeclimate.com/github/newcontext-oss/kitchen-terraform/coverage)
|
2
8
|
|
3
9
|
kitchen-terraform is a set of [Test Kitchen] plugins for testing
|
4
10
|
[Terraform configuration].
|
@@ -9,7 +15,7 @@ kitchen-terraform is a set of [Test Kitchen] plugins for testing
|
|
9
15
|
|
10
16
|
## Requirements
|
11
17
|
|
12
|
-
- [Ruby] **(~> 2.
|
18
|
+
- [Ruby] **(~> 2.1)**
|
13
19
|
|
14
20
|
- [Bundler] **(~> 1.12)**
|
15
21
|
|
@@ -31,9 +37,9 @@ which means it can be [installed with Bundler].
|
|
31
37
|
Once Bundler is installed, add kitchen-terraform to the project's Gemfile:
|
32
38
|
|
33
39
|
```rb
|
34
|
-
source 'https://rubygems.org'
|
35
|
-
|
36
|
-
|
40
|
+
source 'https://rubygems.org/' do
|
41
|
+
gem 'kitchen-terraform', '~> 0.4'
|
42
|
+
end
|
37
43
|
```
|
38
44
|
|
39
45
|
Then, use Bundler to install the gems:
|
@@ -175,6 +181,23 @@ provisioner:
|
|
175
181
|
|
176
182
|
The default `directory` is the current working directory of Test Kitchen.
|
177
183
|
|
184
|
+
##### parallelism
|
185
|
+
|
186
|
+
The number of concurrent operations to allow for the Terraform `apply` and
|
187
|
+
`plan` commands.
|
188
|
+
|
189
|
+
###### Example .kitchen.yml
|
190
|
+
|
191
|
+
```yaml
|
192
|
+
provisioner:
|
193
|
+
name: terraform
|
194
|
+
parallelism: 2
|
195
|
+
```
|
196
|
+
|
197
|
+
###### Default
|
198
|
+
|
199
|
+
The default `parallelism` is 10.
|
200
|
+
|
178
201
|
##### variable_files
|
179
202
|
|
180
203
|
A collection of pathnames of [Terraform variable files] to be evaluated
|
@@ -262,43 +285,50 @@ configuration defined by that plugin with the exception of the `port` and
|
|
262
285
|
|
263
286
|
##### groups
|
264
287
|
|
265
|
-
A collection of
|
266
|
-
connection options for the different server instance groups in the
|
288
|
+
A collection of mappings that define how to test different resources in the
|
267
289
|
Terraform configuration.
|
268
290
|
|
269
|
-
[InSpec control]: http://inspec.io/docs/reference/dsl_inspec/
|
270
|
-
|
271
291
|
Each group consists of:
|
272
292
|
|
273
|
-
- a name to use for logging purposes
|
293
|
+
- a `name` to use for logging purposes
|
274
294
|
|
275
|
-
-
|
276
|
-
names to define for the suite's InSpec profile
|
295
|
+
- an optional `attributes` mapping of InSpec profile attribute names to
|
296
|
+
Terraform output variable names to define for the suite's InSpec profile
|
277
297
|
|
278
|
-
- a collection of controls to include from the suite's
|
298
|
+
- a `controls` collection of [InSpec controls] to include from the suite's
|
299
|
+
InSpec profile
|
279
300
|
|
280
|
-
- a
|
281
|
-
|
301
|
+
- a mapping of InSpec profile attribute names to Terraform output variable
|
302
|
+
names; the attributes will be with the resolved output values
|
282
303
|
|
283
|
-
-
|
304
|
+
- an optional `hostnames` output variable name to use for extracting hostnames
|
305
|
+
from the Terraform state; the resolved output value is assumed to be a
|
306
|
+
list of strings or a string in CSV format
|
284
307
|
|
285
|
-
-
|
308
|
+
- an optional `port` to use when connecting to the group's hosts
|
309
|
+
|
310
|
+
- an optional `username` to use when connecting to the group's hosts
|
311
|
+
|
312
|
+
If `hostnames` is empty then the group's `controls` will be executed
|
313
|
+
locally; this enables testing of a provider's API to verify non-server
|
314
|
+
resources.
|
315
|
+
|
316
|
+
[InSpec controls]: http://inspec.io/docs/reference/dsl_inspec/
|
286
317
|
|
287
318
|
###### Example .kitchen.yml
|
288
319
|
|
289
320
|
```yaml
|
290
|
-
---
|
291
321
|
verifier:
|
292
322
|
name: terraform
|
293
323
|
groups:
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
324
|
+
- name: arbitrary
|
325
|
+
attributes:
|
326
|
+
foo: bar
|
327
|
+
controls:
|
328
|
+
- biz
|
329
|
+
hostnames: hostnames_output
|
330
|
+
port: 123
|
331
|
+
username: test-user
|
302
332
|
```
|
303
333
|
|
304
334
|
###### Defaults
|
@@ -307,10 +337,14 @@ The default `groups` collection is empty.
|
|
307
337
|
|
308
338
|
For each group:
|
309
339
|
|
310
|
-
- the default `attributes` mapping
|
340
|
+
- the default `attributes` mapping consists of equivalently named
|
341
|
+
attributes for each output variable; additional or overridden
|
342
|
+
associations can be added.
|
311
343
|
|
312
344
|
- the default `controls` collection is empty
|
313
345
|
|
346
|
+
- the default `hostnames` string is empty
|
347
|
+
|
314
348
|
- the default `port` is obtained from the transport
|
315
349
|
|
316
350
|
- the default `username` is obtained from the transport
|
@@ -48,12 +48,11 @@ module Kitchen
|
|
48
48
|
|
49
49
|
def verify_dependencies
|
50
50
|
case version
|
51
|
-
when /v0\.
|
51
|
+
when /(v[^0]|v0\.[^67])/
|
52
|
+
raise Kitchen::UserError, 'Only Terraform v0.7 and v0.6 are supported'
|
52
53
|
when /v0\.6/
|
53
54
|
log_deprecation aspect: 'v0.6', remediation: 'Update to v0.7',
|
54
55
|
version: '1.0'
|
55
|
-
else
|
56
|
-
raise Kitchen::UserError, 'Only Terraform v0.7 and v0.6 are supported'
|
57
56
|
end
|
58
57
|
end
|
59
58
|
end
|
@@ -19,6 +19,7 @@ require 'terraform/apply_timeout_config'
|
|
19
19
|
require 'terraform/color_config'
|
20
20
|
require 'terraform/configurable'
|
21
21
|
require 'terraform/directory_config'
|
22
|
+
require 'terraform/parallelism_config'
|
22
23
|
require 'terraform/plan_config'
|
23
24
|
require 'terraform/state_config'
|
24
25
|
require 'terraform/variable_files_config'
|
@@ -36,6 +37,8 @@ module Kitchen
|
|
36
37
|
|
37
38
|
include ::Terraform::DirectoryConfig
|
38
39
|
|
40
|
+
include ::Terraform::ParallelismConfig
|
41
|
+
|
39
42
|
include ::Terraform::PlanConfig
|
40
43
|
|
41
44
|
include ::Terraform::StateConfig
|
@@ -29,48 +29,63 @@ module Kitchen
|
|
29
29
|
|
30
30
|
kitchen_verifier_api_version 2
|
31
31
|
|
32
|
+
def call(state)
|
33
|
+
verify_groups options: runner_options(transport, state)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
32
38
|
def add_targets(runner:)
|
33
39
|
collect_tests.each { |test| runner.add_target test }
|
34
40
|
end
|
35
41
|
|
36
|
-
def
|
37
|
-
|
38
|
-
|
42
|
+
def execute(group:, options:)
|
43
|
+
options.merge! group.options
|
44
|
+
::Inspec::Runner.new(options).tap do |runner|
|
45
|
+
add_targets runner: runner
|
46
|
+
validate exit_code: runner.run
|
47
|
+
end
|
39
48
|
end
|
40
49
|
|
41
|
-
def
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
50
|
+
def execute_local(group:, options:)
|
51
|
+
options[:backend] = 'local'
|
52
|
+
info "Verifying group '#{group.name}'"
|
53
|
+
execute group: group, options: options
|
46
54
|
end
|
47
55
|
|
48
|
-
def
|
49
|
-
|
56
|
+
def execute_remote(group:, options:)
|
57
|
+
driver.output_value list: true, name: group.hostnames do |hostname|
|
58
|
+
options[:host] = hostname
|
59
|
+
info "Verifying host '#{hostname}' of group '#{group.name}'"
|
60
|
+
execute group: group, options: options
|
61
|
+
end
|
50
62
|
end
|
51
63
|
|
52
64
|
def resolve_attributes(group:)
|
65
|
+
driver.each_output_name do |output_name|
|
66
|
+
group.store_attribute key: output_name, value: output_name
|
67
|
+
end
|
53
68
|
group.each_attribute do |key, output_name|
|
54
69
|
group.store_attribute key: key,
|
55
70
|
value: driver.output_value(name: output_name)
|
56
71
|
end
|
57
72
|
end
|
58
73
|
|
59
|
-
def
|
60
|
-
|
61
|
-
end
|
74
|
+
def validate(exit_code:)
|
75
|
+
return if exit_code.zero?
|
62
76
|
|
63
|
-
|
64
|
-
raise InstanceFailure, "Inspec Runner returns #{exit_code}" unless
|
65
|
-
exit_code.zero?
|
77
|
+
raise ::Kitchen::InstanceFailure, "Inspec Runner returns #{exit_code}"
|
66
78
|
end
|
67
79
|
|
68
|
-
|
69
|
-
|
70
|
-
|
80
|
+
def verify(group:, options:)
|
81
|
+
resolve_attributes group: group
|
82
|
+
group.if_local { return execute_local group: group, options: options }
|
83
|
+
execute_remote group: group, options: options
|
84
|
+
end
|
71
85
|
|
72
|
-
def
|
73
|
-
|
86
|
+
def verify_groups(options:)
|
87
|
+
config[:groups]
|
88
|
+
.each { |group| verify group: group, options: options.dup }
|
74
89
|
end
|
75
90
|
end
|
76
91
|
end
|
@@ -27,15 +27,16 @@ module Terraform
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def options
|
30
|
-
"-input=false -state=#{state} #{color_switch}"
|
30
|
+
"-input=false -parallelism=#{parallelism} -state=#{state} #{color_switch}"
|
31
31
|
end
|
32
32
|
|
33
33
|
private
|
34
34
|
|
35
|
-
attr_accessor :state
|
35
|
+
attr_accessor :parallelism, :state
|
36
36
|
|
37
|
-
def initialize_attributes(color:, state:)
|
37
|
+
def initialize_attributes(color:, parallelism:, state:)
|
38
38
|
self.color = color
|
39
|
+
self.parallelism = parallelism
|
39
40
|
self.state = state
|
40
41
|
end
|
41
42
|
end
|
data/lib/terraform/client.rb
CHANGED
@@ -30,8 +30,8 @@ module Terraform
|
|
30
30
|
|
31
31
|
def apply_execution_plan
|
32
32
|
execute command: ApplyCommand.new(
|
33
|
-
color: provisioner[:color],
|
34
|
-
target: provisioner[:plan]
|
33
|
+
color: provisioner[:color], parallelism: provisioner[:parallelism],
|
34
|
+
state: provisioner[:state], target: provisioner[:plan]
|
35
35
|
), timeout: provisioner[:apply_timeout]
|
36
36
|
end
|
37
37
|
|
@@ -54,13 +54,17 @@ module Terraform
|
|
54
54
|
) { |value| list ? value.each(&block) : (return value) }
|
55
55
|
end
|
56
56
|
|
57
|
+
def each_output_name(&block)
|
58
|
+
execute(
|
59
|
+
command: OutputCommand.new(
|
60
|
+
list: false, state: provisioner[:state], version: version,
|
61
|
+
return_raw: true
|
62
|
+
)
|
63
|
+
) { |output| JSON.parse(output).each_key(&block) }
|
64
|
+
end
|
65
|
+
|
57
66
|
def plan_execution(destroy:)
|
58
|
-
execute command:
|
59
|
-
color: provisioner[:color], destroy: destroy, out: provisioner[:plan],
|
60
|
-
state: provisioner[:state], target: provisioner[:directory],
|
61
|
-
variables: provisioner[:variables],
|
62
|
-
variable_files: provisioner[:variable_files]
|
63
|
-
)
|
67
|
+
execute command: plan_command(destroy: destroy)
|
64
68
|
end
|
65
69
|
|
66
70
|
def validate_configuration_files
|
@@ -72,5 +76,16 @@ module Terraform
|
|
72
76
|
return value.slice(/v\d+\.\d+\.\d+/)
|
73
77
|
end
|
74
78
|
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def plan_command(destroy:)
|
83
|
+
PlanCommand
|
84
|
+
.new color: provisioner[:color], destroy: destroy,
|
85
|
+
out: provisioner[:plan], parallelism: provisioner[:parallelism],
|
86
|
+
state: provisioner[:state], target: provisioner[:directory],
|
87
|
+
variables: provisioner[:variables],
|
88
|
+
variable_files: provisioner[:variable_files]
|
89
|
+
end
|
75
90
|
end
|
76
91
|
end
|
data/lib/terraform/command.rb
CHANGED
data/lib/terraform/group.rb
CHANGED
@@ -14,27 +14,34 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
+
require 'kitchen/util'
|
18
|
+
|
17
19
|
module Terraform
|
18
20
|
# Group of Terraform server instances to be verified
|
19
21
|
class Group
|
20
22
|
def each_attribute(&block)
|
21
|
-
data[:attributes].each_pair(&block)
|
22
|
-
end
|
23
|
-
|
24
|
-
def evaluate(verifier:)
|
25
|
-
verifier.merge options: options
|
26
|
-
verifier.resolve_attributes group: self
|
27
|
-
verifier.resolve_hostnames group: self do |hostname|
|
28
|
-
verifier.info "Verifying host '#{hostname}' of group '#{data[:name]}'"
|
29
|
-
verifier.merge options: { host: hostname }
|
30
|
-
verifier.execute
|
31
|
-
end
|
23
|
+
data[:attributes].dup.each_pair(&block)
|
32
24
|
end
|
33
25
|
|
34
26
|
def hostnames
|
35
27
|
data[:hostnames]
|
36
28
|
end
|
37
29
|
|
30
|
+
def if_local
|
31
|
+
yield if hostnames.empty?
|
32
|
+
end
|
33
|
+
|
34
|
+
def name
|
35
|
+
data[:name]
|
36
|
+
end
|
37
|
+
|
38
|
+
def options
|
39
|
+
{
|
40
|
+
attributes: attributes, controls: data[:controls], port: data[:port],
|
41
|
+
user: data[:username]
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
38
45
|
def store_attribute(key:, value:)
|
39
46
|
data[:attributes][key] = value
|
40
47
|
end
|
@@ -43,15 +50,12 @@ module Terraform
|
|
43
50
|
|
44
51
|
attr_accessor :data
|
45
52
|
|
46
|
-
def
|
47
|
-
|
53
|
+
def attributes
|
54
|
+
::Kitchen::Util.stringified_hash data[:attributes]
|
48
55
|
end
|
49
56
|
|
50
|
-
def
|
51
|
-
|
52
|
-
attributes: data[:attributes], controls: data[:controls],
|
53
|
-
port: data[:port], user: data[:username]
|
54
|
-
}
|
57
|
+
def initialize(data:)
|
58
|
+
self.data = data
|
55
59
|
end
|
56
60
|
end
|
57
61
|
end
|
@@ -30,12 +30,13 @@ module Terraform
|
|
30
30
|
|
31
31
|
private
|
32
32
|
|
33
|
-
attr_accessor :list, :state
|
33
|
+
attr_accessor :list, :state, :return_raw
|
34
34
|
|
35
|
-
def initialize_attributes(list:, version:, state:)
|
35
|
+
def initialize_attributes(list:, version:, state:, return_raw: false)
|
36
36
|
extend_behaviour version: version
|
37
37
|
self.list = list
|
38
38
|
self.state = state
|
39
|
+
self.return_raw = return_raw
|
39
40
|
end
|
40
41
|
|
41
42
|
def version_behaviours
|
@@ -14,25 +14,21 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require 'inspec'
|
18
|
-
require 'kitchen'
|
19
|
-
|
20
17
|
module Terraform
|
21
|
-
#
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
# Behaviour for the [:parallelism] config option
|
19
|
+
module ParallelismConfig
|
20
|
+
def self.included(configurable_class)
|
21
|
+
configurable_class
|
22
|
+
.required_config :parallelism do |_, value, configurable|
|
23
|
+
configurable.coerce_parallelism value: value
|
24
|
+
end
|
25
|
+
configurable_class.default_config :parallelism, 10
|
29
26
|
end
|
30
27
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
super
|
28
|
+
def coerce_parallelism(value:)
|
29
|
+
config[:parallelism] = Integer value
|
30
|
+
rescue ::ArgumentError, ::TypeError
|
31
|
+
config_error attribute: 'parallelism', expected: 'an integer'
|
36
32
|
end
|
37
33
|
end
|
38
34
|
end
|
@@ -27,20 +27,23 @@ module Terraform
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def options
|
30
|
-
"-destroy=#{destroy} -input=false -out=#{out}
|
30
|
+
"-destroy=#{destroy} -input=false -out=#{out} " \
|
31
|
+
"-parallelism=#{parallelism} -state=#{state} " \
|
31
32
|
"#{color_switch}#{processed_variables}#{processed_variable_files}"
|
32
33
|
end
|
33
34
|
|
34
35
|
private
|
35
36
|
|
36
|
-
attr_accessor :destroy, :out, :state, :variables,
|
37
|
+
attr_accessor :destroy, :out, :parallelism, :state, :variables,
|
38
|
+
:variable_files
|
37
39
|
|
38
40
|
def initialize_attributes(
|
39
|
-
color:, destroy:, out:, state:, variables:, variable_files:
|
41
|
+
color:, destroy:, out:, parallelism:, state:, variables:, variable_files:
|
40
42
|
)
|
41
43
|
self.color = color
|
42
44
|
self.destroy = destroy
|
43
45
|
self.out = out
|
46
|
+
self.parallelism = parallelism
|
44
47
|
self.state = state
|
45
48
|
self.variables = variables
|
46
49
|
self.variable_files = variable_files
|
data/lib/terraform/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Lane
|
8
|
+
- Clay Thomas
|
9
|
+
- Erik R. Rygg
|
10
|
+
- Ewa Czechowska
|
8
11
|
- Kevin Dickerson
|
12
|
+
- Kyle Sexton
|
9
13
|
- Michael Glenney
|
10
14
|
- Nell Shamrell-Harrington
|
11
15
|
- Nick Willever
|
16
|
+
- Walter Dolce
|
12
17
|
autorequire:
|
13
18
|
bindir: bin
|
14
19
|
cert_chain:
|
@@ -35,7 +40,7 @@ cert_chain:
|
|
35
40
|
KucGZX3OeACVUSpmCOCQyma6sDHYWQZM/IgWi7tbLtG5b2GslkauPm4S3wadHi6W
|
36
41
|
LOU=
|
37
42
|
-----END CERTIFICATE-----
|
38
|
-
date: 2016-
|
43
|
+
date: 2016-12-24 00:00:00.000000000 Z
|
39
44
|
dependencies:
|
40
45
|
- !ruby/object:Gem::Dependency
|
41
46
|
name: bundler-audit
|
@@ -57,6 +62,20 @@ dependencies:
|
|
57
62
|
- - ">="
|
58
63
|
- !ruby/object:Gem::Version
|
59
64
|
version: 0.5.0
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: codeclimate-test-reporter
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '1.0'
|
72
|
+
type: :development
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '1.0'
|
60
79
|
- !ruby/object:Gem::Dependency
|
61
80
|
name: guard
|
62
81
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,6 +210,20 @@ dependencies:
|
|
191
210
|
- - ">="
|
192
211
|
- !ruby/object:Gem::Version
|
193
212
|
version: 0.10.3
|
213
|
+
- !ruby/object:Gem::Dependency
|
214
|
+
name: pry-coolline
|
215
|
+
requirement: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - "~>"
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0.2'
|
220
|
+
type: :development
|
221
|
+
prerelease: false
|
222
|
+
version_requirements: !ruby/object:Gem::Requirement
|
223
|
+
requirements:
|
224
|
+
- - "~>"
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: '0.2'
|
194
227
|
- !ruby/object:Gem::Dependency
|
195
228
|
name: rspec
|
196
229
|
requirement: !ruby/object:Gem::Requirement
|
@@ -232,39 +265,19 @@ dependencies:
|
|
232
265
|
- !ruby/object:Gem::Version
|
233
266
|
version: 0.40.0
|
234
267
|
- !ruby/object:Gem::Dependency
|
235
|
-
name:
|
236
|
-
requirement: !ruby/object:Gem::Requirement
|
237
|
-
requirements:
|
238
|
-
- - "~>"
|
239
|
-
- !ruby/object:Gem::Version
|
240
|
-
version: '2.9'
|
241
|
-
type: :development
|
242
|
-
prerelease: false
|
243
|
-
version_requirements: !ruby/object:Gem::Requirement
|
244
|
-
requirements:
|
245
|
-
- - "~>"
|
246
|
-
- !ruby/object:Gem::Version
|
247
|
-
version: '2.9'
|
248
|
-
- !ruby/object:Gem::Dependency
|
249
|
-
name: simplecov
|
268
|
+
name: travis
|
250
269
|
requirement: !ruby/object:Gem::Requirement
|
251
270
|
requirements:
|
252
271
|
- - "~>"
|
253
272
|
- !ruby/object:Gem::Version
|
254
|
-
version: '
|
255
|
-
- - ">="
|
256
|
-
- !ruby/object:Gem::Version
|
257
|
-
version: 0.11.2
|
273
|
+
version: '1.8'
|
258
274
|
type: :development
|
259
275
|
prerelease: false
|
260
276
|
version_requirements: !ruby/object:Gem::Requirement
|
261
277
|
requirements:
|
262
278
|
- - "~>"
|
263
279
|
- !ruby/object:Gem::Version
|
264
|
-
version: '
|
265
|
-
- - ">="
|
266
|
-
- !ruby/object:Gem::Version
|
267
|
-
version: 0.11.2
|
280
|
+
version: '1.8'
|
268
281
|
- !ruby/object:Gem::Dependency
|
269
282
|
name: inspec
|
270
283
|
requirement: !ruby/object:Gem::Requirement
|
@@ -363,8 +376,8 @@ files:
|
|
363
376
|
- lib/terraform/get_command.rb
|
364
377
|
- lib/terraform/group.rb
|
365
378
|
- lib/terraform/groups_config.rb
|
366
|
-
- lib/terraform/inspec_runner.rb
|
367
379
|
- lib/terraform/output_command.rb
|
380
|
+
- lib/terraform/parallelism_config.rb
|
368
381
|
- lib/terraform/plan_command.rb
|
369
382
|
- lib/terraform/plan_config.rb
|
370
383
|
- lib/terraform/show_command.rb
|
@@ -376,7 +389,7 @@ files:
|
|
376
389
|
- lib/terraform/version_command.rb
|
377
390
|
- lib/terraform/zero_seven_output.rb
|
378
391
|
- lib/terraform/zero_six_output.rb
|
379
|
-
homepage: https://github.com/newcontext/kitchen-terraform
|
392
|
+
homepage: https://github.com/newcontext-oss/kitchen-terraform
|
380
393
|
licenses:
|
381
394
|
- Apache-2.0
|
382
395
|
metadata: {}
|
@@ -386,24 +399,21 @@ require_paths:
|
|
386
399
|
- lib
|
387
400
|
required_ruby_version: !ruby/object:Gem::Requirement
|
388
401
|
requirements:
|
389
|
-
- - "~>"
|
390
|
-
- !ruby/object:Gem::Version
|
391
|
-
version: '2.3'
|
392
402
|
- - ">="
|
393
403
|
- !ruby/object:Gem::Version
|
394
|
-
version: 2.
|
404
|
+
version: '2.1'
|
405
|
+
- - "<"
|
406
|
+
- !ruby/object:Gem::Version
|
407
|
+
version: '2.4'
|
395
408
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
396
409
|
requirements:
|
397
|
-
- - "~>"
|
398
|
-
- !ruby/object:Gem::Version
|
399
|
-
version: '2.6'
|
400
410
|
- - ">="
|
401
411
|
- !ruby/object:Gem::Version
|
402
|
-
version:
|
412
|
+
version: '0'
|
403
413
|
requirements:
|
404
414
|
- Terraform >= 0.6.0, < 0.8.0
|
405
415
|
rubyforge_project:
|
406
|
-
rubygems_version: 2.
|
416
|
+
rubygems_version: 2.5.2
|
407
417
|
signing_key:
|
408
418
|
specification_version: 4
|
409
419
|
summary: Test Kitchen plugins for testing Terraform projects
|
metadata.gz.sig
CHANGED
@@ -1,4 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Uk�����x�+q�xO�d���)�R�P8��ٌ�f��t��tb��Oi�v�����.>��f���G�E��mY���{^M��Fr"�-��x��\
|
4
|
-
�����.�o�S{�X�-JG��P,�`8M�!���*��s��-N��+[�(UÐ}�����~�4�Ap��Ve��H�efyăo
|
1
|
+
���o��6��p�����ZT�B;zH�N��W˔N��p9^^d2�$H������W�U[zy��Ώ������sج��s�U��jRYs����z7�B����h�(;Pn�W�k��ϯ�0;��L`4�1k��HW�ŢP�h}���)5�9Vaeʕi��O{�����Y|
|
2
|
+
KP�Y���f>�����1�z��|)�(33t�XS9']�HJS
|