hashicorptools 0.0.12 → 0.1.2
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/.ruby-version +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +31 -86
- data/README.md +1 -2
- data/VERSION +1 -1
- data/hashicorptools.gemspec +5 -44
- data/{data → lib/hashicorptools/ami_configs}/standard-ami.json +0 -1
- data/lib/hashicorptools/ec2_utilities.rb +6 -12
- data/lib/hashicorptools/packer.rb +1 -2
- data/lib/hashicorptools/terraform.rb +1 -66
- metadata +4 -186
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4692b4e530bde9683f94ab831155926ce8b479aa
|
|
4
|
+
data.tar.gz: c90b5a4d1d0fd216aec3a53e83ce57b4d81184f6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05d7b64814446f085f7f03883de44eb47b975a202d07e9154af125439e506e7783645d4aa55514210a2c0100f9bdc57a2174030888014bb9fb9743b52a5d05ea
|
|
7
|
+
data.tar.gz: bbe1ed16b551f5123503afeb086acc5cca65499e1eb0b6a4939c0c4c1c5830ac2bedf4aa09dea714c3e311c811981c602c946c5208096400254deda9687829ef
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-2.
|
|
1
|
+
ruby-2.3.4
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
GIT
|
|
2
|
-
remote: https://github.com/controlshift/juwelier.git
|
|
3
|
-
revision: 35eb60a50ab62b97472671a9bda5c26d91010ec4
|
|
4
|
-
specs:
|
|
5
|
-
juwelier (2.1.2)
|
|
6
|
-
activesupport (~> 3.2.16)
|
|
7
|
-
bluecloth
|
|
8
|
-
builder
|
|
9
|
-
bundler (>= 1.13)
|
|
10
|
-
coveralls
|
|
11
|
-
cucumber (>= 1.1.4)
|
|
12
|
-
git (>= 1.2.5)
|
|
13
|
-
github_api
|
|
14
|
-
highline (>= 1.6.15)
|
|
15
|
-
mhennemeyer-output_catcher
|
|
16
|
-
mocha
|
|
17
|
-
nokogiri (>= 1.5.10)
|
|
18
|
-
rake
|
|
19
|
-
rdoc
|
|
20
|
-
redgreen
|
|
21
|
-
rr (>= 1.0.4)
|
|
22
|
-
semver
|
|
23
|
-
shoulda
|
|
24
|
-
simplecov
|
|
25
|
-
test-construct
|
|
26
|
-
test-unit
|
|
27
|
-
timecop
|
|
28
|
-
yard (>= 0.8.5)
|
|
29
|
-
|
|
30
1
|
GEM
|
|
31
2
|
remote: http://rubygems.org/
|
|
32
3
|
specs:
|
|
@@ -45,29 +16,11 @@ GEM
|
|
|
45
16
|
json (~> 1.4)
|
|
46
17
|
nokogiri (>= 1.4.4)
|
|
47
18
|
aws-sigv4 (1.0.0)
|
|
48
|
-
|
|
49
|
-
builder (3.2.2)
|
|
19
|
+
builder (3.2.3)
|
|
50
20
|
byebug (9.0.6)
|
|
51
|
-
coveralls (0.8.16)
|
|
52
|
-
json (>= 1.8, < 3)
|
|
53
|
-
simplecov (~> 0.12.0)
|
|
54
|
-
term-ansicolor (~> 1.3.0)
|
|
55
|
-
thor (~> 0.19.1)
|
|
56
|
-
tins (>= 1.6.0, < 2)
|
|
57
|
-
cucumber (2.4.0)
|
|
58
|
-
builder (>= 2.1.2)
|
|
59
|
-
cucumber-core (~> 1.5.0)
|
|
60
|
-
cucumber-wire (~> 0.0.1)
|
|
61
|
-
diff-lcs (>= 1.1.3)
|
|
62
|
-
gherkin (~> 4.0)
|
|
63
|
-
multi_json (>= 1.7.5, < 2.0)
|
|
64
|
-
multi_test (>= 0.1.2)
|
|
65
|
-
cucumber-core (1.5.0)
|
|
66
|
-
gherkin (~> 4.0)
|
|
67
|
-
cucumber-wire (0.0.1)
|
|
68
21
|
descendants_tracker (0.0.4)
|
|
69
22
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
70
|
-
diff-lcs (1.
|
|
23
|
+
diff-lcs (1.3)
|
|
71
24
|
docile (1.1.5)
|
|
72
25
|
domain_name (0.5.20161129)
|
|
73
26
|
unf (>= 0.0.5, < 1.0.0)
|
|
@@ -76,7 +29,6 @@ GEM
|
|
|
76
29
|
rest-client
|
|
77
30
|
faraday (0.9.2)
|
|
78
31
|
multipart-post (>= 1.2, < 3)
|
|
79
|
-
gherkin (4.0.0)
|
|
80
32
|
git (1.3.0)
|
|
81
33
|
github_api (0.14.5)
|
|
82
34
|
addressable (~> 2.4.0)
|
|
@@ -84,46 +36,53 @@ GEM
|
|
|
84
36
|
faraday (~> 0.8, < 0.10)
|
|
85
37
|
hashie (>= 3.4)
|
|
86
38
|
oauth2 (~> 1.0)
|
|
87
|
-
hashie (3.
|
|
39
|
+
hashie (3.5.6)
|
|
88
40
|
highline (1.7.8)
|
|
89
41
|
http-cookie (1.0.3)
|
|
90
42
|
domain_name (~> 0.5)
|
|
91
|
-
i18n (0.
|
|
43
|
+
i18n (0.8.1)
|
|
92
44
|
jmespath (1.3.1)
|
|
93
|
-
json (1.8.
|
|
45
|
+
json (1.8.6)
|
|
46
|
+
juwelier (2.4.7)
|
|
47
|
+
builder
|
|
48
|
+
bundler
|
|
49
|
+
git
|
|
50
|
+
github_api
|
|
51
|
+
highline
|
|
52
|
+
kamelcase (~> 0)
|
|
53
|
+
nokogiri
|
|
54
|
+
psych
|
|
55
|
+
rake
|
|
56
|
+
rdoc
|
|
57
|
+
semver2
|
|
94
58
|
jwt (1.5.6)
|
|
95
|
-
|
|
96
|
-
|
|
59
|
+
kamelcase (0.0.1)
|
|
60
|
+
semver2 (~> 3)
|
|
97
61
|
mime-types (3.1)
|
|
98
62
|
mime-types-data (~> 3.2015)
|
|
99
63
|
mime-types-data (3.2016.0521)
|
|
100
64
|
mini_portile2 (2.1.0)
|
|
101
|
-
mocha (1.2.1)
|
|
102
|
-
metaclass (~> 0.0.1)
|
|
103
65
|
multi_json (1.12.1)
|
|
104
|
-
|
|
105
|
-
multi_xml (0.5.5)
|
|
66
|
+
multi_xml (0.6.0)
|
|
106
67
|
multipart-post (2.0.0)
|
|
107
68
|
netrc (0.11.0)
|
|
108
|
-
nokogiri (1.
|
|
69
|
+
nokogiri (1.7.2)
|
|
109
70
|
mini_portile2 (~> 2.1.0)
|
|
110
|
-
oauth2 (1.
|
|
111
|
-
faraday (>= 0.8, < 0.
|
|
71
|
+
oauth2 (1.4.0)
|
|
72
|
+
faraday (>= 0.8, < 0.13)
|
|
112
73
|
jwt (~> 1.0)
|
|
113
74
|
multi_json (~> 1.3)
|
|
114
75
|
multi_xml (~> 0.5)
|
|
115
76
|
rack (>= 1.2, < 3)
|
|
116
|
-
|
|
117
|
-
rack (2.0.
|
|
118
|
-
rake (
|
|
77
|
+
psych (2.2.4)
|
|
78
|
+
rack (2.0.3)
|
|
79
|
+
rake (12.0.0)
|
|
119
80
|
rdoc (3.12.2)
|
|
120
81
|
json (~> 1.4)
|
|
121
|
-
redgreen (1.2.2)
|
|
122
82
|
rest-client (2.0.0)
|
|
123
83
|
http-cookie (>= 1.0.2, < 2.0)
|
|
124
84
|
mime-types (>= 1.16, < 4.0)
|
|
125
85
|
netrc (~> 0.8)
|
|
126
|
-
rr (1.2.0)
|
|
127
86
|
rspec (3.5.0)
|
|
128
87
|
rspec-core (~> 3.5.0)
|
|
129
88
|
rspec-expectations (~> 3.5.0)
|
|
@@ -137,31 +96,17 @@ GEM
|
|
|
137
96
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
138
97
|
rspec-support (~> 3.5.0)
|
|
139
98
|
rspec-support (3.5.0)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
shoulda-context (~> 1.0, >= 1.0.1)
|
|
143
|
-
shoulda-matchers (>= 1.4.1, < 3.0)
|
|
144
|
-
shoulda-context (1.2.2)
|
|
145
|
-
shoulda-matchers (2.8.0)
|
|
146
|
-
activesupport (>= 3.0.0)
|
|
147
|
-
simplecov (0.12.0)
|
|
99
|
+
semver2 (3.4.2)
|
|
100
|
+
simplecov (0.14.1)
|
|
148
101
|
docile (~> 1.1.0)
|
|
149
102
|
json (>= 1.8, < 3)
|
|
150
103
|
simplecov-html (~> 0.10.0)
|
|
151
104
|
simplecov-html (0.10.0)
|
|
152
|
-
term-ansicolor (1.3.2)
|
|
153
|
-
tins (~> 1.0)
|
|
154
|
-
test-construct (1.2.2)
|
|
155
|
-
test-unit (3.2.3)
|
|
156
|
-
power_assert
|
|
157
105
|
thor (0.19.4)
|
|
158
|
-
thread_safe (0.3.
|
|
159
|
-
timecop (0.8.1)
|
|
160
|
-
tins (1.13.0)
|
|
106
|
+
thread_safe (0.3.6)
|
|
161
107
|
unf (0.1.4)
|
|
162
108
|
unf_ext
|
|
163
109
|
unf_ext (0.0.7.2)
|
|
164
|
-
yard (0.9.5)
|
|
165
110
|
|
|
166
111
|
PLATFORMS
|
|
167
112
|
ruby
|
|
@@ -175,11 +120,11 @@ DEPENDENCIES
|
|
|
175
120
|
dotenv
|
|
176
121
|
dynect_rest
|
|
177
122
|
git
|
|
178
|
-
juwelier
|
|
123
|
+
juwelier
|
|
179
124
|
rdoc (~> 3.12)
|
|
180
125
|
rspec
|
|
181
126
|
simplecov
|
|
182
127
|
thor
|
|
183
128
|
|
|
184
129
|
BUNDLED WITH
|
|
185
|
-
1.
|
|
130
|
+
1.14.6
|
data/README.md
CHANGED
|
@@ -11,8 +11,7 @@ Wraps the packer product from hashicorp with standard configuration.
|
|
|
11
11
|
|
|
12
12
|
## terraform wrapper
|
|
13
13
|
|
|
14
|
-
Wraps the terraform product from hashicorp with
|
|
15
|
-
and staging environments.
|
|
14
|
+
Wraps the terraform product from hashicorp with segmented production and staging environments.
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
Copyright (c) 2015 ChangeSprout Inc. See LICENSE for
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.1.2
|
data/hashicorptools.gemspec
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: hashicorptools 0.
|
|
5
|
+
# stub: hashicorptools 0.1.2 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "hashicorptools".freeze
|
|
9
|
-
s.version = "0.
|
|
9
|
+
s.version = "0.1.2"
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
12
|
s.require_paths = ["lib".freeze]
|
|
13
13
|
s.authors = ["Nathan Woodhull".freeze]
|
|
14
|
-
s.date = "
|
|
14
|
+
s.date = "2017-08-21"
|
|
15
15
|
s.description = "Wrappers for terraform and packer".freeze
|
|
16
16
|
s.email = "systems@controlshiftlabs.com".freeze
|
|
17
17
|
s.executables = ["ec2_host".freeze]
|
|
@@ -30,9 +30,9 @@ Gem::Specification.new do |s|
|
|
|
30
30
|
"Rakefile",
|
|
31
31
|
"VERSION",
|
|
32
32
|
"bin/ec2_host",
|
|
33
|
-
"data/standard-ami.json",
|
|
34
33
|
"hashicorptools.gemspec",
|
|
35
34
|
"lib/hashicorptools.rb",
|
|
35
|
+
"lib/hashicorptools/ami_configs/standard-ami.json",
|
|
36
36
|
"lib/hashicorptools/auto_scaling_group.rb",
|
|
37
37
|
"lib/hashicorptools/code_deploy.rb",
|
|
38
38
|
"lib/hashicorptools/ec2_utilities.rb",
|
|
@@ -46,7 +46,7 @@ Gem::Specification.new do |s|
|
|
|
46
46
|
]
|
|
47
47
|
s.homepage = "http://github.com/woodhull/hashicorptools".freeze
|
|
48
48
|
s.licenses = ["MIT".freeze]
|
|
49
|
-
s.rubygems_version = "2.
|
|
49
|
+
s.rubygems_version = "2.5.2".freeze
|
|
50
50
|
s.summary = "Wrappers for terraform and packer".freeze
|
|
51
51
|
|
|
52
52
|
if s.respond_to? :specification_version then
|
|
@@ -61,19 +61,6 @@ Gem::Specification.new do |s|
|
|
|
61
61
|
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
|
|
62
62
|
s.add_runtime_dependency(%q<byebug>.freeze, [">= 0"])
|
|
63
63
|
s.add_runtime_dependency(%q<git>.freeze, [">= 0"])
|
|
64
|
-
s.add_runtime_dependency(%q<rspec>.freeze, [">= 0"])
|
|
65
|
-
s.add_runtime_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
66
|
-
s.add_runtime_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
|
67
|
-
s.add_runtime_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
68
|
-
s.add_runtime_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
69
|
-
s.add_development_dependency(%q<aws-sdk>.freeze, ["~> 2"])
|
|
70
|
-
s.add_development_dependency(%q<dynect_rest>.freeze, [">= 0"])
|
|
71
|
-
s.add_development_dependency(%q<aws-sdk-v1>.freeze, [">= 0"])
|
|
72
|
-
s.add_development_dependency(%q<dotenv>.freeze, [">= 0"])
|
|
73
|
-
s.add_development_dependency(%q<thor>.freeze, [">= 0"])
|
|
74
|
-
s.add_development_dependency(%q<activesupport>.freeze, [">= 0"])
|
|
75
|
-
s.add_development_dependency(%q<byebug>.freeze, [">= 0"])
|
|
76
|
-
s.add_development_dependency(%q<git>.freeze, [">= 0"])
|
|
77
64
|
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
78
65
|
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
79
66
|
s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
|
@@ -93,19 +80,6 @@ Gem::Specification.new do |s|
|
|
|
93
80
|
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
|
94
81
|
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
95
82
|
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
96
|
-
s.add_dependency(%q<aws-sdk>.freeze, ["~> 2"])
|
|
97
|
-
s.add_dependency(%q<dynect_rest>.freeze, [">= 0"])
|
|
98
|
-
s.add_dependency(%q<aws-sdk-v1>.freeze, [">= 0"])
|
|
99
|
-
s.add_dependency(%q<dotenv>.freeze, [">= 0"])
|
|
100
|
-
s.add_dependency(%q<thor>.freeze, [">= 0"])
|
|
101
|
-
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
|
102
|
-
s.add_dependency(%q<byebug>.freeze, [">= 0"])
|
|
103
|
-
s.add_dependency(%q<git>.freeze, [">= 0"])
|
|
104
|
-
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
105
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
106
|
-
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
|
107
|
-
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
108
|
-
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
109
83
|
end
|
|
110
84
|
else
|
|
111
85
|
s.add_dependency(%q<aws-sdk>.freeze, ["~> 2"])
|
|
@@ -121,19 +95,6 @@ Gem::Specification.new do |s|
|
|
|
121
95
|
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
|
122
96
|
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
123
97
|
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
124
|
-
s.add_dependency(%q<aws-sdk>.freeze, ["~> 2"])
|
|
125
|
-
s.add_dependency(%q<dynect_rest>.freeze, [">= 0"])
|
|
126
|
-
s.add_dependency(%q<aws-sdk-v1>.freeze, [">= 0"])
|
|
127
|
-
s.add_dependency(%q<dotenv>.freeze, [">= 0"])
|
|
128
|
-
s.add_dependency(%q<thor>.freeze, [">= 0"])
|
|
129
|
-
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
|
130
|
-
s.add_dependency(%q<byebug>.freeze, [">= 0"])
|
|
131
|
-
s.add_dependency(%q<git>.freeze, [">= 0"])
|
|
132
|
-
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
133
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
134
|
-
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
|
135
|
-
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
136
|
-
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
|
137
98
|
end
|
|
138
99
|
end
|
|
139
100
|
|
|
@@ -5,17 +5,19 @@ module Hashicorptools
|
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def amis(tag = tag_name)
|
|
8
|
-
sort_by_created_at( ec2.images.with_owner('self').
|
|
8
|
+
sort_by_created_at( ec2.images.with_owner('self').with_tag('Name', tag).to_a )
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def ec2
|
|
12
|
+
return @_ec2 unless @_ec2.nil?
|
|
13
|
+
|
|
12
14
|
reg = if self.methods.include?(:region)
|
|
13
15
|
self.region
|
|
14
16
|
else
|
|
15
17
|
'us-east-1'
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
AWS::EC2.new(region: reg)
|
|
20
|
+
@_ec2 = AWS::EC2.new(region: reg)
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
def vpc_with_name(name)
|
|
@@ -28,16 +30,8 @@ module Hashicorptools
|
|
|
28
30
|
igs.first
|
|
29
31
|
end
|
|
30
32
|
|
|
31
|
-
def
|
|
32
|
-
|
|
33
|
-
image.tags.to_h[tag].to_i
|
|
34
|
-
else
|
|
35
|
-
0
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def sort_by_created_at(collection, tag = tag_name)
|
|
40
|
-
collection.sort{|a, b| self.image_created_at(b, tag) <=> self.image_created_at(a, tag) }
|
|
33
|
+
def sort_by_created_at(collection)
|
|
34
|
+
collection.sort{|a, b| b.creation_date <=> a.creation_date }
|
|
41
35
|
end
|
|
42
36
|
end
|
|
43
37
|
end
|
|
@@ -103,8 +103,7 @@ module Hashicorptools
|
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
def ami_config_path
|
|
106
|
-
|
|
107
|
-
File.join(datadir_path, 'standard-ami.json')
|
|
106
|
+
File.expand_path('../ami_configs/standard-ami.json', __FILE__)
|
|
108
107
|
end
|
|
109
108
|
|
|
110
109
|
def region
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module Hashicorptools
|
|
2
2
|
class Terraform < Thor
|
|
3
|
-
TERRAFORM_VERSION = '0.
|
|
3
|
+
TERRAFORM_VERSION = '0.9.1'
|
|
4
4
|
|
|
5
5
|
include Ec2Utilities
|
|
6
6
|
include Variables
|
|
@@ -148,29 +148,6 @@ module Hashicorptools
|
|
|
148
148
|
end
|
|
149
149
|
end
|
|
150
150
|
|
|
151
|
-
[ {commands: [:decrypt, :encrypt], file_path_method: :state_path, desc: 'upstream terraform changes'},
|
|
152
|
-
{commands: [:shared_decrypt, :shared_encrypt], file_path_method: :shared_state_path, desc: 'upstream shared terraform changes'},
|
|
153
|
-
{commands: [:var_file_decrypt, :var_file_encrypt], file_path_method: :var_file_path, desc: 'tfvars file'} ].each do |crypto_commands|
|
|
154
|
-
|
|
155
|
-
desc crypto_commands[:commands][0], "decrypt #{crypto_commands[:desc]}"
|
|
156
|
-
unless crypto_commands.to_s.match(/shared_.+/)
|
|
157
|
-
option :environment, :required => true
|
|
158
|
-
end
|
|
159
|
-
define_method crypto_commands[:commands][0] do
|
|
160
|
-
file_path = send(crypto_commands[:file_path_method])
|
|
161
|
-
decrypt_file(file_path)
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
desc crypto_commands[:commands][1], "encrypt #{crypto_commands[:desc]}"
|
|
165
|
-
unless crypto_commands.to_s.match(/shared_.+/)
|
|
166
|
-
option :environment, :required => true
|
|
167
|
-
end
|
|
168
|
-
define_method crypto_commands[:commands][1] do
|
|
169
|
-
file_path = send(crypto_commands[:file_path_method])
|
|
170
|
-
encrypt_file(file_path)
|
|
171
|
-
end
|
|
172
|
-
end
|
|
173
|
-
|
|
174
151
|
desc "console", "interactive session"
|
|
175
152
|
def console
|
|
176
153
|
require 'pry-byebug'
|
|
@@ -186,48 +163,11 @@ module Hashicorptools
|
|
|
186
163
|
end
|
|
187
164
|
|
|
188
165
|
def execute(state_file_path, var_file_path=nil)
|
|
189
|
-
decrypt_file(state_file_path)
|
|
190
|
-
if var_file_path
|
|
191
|
-
decrypt_file(var_file_path)
|
|
192
|
-
end
|
|
193
|
-
|
|
194
166
|
begin
|
|
195
167
|
yield
|
|
196
168
|
rescue StandardError => e
|
|
197
169
|
puts e.message
|
|
198
170
|
puts e.backtrace
|
|
199
|
-
ensure
|
|
200
|
-
encrypt_file(state_file_path)
|
|
201
|
-
if var_file_path
|
|
202
|
-
delete_decrypted_var_file
|
|
203
|
-
end
|
|
204
|
-
end
|
|
205
|
-
end
|
|
206
|
-
|
|
207
|
-
def delete_decrypted_var_file
|
|
208
|
-
return unless File.exist?(var_file_path)
|
|
209
|
-
|
|
210
|
-
enforce_cryptography_dependencies
|
|
211
|
-
if !File.exist?("#{var_file_path}.enc")
|
|
212
|
-
encrypt_file(var_file_path)
|
|
213
|
-
end
|
|
214
|
-
|
|
215
|
-
File.delete(var_file_path)
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
def encrypt_file(file_path)
|
|
219
|
-
enforce_cryptography_dependencies
|
|
220
|
-
if File.exist?(file_path)
|
|
221
|
-
system "openssl enc -aes-256-cbc -salt -in #{file_path} -out #{file_path}.enc -k #{ENV['TFSTATE_ENCRYPTION_PASSWORD']}"
|
|
222
|
-
end
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
def decrypt_file(file_path, enforce_file_existence=false)
|
|
226
|
-
enforce_cryptography_dependencies
|
|
227
|
-
if File.exist?("#{file_path}.enc")
|
|
228
|
-
system "openssl enc -aes-256-cbc -d -in #{file_path}.enc -out #{file_path} -k #{ENV['TFSTATE_ENCRYPTION_PASSWORD']}"
|
|
229
|
-
elsif enforce_file_existence
|
|
230
|
-
raise "Could not find #{file_path}.enc"
|
|
231
171
|
end
|
|
232
172
|
end
|
|
233
173
|
|
|
@@ -291,10 +231,6 @@ module Hashicorptools
|
|
|
291
231
|
end
|
|
292
232
|
end
|
|
293
233
|
|
|
294
|
-
def enforce_cryptography_dependencies
|
|
295
|
-
raise "must supply TFSTATE_ENCRYPTION_PASSWORD environmental variable" if ENV['TFSTATE_ENCRYPTION_PASSWORD'].blank?
|
|
296
|
-
end
|
|
297
|
-
|
|
298
234
|
def settings
|
|
299
235
|
{} # override me to pass more variables into the terraform plan.
|
|
300
236
|
end
|
|
@@ -310,7 +246,6 @@ module Hashicorptools
|
|
|
310
246
|
end
|
|
311
247
|
|
|
312
248
|
def shared_plan_variables
|
|
313
|
-
decrypt_file(shared_state_path, false)
|
|
314
249
|
if File.exist?(shared_state_path)
|
|
315
250
|
output_variables(shared_state_path)
|
|
316
251
|
else
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hashicorptools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nathan Woodhull
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2017-08-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk
|
|
@@ -122,188 +122,6 @@ dependencies:
|
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: rspec
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - ">="
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '0'
|
|
132
|
-
type: :runtime
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - ">="
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '0'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: rdoc
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '3.12'
|
|
146
|
-
type: :runtime
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '3.12'
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: bundler
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - "~>"
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '1.0'
|
|
160
|
-
type: :runtime
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - "~>"
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '1.0'
|
|
167
|
-
- !ruby/object:Gem::Dependency
|
|
168
|
-
name: juwelier
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - ">="
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: '0'
|
|
174
|
-
type: :runtime
|
|
175
|
-
prerelease: false
|
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
-
requirements:
|
|
178
|
-
- - ">="
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: '0'
|
|
181
|
-
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: simplecov
|
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
|
184
|
-
requirements:
|
|
185
|
-
- - ">="
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: '0'
|
|
188
|
-
type: :runtime
|
|
189
|
-
prerelease: false
|
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
-
requirements:
|
|
192
|
-
- - ">="
|
|
193
|
-
- !ruby/object:Gem::Version
|
|
194
|
-
version: '0'
|
|
195
|
-
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: aws-sdk
|
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
|
198
|
-
requirements:
|
|
199
|
-
- - "~>"
|
|
200
|
-
- !ruby/object:Gem::Version
|
|
201
|
-
version: '2'
|
|
202
|
-
type: :development
|
|
203
|
-
prerelease: false
|
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
-
requirements:
|
|
206
|
-
- - "~>"
|
|
207
|
-
- !ruby/object:Gem::Version
|
|
208
|
-
version: '2'
|
|
209
|
-
- !ruby/object:Gem::Dependency
|
|
210
|
-
name: dynect_rest
|
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
|
212
|
-
requirements:
|
|
213
|
-
- - ">="
|
|
214
|
-
- !ruby/object:Gem::Version
|
|
215
|
-
version: '0'
|
|
216
|
-
type: :development
|
|
217
|
-
prerelease: false
|
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
-
requirements:
|
|
220
|
-
- - ">="
|
|
221
|
-
- !ruby/object:Gem::Version
|
|
222
|
-
version: '0'
|
|
223
|
-
- !ruby/object:Gem::Dependency
|
|
224
|
-
name: aws-sdk-v1
|
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
|
226
|
-
requirements:
|
|
227
|
-
- - ">="
|
|
228
|
-
- !ruby/object:Gem::Version
|
|
229
|
-
version: '0'
|
|
230
|
-
type: :development
|
|
231
|
-
prerelease: false
|
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
233
|
-
requirements:
|
|
234
|
-
- - ">="
|
|
235
|
-
- !ruby/object:Gem::Version
|
|
236
|
-
version: '0'
|
|
237
|
-
- !ruby/object:Gem::Dependency
|
|
238
|
-
name: dotenv
|
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
|
240
|
-
requirements:
|
|
241
|
-
- - ">="
|
|
242
|
-
- !ruby/object:Gem::Version
|
|
243
|
-
version: '0'
|
|
244
|
-
type: :development
|
|
245
|
-
prerelease: false
|
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
247
|
-
requirements:
|
|
248
|
-
- - ">="
|
|
249
|
-
- !ruby/object:Gem::Version
|
|
250
|
-
version: '0'
|
|
251
|
-
- !ruby/object:Gem::Dependency
|
|
252
|
-
name: thor
|
|
253
|
-
requirement: !ruby/object:Gem::Requirement
|
|
254
|
-
requirements:
|
|
255
|
-
- - ">="
|
|
256
|
-
- !ruby/object:Gem::Version
|
|
257
|
-
version: '0'
|
|
258
|
-
type: :development
|
|
259
|
-
prerelease: false
|
|
260
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
261
|
-
requirements:
|
|
262
|
-
- - ">="
|
|
263
|
-
- !ruby/object:Gem::Version
|
|
264
|
-
version: '0'
|
|
265
|
-
- !ruby/object:Gem::Dependency
|
|
266
|
-
name: activesupport
|
|
267
|
-
requirement: !ruby/object:Gem::Requirement
|
|
268
|
-
requirements:
|
|
269
|
-
- - ">="
|
|
270
|
-
- !ruby/object:Gem::Version
|
|
271
|
-
version: '0'
|
|
272
|
-
type: :development
|
|
273
|
-
prerelease: false
|
|
274
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
275
|
-
requirements:
|
|
276
|
-
- - ">="
|
|
277
|
-
- !ruby/object:Gem::Version
|
|
278
|
-
version: '0'
|
|
279
|
-
- !ruby/object:Gem::Dependency
|
|
280
|
-
name: byebug
|
|
281
|
-
requirement: !ruby/object:Gem::Requirement
|
|
282
|
-
requirements:
|
|
283
|
-
- - ">="
|
|
284
|
-
- !ruby/object:Gem::Version
|
|
285
|
-
version: '0'
|
|
286
|
-
type: :development
|
|
287
|
-
prerelease: false
|
|
288
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
289
|
-
requirements:
|
|
290
|
-
- - ">="
|
|
291
|
-
- !ruby/object:Gem::Version
|
|
292
|
-
version: '0'
|
|
293
|
-
- !ruby/object:Gem::Dependency
|
|
294
|
-
name: git
|
|
295
|
-
requirement: !ruby/object:Gem::Requirement
|
|
296
|
-
requirements:
|
|
297
|
-
- - ">="
|
|
298
|
-
- !ruby/object:Gem::Version
|
|
299
|
-
version: '0'
|
|
300
|
-
type: :development
|
|
301
|
-
prerelease: false
|
|
302
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
303
|
-
requirements:
|
|
304
|
-
- - ">="
|
|
305
|
-
- !ruby/object:Gem::Version
|
|
306
|
-
version: '0'
|
|
307
125
|
- !ruby/object:Gem::Dependency
|
|
308
126
|
name: rspec
|
|
309
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -393,9 +211,9 @@ files:
|
|
|
393
211
|
- Rakefile
|
|
394
212
|
- VERSION
|
|
395
213
|
- bin/ec2_host
|
|
396
|
-
- data/standard-ami.json
|
|
397
214
|
- hashicorptools.gemspec
|
|
398
215
|
- lib/hashicorptools.rb
|
|
216
|
+
- lib/hashicorptools/ami_configs/standard-ami.json
|
|
399
217
|
- lib/hashicorptools/auto_scaling_group.rb
|
|
400
218
|
- lib/hashicorptools/code_deploy.rb
|
|
401
219
|
- lib/hashicorptools/ec2_utilities.rb
|
|
@@ -426,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
426
244
|
version: '0'
|
|
427
245
|
requirements: []
|
|
428
246
|
rubyforge_project:
|
|
429
|
-
rubygems_version: 2.
|
|
247
|
+
rubygems_version: 2.5.2
|
|
430
248
|
signing_key:
|
|
431
249
|
specification_version: 4
|
|
432
250
|
summary: Wrappers for terraform and packer
|