TerraformDevKit 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83160b993699651ff3704a83514b066c05c40ecd
4
- data.tar.gz: fc6ff392be1d7ff059c3a65a7668b77940259d8d
3
+ metadata.gz: ac0b94822f7c2101d5399ef83c58e6e35300c888
4
+ data.tar.gz: ca5e44187ad6f852b98cdb7bba6692b34fe9c53a
5
5
  SHA512:
6
- metadata.gz: 7530cce40200f4e8ba2bc2dc725127557e720873e158ab055f9dbf53fefc1f862bfd9eabd8c41d6c524f9505c52e1d74c94b3e8a4faf2707a6c87a485c169641
7
- data.tar.gz: 7e34bb9aa5448e9ff903ae66b00366f9dbe2cfef40931352dba80a705cba89151942444ed86369ff0fe0513ea6c462a7ac15d7d212bb6b937e2c7eb7dff45363
6
+ metadata.gz: 9f5f86d877a2d7f76940508fc04be9d2ddfdf47986c046ecb5af838c65b07b75f88d863b04c0d8ed5d3df7131f2806b6eeba6df04d8954ff46a6fc4b035a2ce4
7
+ data.tar.gz: c05e5318a8b9d1e569a649fcb89bbf5e1b5db91c00ecb7ca560db65e25294dbebe0ff6b1d684b1d98d2d40cd92ff0654dbb1284bd8745aa096bf86cd6f85555a
data/README.md CHANGED
@@ -119,7 +119,7 @@ Additionally, TerraformDevKit allows users to define a set of hooks that will be
119
119
  * `post_apply`: invoked after `apply` task runs
120
120
  * `pre_destroy`: invoked before `destroy` task runs
121
121
  * `post_destroy`: invoked after `destroy` task runs
122
- * `custom_prepare`: invoked during the preparation process, before terraform is initialized
122
+ * `custom_prepare`: invoked during the preparation process, before terraform is initialized and the environment folder is created
123
123
  * `custom_test`: invoked during as part of the `test` task, right after `apply` completes.
124
124
 
125
125
  ### Sample Terraform Templates
@@ -1,3 +1,3 @@
1
1
  module TerraformDevKit
2
- VERSION = '0.3.5'.freeze
2
+ VERSION = '0.3.6'.freeze
3
3
  end
data/tasks/devkit.rake CHANGED
@@ -32,11 +32,7 @@ end
32
32
 
33
33
  def task_in_current_namespace(task_name, current_task)
34
34
  namespace = current_task.scope.path.to_s
35
- if namespace.empty?
36
- return task_name
37
- end
38
-
39
- return "#{namespace}:#{task_name}"
35
+ namespace.empty? ? task_name : "#{namespace}:#{task_name}"
40
36
  end
41
37
 
42
38
  def remote_state
@@ -54,13 +50,16 @@ end
54
50
 
55
51
  desc 'Prepares the environment to create the infrastructure'
56
52
  task :prepare, [:env] do |_, args|
57
- puts "== Configuring environment #{args.env}"
58
53
  env = TDK::Environment.new(args.env)
59
54
 
55
+ puts "== Configuring environment #{env.name}"
56
+
60
57
  config_file = CONFIG_FILE % env.config
61
58
  puts "== Loading configuration from #{config_file}"
62
59
  TDK::Configuration.init(config_file)
63
60
 
61
+ invoke('custom_prepare', task, env.name, safe_invoke: true)
62
+
64
63
  TDK::TerraformInstaller.install_local(
65
64
  TDK::Configuration.get('terraform-version'),
66
65
  directory: BIN_PATH
@@ -77,8 +76,6 @@ task :prepare, [:env] do |_, args|
77
76
  remote_state.init(env, project_config)
78
77
  end
79
78
 
80
- invoke('custom_prepare', task, args.env, safe_invoke: true)
81
-
82
79
  if File.exist?(File.join(env.working_dir, '.terraform'))
83
80
  get_cmd = 'terraform get'
84
81
  get_cmd += ' -update=true' if TDK::TerraformConfigManager.update_modules?
@@ -86,7 +83,6 @@ task :prepare, [:env] do |_, args|
86
83
  else
87
84
  init_cmd = 'terraform init'
88
85
  init_cmd += ' -upgrade=false' unless TDK::TerraformConfigManager.update_modules?
89
-
90
86
  TDK::Command.run(init_cmd, directory: env.working_dir)
91
87
  end
92
88
  end
@@ -94,15 +90,12 @@ end
94
90
  desc 'Shows the plan to create the infrastructure'
95
91
  task :plan, [:env] => :prepare do |_, args|
96
92
  env = TDK::Environment.new(args.env)
97
- Dir.chdir(env.working_dir) do
98
- system("terraform plan -out=#{PLAN_FILE}")
99
- end
93
+ cmd = "terraform plan -out=#{PLAN_FILE}"
94
+ TDK::Command.run(cmd, directory: env.working_dir)
100
95
  end
101
96
 
102
97
  desc 'Creates the infrastructure'
103
98
  task :apply, [:env] => :prepare do |task, args|
104
- invoke('pre_apply', task, args.env, safe_invoke: true)
105
-
106
99
  env = TDK::Environment.new(args.env)
107
100
 
108
101
  invoke('plan', task, env.name)
@@ -117,13 +110,14 @@ task :apply, [:env] => :prepare do |task, args|
117
110
  end
118
111
  end
119
112
 
113
+ invoke('pre_apply', task, env.name, safe_invoke: true)
114
+
120
115
  destroy_if_fails(env, task) do
121
- Dir.chdir(env.working_dir) do
122
- system("terraform apply \"#{PLAN_FILE}\"")
123
- end
116
+ cmd = "terraform apply \"#{PLAN_FILE}\""
117
+ TDK::Command.run(cmd, directory: env.working_dir)
124
118
  end
125
119
 
126
- invoke('post_apply', task, args.env, safe_invoke: true)
120
+ invoke('post_apply', task, env.name, safe_invoke: true)
127
121
  end
128
122
 
129
123
  desc 'Tests a local environment'
@@ -134,7 +128,7 @@ task :test, [:env] do |task, args|
134
128
  invoke('apply', task, env.name)
135
129
 
136
130
  destroy_if_fails(env, task) do
137
- invoke('custom_test', task, args.env, safe_invoke: true)
131
+ invoke('custom_test', task, env.name, safe_invoke: true)
138
132
  end
139
133
  end
140
134
 
@@ -150,10 +144,7 @@ end
150
144
 
151
145
  desc 'Destroys the infrastructure'
152
146
  task :destroy, [:env] => :prepare do |task, args|
153
- invoke('pre_destroy', task, args.env, safe_invoke: true)
154
-
155
147
  env = TDK::Environment.new(args.env)
156
- cmd = 'terraform destroy'
157
148
 
158
149
  unless env.local_backend?
159
150
  puts Rainbow("\n\n!!!! WARNING !!!!\n\n" \
@@ -167,13 +158,10 @@ task :destroy, [:env] => :prepare do |task, args|
167
158
  "Response was: #{response}"
168
159
  end
169
160
  end
170
-
171
- cmd += ' -force'
172
161
 
173
- Dir.chdir(env.working_dir) do
174
- system(cmd)
175
- end
176
- invoke('pre_destroy', task, args.env, safe_invoke: true)
162
+ invoke('pre_destroy', task, env.name, safe_invoke: true)
163
+
164
+ TDK::Command.run('terraform destroy -force', directory: env.working_dir)
177
165
 
178
166
  unless env.local_backend?
179
167
  project_config = TDK::ProjectConfig.new(
@@ -183,7 +171,7 @@ task :destroy, [:env] => :prepare do |task, args|
183
171
  remote_state.destroy(env, project_config)
184
172
  end
185
173
 
186
- invoke('post_destroy', task, args.env, safe_invoke: true)
174
+ invoke('post_destroy', task, env.name, safe_invoke: true)
187
175
  end
188
176
 
189
177
  desc 'Cleans an environment (infrastructure is destroyed too)'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: TerraformDevKit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Jimenez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-08 00:00:00.000000000 Z
11
+ date: 2018-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler