kitchen-terraform 3.0.0 → 3.1.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +342 -46
- data/lib/kitchen/driver/terraform.rb +62 -130
- data/lib/kitchen/provisioner/terraform.rb +7 -8
- data/lib/kitchen/terraform/client_version_verifier.rb +25 -23
- data/lib/kitchen/terraform/command.rb +21 -0
- data/lib/kitchen/terraform/command/output.rb +71 -0
- data/lib/kitchen/terraform/config_attribute/backend_configurations.rb +1 -1
- data/lib/kitchen/terraform/config_attribute/groups.rb +60 -33
- data/lib/kitchen/terraform/config_attribute/variables.rb +1 -1
- data/lib/kitchen/terraform/error.rb +21 -0
- data/lib/kitchen/terraform/shell_out.rb +51 -32
- data/lib/kitchen/terraform/version.rb +1 -1
- data/lib/kitchen/verifier/terraform.rb +20 -27
- data/lib/kitchen/verifier/terraform/configure_inspec_runner_attributes.rb +16 -27
- data/lib/kitchen/verifier/terraform/configure_inspec_runner_controls.rb +9 -7
- data/lib/kitchen/verifier/terraform/configure_inspec_runner_port.rb +9 -6
- data/lib/kitchen/verifier/terraform/configure_inspec_runner_ssh_key.rb +8 -10
- data/lib/kitchen/verifier/terraform/configure_inspec_runner_user.rb +9 -6
- data/lib/kitchen/verifier/terraform/enumerate_groups_and_hostnames.rb +41 -44
- metadata +144 -34
- metadata.gz.sig +2 -3
@@ -14,11 +14,11 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "dry/monads"
|
18
17
|
require "kitchen/verifier"
|
19
18
|
require "kitchen/terraform/config_attribute/color"
|
20
19
|
require "kitchen/terraform/config_attribute/groups"
|
21
20
|
require "kitchen/terraform/configurable"
|
21
|
+
require "kitchen/terraform/error"
|
22
22
|
require "kitchen/verifier/inspec"
|
23
23
|
|
24
24
|
# The verifier utilizes the {https://www.inspec.io/ InSpec infrastructure testing framework} to verify the behaviour and
|
@@ -71,10 +71,6 @@ require "kitchen/verifier/inspec"
|
|
71
71
|
class ::Kitchen::Verifier::Terraform < ::Kitchen::Verifier::Inspec
|
72
72
|
kitchen_verifier_api_version 2
|
73
73
|
|
74
|
-
include ::Dry::Monads::Either::Mixin
|
75
|
-
|
76
|
-
include ::Dry::Monads::Maybe::Mixin
|
77
|
-
|
78
74
|
include ::Kitchen::Terraform::ConfigAttribute::Color
|
79
75
|
|
80
76
|
include ::Kitchen::Terraform::ConfigAttribute::Groups
|
@@ -87,16 +83,17 @@ class ::Kitchen::Verifier::Terraform < ::Kitchen::Verifier::Inspec
|
|
87
83
|
# `kitchen verify suite-name`
|
88
84
|
# @param state [::Hash] the mutable instance and verifier state.
|
89
85
|
# @raise [::Kitchen::ActionFailed] if the result of the action is a failure.
|
90
|
-
# @return [
|
86
|
+
# @return [void]
|
91
87
|
def call(state)
|
92
|
-
|
93
|
-
.
|
94
|
-
|
88
|
+
state
|
89
|
+
.fetch :kitchen_terraform_output do
|
90
|
+
raise(
|
91
|
+
::Kitchen::Terraform::Error,
|
95
92
|
"The Test Kitchen state does not include :kitchen_terraform_output; this implies that the " \
|
96
93
|
"kitchen-terraform provisioner has not successfully converged"
|
97
94
|
)
|
98
95
|
end
|
99
|
-
.
|
96
|
+
.tap do |output|
|
100
97
|
::Kitchen::Verifier::Terraform::EnumerateGroupsAndHostnames
|
101
98
|
.call(
|
102
99
|
groups: config_groups,
|
@@ -116,12 +113,11 @@ class ::Kitchen::Verifier::Terraform < ::Kitchen::Verifier::Inspec
|
|
116
113
|
super state
|
117
114
|
end
|
118
115
|
end
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
end
|
116
|
+
rescue ::Kitchen::Terraform::Error => error
|
117
|
+
raise(
|
118
|
+
::Kitchen::ActionFailed,
|
119
|
+
error.message
|
120
|
+
)
|
125
121
|
end
|
126
122
|
|
127
123
|
private
|
@@ -160,18 +156,15 @@ class ::Kitchen::Verifier::Terraform < ::Kitchen::Verifier::Inspec
|
|
160
156
|
group: state.fetch(:kitchen_terraform_group),
|
161
157
|
options: options
|
162
158
|
)
|
163
|
-
|
164
|
-
.
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
.store(
|
171
|
-
:attributes,
|
172
|
-
attributes
|
159
|
+
options
|
160
|
+
.store(
|
161
|
+
:attributes,
|
162
|
+
::Kitchen::Verifier::Terraform::ConfigureInspecRunnerAttributes
|
163
|
+
.call(
|
164
|
+
group: state.fetch(:kitchen_terraform_group),
|
165
|
+
output: ::Kitchen::Util.stringified_hash(state.fetch(:kitchen_terraform_output))
|
173
166
|
)
|
174
|
-
|
167
|
+
)
|
175
168
|
::Kitchen::Verifier::Terraform::ConfigureInspecRunnerControls
|
176
169
|
.call(
|
177
170
|
group: state.fetch(:kitchen_terraform_group),
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "
|
17
|
+
require "kitchen/terraform/error"
|
18
18
|
require "kitchen/verifier/terraform"
|
19
19
|
|
20
20
|
# Configures the InSpec profile attributes for the Inspec::Runner used by the verifier to verify a group.
|
@@ -55,27 +55,20 @@ require "kitchen/verifier/terraform"
|
|
55
55
|
# @see https://www.terraform.io/docs/configuration/outputs.html Terraform output variables
|
56
56
|
# @see https://www.terraform.io/docs/state/index.html Terraform state
|
57
57
|
module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerAttributes
|
58
|
-
extend ::Dry::Monads::Either::Mixin
|
59
|
-
|
60
|
-
extend ::Dry::Monads::Maybe::Mixin
|
61
|
-
|
62
|
-
extend ::Dry::Monads::Try::Mixin
|
63
|
-
|
64
58
|
# Invokes the function
|
65
59
|
#
|
66
60
|
# @param group [::Hash] a kitchen-terraform verifier group.
|
67
61
|
# @param output [::String] the output of the Terraform state.
|
68
|
-
# @
|
62
|
+
# @raise [::Kitchen::Terraform::Error] if the configuration fails.
|
63
|
+
# @return [::Hash] the configured attributes.
|
69
64
|
def self.call(group:, output:)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
.bind do |group_attributes|
|
78
|
-
Right(
|
65
|
+
group
|
66
|
+
.fetch(
|
67
|
+
:attributes,
|
68
|
+
{}
|
69
|
+
)
|
70
|
+
.tap do |group_attributes|
|
71
|
+
return(
|
79
72
|
output
|
80
73
|
.keys
|
81
74
|
.+(group_attributes.keys)
|
@@ -84,11 +77,6 @@ module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerAttributes
|
|
84
77
|
.keys
|
85
78
|
.+(group_attributes.values)
|
86
79
|
)
|
87
|
-
)
|
88
|
-
end
|
89
|
-
.bind do |unresolved_attributes|
|
90
|
-
Try ::KeyError do
|
91
|
-
unresolved_attributes
|
92
80
|
.reduce ::Hash.new do |resolved_attributes, (attribute_name, output_name)|
|
93
81
|
resolved_attributes
|
94
82
|
.merge(
|
@@ -99,11 +87,12 @@ module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerAttributes
|
|
99
87
|
.fetch("value")
|
100
88
|
)
|
101
89
|
end
|
102
|
-
|
103
|
-
end
|
104
|
-
.to_either
|
105
|
-
.or do |error|
|
106
|
-
Left "Configuring InSpec runner attributes resulted in failure: #{error}"
|
90
|
+
)
|
107
91
|
end
|
92
|
+
rescue ::KeyError => error
|
93
|
+
raise(
|
94
|
+
::Kitchen::Terraform::Error,
|
95
|
+
"Configuring InSpec runner attributes resulted in failure: #{error.message}"
|
96
|
+
)
|
108
97
|
end
|
109
98
|
end
|
@@ -14,7 +14,6 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "dry/monads"
|
18
17
|
require "kitchen/verifier/terraform"
|
19
18
|
|
20
19
|
# Configures a group's InSpec profile controls to be inclued by the Inspec::Runner used by the verifier.
|
@@ -24,16 +23,19 @@ require "kitchen/verifier/terraform"
|
|
24
23
|
# @see https://github.com/chef/inspec/blob/master/lib/inspec/runner.rb ::Inspec::Runner
|
25
24
|
# @see https://www.inspec.io/docs/reference/profiles/ InSpec profiles
|
26
25
|
module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerControls
|
27
|
-
extend ::Dry::Monads::Either::Mixin
|
28
|
-
extend ::Dry::Monads::Maybe::Mixin
|
29
|
-
|
30
26
|
# Invokes the function
|
31
27
|
#
|
32
28
|
# @param group [::Hash] the group being verified.
|
33
29
|
# @param options [:Hash] the verifier's Inspec::Runner's options.
|
34
30
|
def self.call(group:, options:)
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
group[:controls]
|
32
|
+
.tap do |controls|
|
33
|
+
controls and
|
34
|
+
options
|
35
|
+
.store(
|
36
|
+
:controls,
|
37
|
+
controls
|
38
|
+
)
|
39
|
+
end
|
38
40
|
end
|
39
41
|
end
|
@@ -14,7 +14,6 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "dry/monads"
|
18
17
|
require "kitchen/verifier/terraform"
|
19
18
|
|
20
19
|
# Configures the port for the Inspec::Runner used by the verifier to verify a group.
|
@@ -23,15 +22,19 @@ require "kitchen/verifier/terraform"
|
|
23
22
|
#
|
24
23
|
# @see https://github.com/chef/inspec/blob/master/lib/inspec/runner.rb Inspec::Runner
|
25
24
|
module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerPort
|
26
|
-
extend ::Dry::Monads::Maybe::Mixin
|
27
|
-
|
28
25
|
# Invokes the function.
|
29
26
|
#
|
30
27
|
# @param group [::Hash] the group being verified.
|
31
28
|
# @param options [::Hash] the Inspec::Runner's options.
|
32
29
|
def self.call(group:, options:)
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
group[:port]
|
31
|
+
.tap do |port|
|
32
|
+
port and
|
33
|
+
options
|
34
|
+
.store(
|
35
|
+
"port",
|
36
|
+
port
|
37
|
+
)
|
38
|
+
end
|
36
39
|
end
|
37
40
|
end
|
@@ -14,7 +14,6 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "dry/monads"
|
18
17
|
require "kitchen/verifier/terraform"
|
19
18
|
|
20
19
|
# Configures the private SSH key to be used by the verifier's InSpec Runner to verify a group.
|
@@ -24,20 +23,19 @@ require "kitchen/verifier/terraform"
|
|
24
23
|
# @see https://github.com/chef/inspec/blob/master/lib/inspec/runner.rb InSpec Runner
|
25
24
|
# @see https://github.com/test-kitchen/test-kitchen/blob/v1.16.0/lib/kitchen/transport/ssh.rb Test Kitchen SSH Transport
|
26
25
|
module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerSSHKey
|
27
|
-
extend ::Dry::Monads::Maybe::Mixin
|
28
|
-
|
29
26
|
# Invoke the function.
|
30
27
|
#
|
31
28
|
# @param group [::Hash] the group being verified.
|
32
29
|
# @param options [::Hash] the Inspec::Runner's options.
|
33
30
|
def self.call(group:, options:)
|
34
|
-
|
35
|
-
.
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
group[:ssh_key]
|
32
|
+
.tap do |ssh_key|
|
33
|
+
ssh_key and
|
34
|
+
options
|
35
|
+
.store(
|
36
|
+
"key_files",
|
37
|
+
[ssh_key]
|
38
|
+
)
|
41
39
|
end
|
42
40
|
end
|
43
41
|
end
|
@@ -14,7 +14,6 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "dry/monads"
|
18
17
|
require "kitchen/verifier/terraform"
|
19
18
|
|
20
19
|
# Configures the user for the Inspec::Runner used by the verifier to verify a group.
|
@@ -23,15 +22,19 @@ require "kitchen/verifier/terraform"
|
|
23
22
|
#
|
24
23
|
# @see https://github.com/chef/inspec/blob/master/lib/inspec/runner.rb Inspec::Runner
|
25
24
|
module ::Kitchen::Verifier::Terraform::ConfigureInspecRunnerUser
|
26
|
-
extend ::Dry::Monads::Maybe::Mixin
|
27
|
-
|
28
25
|
# Invoke the function.
|
29
26
|
#
|
30
27
|
# @param group [::Hash] the group being verified.
|
31
28
|
# @param options [::Hash] the Inspec::Runner's options.
|
32
29
|
def self.call(group:, options:)
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
group[:username]
|
31
|
+
.tap do |username|
|
32
|
+
username and
|
33
|
+
options
|
34
|
+
.store(
|
35
|
+
"user",
|
36
|
+
username
|
37
|
+
)
|
38
|
+
end
|
36
39
|
end
|
37
40
|
end
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require "
|
17
|
+
require "kitchen/terraform/error"
|
18
18
|
require "kitchen/verifier/terraform"
|
19
19
|
|
20
20
|
# Enumerates each group and the hostnames of each group.
|
@@ -31,55 +31,52 @@ require "kitchen/verifier/terraform"
|
|
31
31
|
# @see https://www.terraform.io/docs/configuration/outputs.html Terraform output variables
|
32
32
|
# @see https://www.terraform.io/docs/state/index.html Terraform state
|
33
33
|
module ::Kitchen::Verifier::Terraform::EnumerateGroupsAndHostnames
|
34
|
-
extend ::Dry::Monads::Either::Mixin
|
35
|
-
extend ::Dry::Monads::List::Mixin
|
36
|
-
extend ::Dry::Monads::Maybe::Mixin
|
37
|
-
extend ::Dry::Monads::Try::Mixin
|
38
|
-
|
39
34
|
# Invokes the function.
|
40
35
|
#
|
41
36
|
# @param groups [::Array] a collection of groups.
|
42
|
-
# @
|
37
|
+
# @raise [::Kitchen::Terraform::Error] if the enumeration fails.
|
38
|
+
# @return [void]
|
43
39
|
# @yieldparam group [::Hash] the group from which hostnamess are being enumerated.
|
44
40
|
# @yieldparam hostname [::String] a hostname from the group.
|
45
|
-
def self.call(groups:, output
|
46
|
-
|
47
|
-
.
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
Maybe(group[:hostnames])
|
54
|
-
.fmap do |hostnames_output_name|
|
55
|
-
output
|
56
|
-
.fetch(hostnames_output_name)
|
57
|
-
.fetch("value")
|
58
|
-
end
|
59
|
-
.or do
|
60
|
-
Right "localhost"
|
61
|
-
end
|
62
|
-
.fmap do |hostnames|
|
63
|
-
Array(hostnames)
|
64
|
-
.each do |hostname|
|
65
|
-
yield(
|
66
|
-
group: group,
|
67
|
-
hostname: hostname
|
68
|
-
)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
.to_either
|
73
|
-
end
|
74
|
-
end
|
75
|
-
.bind do
|
76
|
-
Right "Enumeration of groups and hostnames resulted in success"
|
77
|
-
end
|
78
|
-
.or do |error|
|
79
|
-
Left(
|
80
|
-
"Enumeration of groups and hostnames resulted in failure due to the omission of the configured :hostnames " \
|
81
|
-
"output or an unexpected output structure: #{error}"
|
41
|
+
def self.call(groups:, output:, &block)
|
42
|
+
groups
|
43
|
+
.each do |group|
|
44
|
+
each_resolved_hostname_and_group(
|
45
|
+
group: group,
|
46
|
+
hostnames: group[:hostnames],
|
47
|
+
output: output,
|
48
|
+
&block
|
82
49
|
)
|
83
50
|
end
|
51
|
+
rescue ::KeyError => error
|
52
|
+
raise(
|
53
|
+
::Kitchen::Terraform::Error,
|
54
|
+
"Enumeration of groups and hostnames resulted in failure due to the omission of the configured :hostnames " \
|
55
|
+
"output or an unexpected output structure: #{error.message}"
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
59
|
+
private_class_method
|
60
|
+
|
61
|
+
# @api private
|
62
|
+
def self.each_resolved_hostname_and_group(group:, hostnames:, output:)
|
63
|
+
if hostnames
|
64
|
+
Array(
|
65
|
+
output
|
66
|
+
.fetch(hostnames)
|
67
|
+
.fetch("value")
|
68
|
+
)
|
69
|
+
.each do |hostname|
|
70
|
+
yield(
|
71
|
+
group: group,
|
72
|
+
hostname: hostname
|
73
|
+
)
|
74
|
+
end
|
75
|
+
else
|
76
|
+
yield(
|
77
|
+
group: group,
|
78
|
+
hostname: "localhost"
|
79
|
+
)
|
80
|
+
end
|
84
81
|
end
|
85
82
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Lane
|
@@ -18,6 +18,7 @@ authors:
|
|
18
18
|
- Nick Willever
|
19
19
|
- Steven A. Burns
|
20
20
|
- Walter Dolce
|
21
|
+
- curleighbraces
|
21
22
|
autorequire:
|
22
23
|
bindir: bin
|
23
24
|
cert_chain:
|
@@ -54,8 +55,22 @@ cert_chain:
|
|
54
55
|
XjOfZudLs1zJ8ZNOuwj6KkGJ9J3XHd9hM95MtBEWlxAfYdCuW1+v7zCTfbieBEba
|
55
56
|
UIyyldg4TuVcuRs8uKJyempT0hqx2DniseBWw3nvtgom3A==
|
56
57
|
-----END CERTIFICATE-----
|
57
|
-
date:
|
58
|
+
date: 2018-01-08 00:00:00.000000000 Z
|
58
59
|
dependencies:
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: bundler-audit
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 0.6.0
|
67
|
+
type: :development
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 0.6.0
|
59
74
|
- !ruby/object:Gem::Dependency
|
60
75
|
name: codeclimate-test-reporter
|
61
76
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,6 +113,20 @@ dependencies:
|
|
98
113
|
- - "~>"
|
99
114
|
- !ruby/object:Gem::Version
|
100
115
|
version: '2.1'
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: guard-bundler-audit
|
118
|
+
requirement: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: 0.1.4
|
123
|
+
type: :development
|
124
|
+
prerelease: false
|
125
|
+
version_requirements: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 0.1.4
|
101
130
|
- !ruby/object:Gem::Dependency
|
102
131
|
name: guard-rspec
|
103
132
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,6 +155,90 @@ dependencies:
|
|
126
155
|
- - "~>"
|
127
156
|
- !ruby/object:Gem::Version
|
128
157
|
version: '2.2'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: middleman
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - "~>"
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '4.2'
|
165
|
+
type: :development
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '4.2'
|
172
|
+
- !ruby/object:Gem::Dependency
|
173
|
+
name: middleman-autoprefixer
|
174
|
+
requirement: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '2.7'
|
179
|
+
type: :development
|
180
|
+
prerelease: false
|
181
|
+
version_requirements: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '2.7'
|
186
|
+
- !ruby/object:Gem::Dependency
|
187
|
+
name: middleman-favicon-maker
|
188
|
+
requirement: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '4.1'
|
193
|
+
type: :development
|
194
|
+
prerelease: false
|
195
|
+
version_requirements: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '4.1'
|
200
|
+
- !ruby/object:Gem::Dependency
|
201
|
+
name: middleman-livereload
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '3.4'
|
207
|
+
type: :development
|
208
|
+
prerelease: false
|
209
|
+
version_requirements: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - "~>"
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '3.4'
|
214
|
+
- !ruby/object:Gem::Dependency
|
215
|
+
name: middleman-syntax
|
216
|
+
requirement: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - "~>"
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '3.0'
|
221
|
+
type: :development
|
222
|
+
prerelease: false
|
223
|
+
version_requirements: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - "~>"
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '3.0'
|
228
|
+
- !ruby/object:Gem::Dependency
|
229
|
+
name: mini_racer
|
230
|
+
requirement: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - "~>"
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: 0.1.0
|
235
|
+
type: :development
|
236
|
+
prerelease: false
|
237
|
+
version_requirements: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - "~>"
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: 0.1.0
|
129
242
|
- !ruby/object:Gem::Dependency
|
130
243
|
name: pry
|
131
244
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,69 +268,69 @@ dependencies:
|
|
155
268
|
- !ruby/object:Gem::Version
|
156
269
|
version: '0.2'
|
157
270
|
- !ruby/object:Gem::Dependency
|
158
|
-
name:
|
271
|
+
name: rake
|
159
272
|
requirement: !ruby/object:Gem::Requirement
|
160
273
|
requirements:
|
161
274
|
- - "~>"
|
162
275
|
- !ruby/object:Gem::Version
|
163
|
-
version: '3
|
276
|
+
version: '12.3'
|
164
277
|
type: :development
|
165
278
|
prerelease: false
|
166
279
|
version_requirements: !ruby/object:Gem::Requirement
|
167
280
|
requirements:
|
168
281
|
- - "~>"
|
169
282
|
- !ruby/object:Gem::Version
|
170
|
-
version: '3
|
283
|
+
version: '12.3'
|
171
284
|
- !ruby/object:Gem::Dependency
|
172
|
-
name:
|
285
|
+
name: rspec
|
173
286
|
requirement: !ruby/object:Gem::Requirement
|
174
287
|
requirements:
|
175
288
|
- - "~>"
|
176
289
|
- !ruby/object:Gem::Version
|
177
|
-
version: '
|
290
|
+
version: '3.4'
|
178
291
|
type: :development
|
179
292
|
prerelease: false
|
180
293
|
version_requirements: !ruby/object:Gem::Requirement
|
181
294
|
requirements:
|
182
295
|
- - "~>"
|
183
296
|
- !ruby/object:Gem::Version
|
184
|
-
version: '
|
297
|
+
version: '3.4'
|
185
298
|
- !ruby/object:Gem::Dependency
|
186
|
-
name:
|
299
|
+
name: rubyzip
|
187
300
|
requirement: !ruby/object:Gem::Requirement
|
188
301
|
requirements:
|
189
302
|
- - "~>"
|
190
303
|
- !ruby/object:Gem::Version
|
191
|
-
version: '
|
304
|
+
version: '1.2'
|
192
305
|
type: :development
|
193
306
|
prerelease: false
|
194
307
|
version_requirements: !ruby/object:Gem::Requirement
|
195
308
|
requirements:
|
196
309
|
- - "~>"
|
197
310
|
- !ruby/object:Gem::Version
|
198
|
-
version: '
|
311
|
+
version: '1.2'
|
199
312
|
- !ruby/object:Gem::Dependency
|
200
|
-
name:
|
313
|
+
name: travis
|
201
314
|
requirement: !ruby/object:Gem::Requirement
|
202
315
|
requirements:
|
203
316
|
- - "~>"
|
204
317
|
- !ruby/object:Gem::Version
|
205
|
-
version: '
|
206
|
-
type: :
|
318
|
+
version: '1.8'
|
319
|
+
type: :development
|
207
320
|
prerelease: false
|
208
321
|
version_requirements: !ruby/object:Gem::Requirement
|
209
322
|
requirements:
|
210
323
|
- - "~>"
|
211
324
|
- !ruby/object:Gem::Version
|
212
|
-
version: '
|
325
|
+
version: '1.8'
|
213
326
|
- !ruby/object:Gem::Dependency
|
214
|
-
name:
|
327
|
+
name: yard
|
215
328
|
requirement: !ruby/object:Gem::Requirement
|
216
329
|
requirements:
|
217
330
|
- - "~>"
|
218
331
|
- !ruby/object:Gem::Version
|
219
332
|
version: '0.9'
|
220
|
-
type: :
|
333
|
+
type: :development
|
221
334
|
prerelease: false
|
222
335
|
version_requirements: !ruby/object:Gem::Requirement
|
223
336
|
requirements:
|
@@ -225,39 +338,33 @@ dependencies:
|
|
225
338
|
- !ruby/object:Gem::Version
|
226
339
|
version: '0.9'
|
227
340
|
- !ruby/object:Gem::Dependency
|
228
|
-
name: dry-
|
341
|
+
name: dry-types
|
229
342
|
requirement: !ruby/object:Gem::Requirement
|
230
343
|
requirements:
|
231
344
|
- - "~>"
|
232
345
|
- !ruby/object:Gem::Version
|
233
|
-
version: '0.
|
346
|
+
version: '0.9'
|
234
347
|
type: :runtime
|
235
348
|
prerelease: false
|
236
349
|
version_requirements: !ruby/object:Gem::Requirement
|
237
350
|
requirements:
|
238
351
|
- - "~>"
|
239
352
|
- !ruby/object:Gem::Version
|
240
|
-
version: '0.
|
353
|
+
version: '0.9'
|
241
354
|
- !ruby/object:Gem::Dependency
|
242
|
-
name:
|
355
|
+
name: dry-validation
|
243
356
|
requirement: !ruby/object:Gem::Requirement
|
244
357
|
requirements:
|
245
|
-
- - "
|
246
|
-
- !ruby/object:Gem::Version
|
247
|
-
version: 0.34.0
|
248
|
-
- - "<="
|
358
|
+
- - "~>"
|
249
359
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
360
|
+
version: '0.10'
|
251
361
|
type: :runtime
|
252
362
|
prerelease: false
|
253
363
|
version_requirements: !ruby/object:Gem::Requirement
|
254
364
|
requirements:
|
255
|
-
- - "
|
256
|
-
- !ruby/object:Gem::Version
|
257
|
-
version: 0.34.0
|
258
|
-
- - "<="
|
365
|
+
- - "~>"
|
259
366
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
367
|
+
version: '0.10'
|
261
368
|
- !ruby/object:Gem::Dependency
|
262
369
|
name: kitchen-inspec
|
263
370
|
requirement: !ruby/object:Gem::Requirement
|
@@ -292,14 +399,14 @@ dependencies:
|
|
292
399
|
requirements:
|
293
400
|
- - "~>"
|
294
401
|
- !ruby/object:Gem::Version
|
295
|
-
version: 1.16
|
402
|
+
version: '1.16'
|
296
403
|
type: :runtime
|
297
404
|
prerelease: false
|
298
405
|
version_requirements: !ruby/object:Gem::Requirement
|
299
406
|
requirements:
|
300
407
|
- - "~>"
|
301
408
|
- !ruby/object:Gem::Version
|
302
|
-
version: 1.16
|
409
|
+
version: '1.16'
|
303
410
|
description: kitchen-terraform is a set of Test Kitchen plugins for testing Terraform
|
304
411
|
configuration
|
305
412
|
email: kitchen-terraform@newcontext.com
|
@@ -315,6 +422,8 @@ files:
|
|
315
422
|
- lib/kitchen/provisioner/terraform.rb
|
316
423
|
- lib/kitchen/terraform.rb
|
317
424
|
- lib/kitchen/terraform/client_version_verifier.rb
|
425
|
+
- lib/kitchen/terraform/command.rb
|
426
|
+
- lib/kitchen/terraform/command/output.rb
|
318
427
|
- lib/kitchen/terraform/config_attribute.rb
|
319
428
|
- lib/kitchen/terraform/config_attribute/backend_configurations.rb
|
320
429
|
- lib/kitchen/terraform/config_attribute/color.rb
|
@@ -339,6 +448,7 @@ files:
|
|
339
448
|
- lib/kitchen/terraform/config_schemas/optional_string.rb
|
340
449
|
- lib/kitchen/terraform/config_schemas/string.rb
|
341
450
|
- lib/kitchen/terraform/configurable.rb
|
451
|
+
- lib/kitchen/terraform/error.rb
|
342
452
|
- lib/kitchen/terraform/file_path_config_attribute_definer.rb
|
343
453
|
- lib/kitchen/terraform/shell_out.rb
|
344
454
|
- lib/kitchen/terraform/version.rb
|
@@ -376,7 +486,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
376
486
|
requirements:
|
377
487
|
- Terraform >= 0.10.2, < 0.12.0
|
378
488
|
rubyforge_project:
|
379
|
-
rubygems_version: 2.7.
|
489
|
+
rubygems_version: 2.7.4
|
380
490
|
signing_key:
|
381
491
|
specification_version: 4
|
382
492
|
summary: Test Kitchen plugins for testing Terraform configuration
|