TerraformDevKit 0.3.5 → 0.3.6

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 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