ruby-terraform 0.31.0.pre.pre.2 → 0.31.0.pre.pre.3

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
  SHA256:
3
- metadata.gz: e8ab81a9a37f8fbab7fb24fae0322f2e686b423bf67093ab51c74c679e925f72
4
- data.tar.gz: e8cfb6b87ff32093608e449d31573554e824d91036f4b17a09422ee791329fff
3
+ metadata.gz: 4de31f123edc9358c631bbb94022472b0173a6144008c06ccfe35f91e17b26c0
4
+ data.tar.gz: 5acaa7f8dd31c1e6c27658af497f1a0b82f20cc8fecab1542bdb3b404c95ff23
5
5
  SHA512:
6
- metadata.gz: 4437914e08d45fabb0cf7b0714db584ea0e5de1b7eb7ff83be54bb72e2881d7016da3d67c545865a1847ed73ca5fdee52aa902ef3930bed47d2392fd14ff259a
7
- data.tar.gz: 7cf12ed907f6dbc5866d0b6e1cd07c44bf6576ef4a24c3a022d447b8188930200b7f6976567068cb136f5c12cec2f1a97c691dd6dd7dfa82448b880638cda572
6
+ metadata.gz: 0e36e65ce356902ce650c48c85e12567bdbb7ecfaca49e2b28c32b6e79608eb427b8f4d7cf737afde02dd46b0f5f243409df0accdd80696511aaf9e84286343d
7
+ data.tar.gz: 4660bed722de8637b49257ee7142d7f012f3d536dc747c3561e86462b7263fe58dffe3e4aec58b93b59870b6015925fcd6e2c5e8d119f1e4f342d987e8d4e746
data/CHANGELOG.md CHANGED
@@ -1,4 +1,13 @@
1
- ## 0.29.0 (September 25th, 2019)
1
+ ## 0.31.0 (September 25th, 2019)
2
+
3
+ IMPROVEMENTS
4
+
5
+ * Add support for `target` and / or `targets` options to be passed to `apply`,
6
+ `plan`, `refresh` and `destroy` commands.
7
+ * Add support for `plan` option to `apply` command to be more clear when
8
+ applying a prebuilt plan.
9
+
10
+ ## 0.30.0 (September 25th, 2019)
2
11
 
3
12
  IMPROVEMENTS:
4
13
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-terraform (0.31.0.pre.pre.2)
4
+ ruby-terraform (0.31.0.pre.pre.3)
5
5
  lino (~> 1.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -47,6 +47,7 @@ Currently, there is partial support for the following commands:
47
47
  * `RubyTerraform::Commands::Show`: executes `terraform show`
48
48
  * `RubyTerraform::Commands::Destroy`: executes `terraform destroy`
49
49
  * `RubyTerraform::Commands::Output`: executes `terraform output`
50
+ * `RubyTerraform::Commands::Refresh`: executes `terraform refresh`
50
51
  * `RubyTerraform::Commands::RemoteConfig`: executes `terraform remote config`
51
52
  * `RubyTerraform::Commands::Validate`: executes `terraform validate`
52
53
  * `RubyTerraform::Commands::Workspace`: executes `terraform workspace`
@@ -137,6 +138,10 @@ The plan command supports the following options passed as keyword arguments:
137
138
  `var_files` are provided, all var files will be passed to terraform.
138
139
  * `var_files`: an array of paths to terraform var files; if both `var_file` and
139
140
  `var_files` are provided, all var files will be passed to terraform.
141
+ * `target`: the address of a resource to target; if both `target` and
142
+ `targets` are provided, all targets will be passed to terraform.
143
+ * `targets`: and array of resource addresses to target; if both `target` and
144
+ `targets` are provided, all targets will be passed to terraform.
140
145
  * `state`: the path to the state file in which to store state; defaults to
141
146
  terraform.tfstate in the working directory or the remote state if configured.
142
147
  * `plan`: the name of the file in which to save the generated plan.
@@ -173,6 +178,10 @@ The apply command supports the following options passed as keyword arguments:
173
178
  `var_files` are provided, all var files will be passed to terraform.
174
179
  * `var_files`: an array of paths to terraform var files; if both `var_file` and
175
180
  `var_files` are provided, all var files will be passed to terraform.
181
+ * `target`: the address of a resource to target; if both `target` and
182
+ `targets` are provided, all targets will be passed to terraform.
183
+ * `targets`: and array of resource addresses to target; if both `target` and
184
+ `targets` are provided, all targets will be passed to terraform.
176
185
  * `state`: the path to the state file in which to store state; defaults to
177
186
  terraform.tfstate in the working directory or the remote state if configured.
178
187
  * `backup`: the path to the backup file in which to store the state backup.
@@ -185,6 +194,26 @@ The apply command supports the following options passed as keyword arguments:
185
194
  confirm the changes; defaults to `false`.
186
195
 
187
196
 
197
+ ### RubyTerraform::Commands::Show
198
+
199
+ The show command produces human-readable output from a state file or a plan
200
+ file. It can be called in the following ways:
201
+
202
+ ```ruby
203
+ RubyTerraform.show(
204
+ path: 'infra/networking')
205
+ RubyTerraform::Commands::Apply.new.execute(
206
+ path: 'infra/networking')
207
+ ```
208
+
209
+ The show command supports the following options passed as keyword arguments:
210
+ * `path`: the path to a state or plan file; required.
211
+ * `no_color`: whether or not the output from the command should be in color;
212
+ defaults to `false`.
213
+ * `module_depth`: the depth of modules to show in the output; defaults to
214
+ showing all modules.
215
+
216
+
188
217
  ### RubyTerraform::Commands::Destroy
189
218
 
190
219
  The destroy command destroys all resources defined in the terraform
@@ -211,6 +240,10 @@ The destroy command supports the following options passed as keyword arguments:
211
240
  `var_files` are provided, all var files will be passed to terraform.
212
241
  * `var_files`: an array of paths to terraform var files; if both `var_file` and
213
242
  `var_files` are provided, all var files will be passed to terraform.
243
+ * `target`: the address of a resource to target; if both `target` and
244
+ `targets` are provided, all targets will be passed to terraform.
245
+ * `targets`: and array of resource addresses to target; if both `target` and
246
+ `targets` are provided, all targets will be passed to terraform.
214
247
  * `state`: the path to the state file containing the current state; defaults to
215
248
  terraform.tfstate in the working directory or the remote state if configured.
216
249
  * `force`: if `true`, the command destroys without prompting the user to confirm
@@ -240,10 +273,48 @@ The output command supports the following options passed as keyword arguments:
240
273
  * `module`: the name of a module to retrieve output from.
241
274
 
242
275
 
276
+ ### RubyTerraform::Commands::Refresh
277
+
278
+ The refresh command will reconcile state with resources found in the target
279
+ environment. It can be called in the following ways:
280
+
281
+ ```ruby
282
+ RubyTerraform.refresh(
283
+ directory: 'infra/networking',
284
+ vars: {
285
+ region: 'eu-central'
286
+ })
287
+ RubyTerraform::Commands::Refresh.new.execute(
288
+ directory: 'infra/networking',
289
+ vars: {
290
+ region: 'eu-central'
291
+ })
292
+ ```
293
+
294
+ The refresh command supports the following options passed as keyword arguments:
295
+ * `directory`: the directory containing terraform configuration; required.
296
+ * `vars`: a map of vars to be passed in to the terraform configuration.
297
+ * `var_file`: the path to a terraform var file; if both `var_file` and
298
+ `var_files` are provided, all var files will be passed to terraform.
299
+ * `var_files`: an array of paths to terraform var files; if both `var_file` and
300
+ `var_files` are provided, all var files will be passed to terraform.
301
+ * `target`: the address of a resource to target; if both `target` and
302
+ `targets` are provided, all targets will be passed to terraform.
303
+ * `targets`: and array of resource addresses to target; if both `target` and
304
+ `targets` are provided, all targets will be passed to terraform.
305
+ * `state`: the path to the state file in which to store state; defaults to
306
+ terraform.tfstate in the working directory or the remote state if configured.
307
+ * `input`: when `false`, will not ask for input for variables not directly set;
308
+ defaults to `true`.
309
+ * `no_color`: whether or not the output from the command should be in color;
310
+ defaults to `false`.
311
+
312
+
243
313
  ### RubyTerraform::Commands::RemoteConfig
244
314
 
245
315
  The remote config command configures storage of state using a remote backend. It
246
- can be called in the following ways:
316
+ has been deprecated and since removed from terraform but is retained in this
317
+ library for backwards compatibility. It can be called in the following ways:
247
318
 
248
319
  ```ruby
249
320
  RubyTerraform.remote_config(
@@ -271,6 +342,37 @@ arguments:
271
342
  defaults to `false`.
272
343
 
273
344
 
345
+ ### RubyTerraform::Commands::Validate
346
+
347
+ The validate command validates terraform configuration in the provided terraform
348
+ configuration directory. It can be called in the following ways:
349
+
350
+ ```ruby
351
+ RubyTerraform.validate(
352
+ directory: 'infra/networking',
353
+ vars: {
354
+ region: 'eu-central'
355
+ })
356
+ RubyTerraform::Commands::Validate.new.execute(
357
+ directory: 'infra/networking',
358
+ vars: {
359
+ region: 'eu-central'
360
+ })
361
+ ```
362
+
363
+ The validate command supports the following options passed as keyword arguments:
364
+ * `directory`: the directory containing terraform configuration; required.
365
+ * `vars`: a map of vars to be passed in to the terraform configuration.
366
+ * `var_file`: the path to a terraform var file; if both `var_file` and
367
+ `var_files` are provided, all var files will be passed to terraform.
368
+ * `var_files`: an array of paths to terraform var files; if both `var_file` and
369
+ `var_files` are provided, all var files will be passed to terraform.
370
+ * `no_color`: whether or not the output from the command should be in color;
371
+ defaults to `false`.
372
+ * `check_variables`: if `true`, the command checks whether all variables have
373
+ been provided; defaults to `true`.
374
+
375
+
274
376
  ### RubyTerraform::Commands::Workspace
275
377
 
276
378
  The `workspace` command configures
@@ -7,15 +7,17 @@ module RubyTerraform
7
7
  module Commands
8
8
  class Show < Base
9
9
  def configure_command(builder, opts)
10
+ path = opts[:path] || opts[:directory]
10
11
  no_color = opts[:no_color]
11
12
  module_depth = opts[:module_depth]
13
+
12
14
  builder
13
15
  .with_subcommand('show') do |sub|
14
16
  sub = sub.with_option('-module-depth', module_depth) if module_depth
15
17
  sub = sub.with_flag('-no-color') if no_color
16
18
  sub
17
19
  end
18
- .with_argument(opts[:directory])
20
+ .with_argument(path)
19
21
  end
20
22
  end
21
23
  end
@@ -1,3 +1,3 @@
1
1
  module RubyTerraform
2
- VERSION = "0.31.0-pre.2"
2
+ VERSION = "0.31.0-pre.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0.pre.pre.2
4
+ version: 0.31.0.pre.pre.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson