tfwrapper 0.6.1 → 0.6.2

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
- SHA1:
3
- metadata.gz: 68a638cd8db6246d0a17096f0b8bc125166772ea
4
- data.tar.gz: 05301d7bfcc0a75562b8036e657cf610d4aa55a4
2
+ SHA256:
3
+ metadata.gz: 4a404a81c05bcc07e29ef34eef1d881aa9c47faa1e5ba0ed127a34b8ae1202c5
4
+ data.tar.gz: f0078c62815fd5d7e49c14d201d9da2154ed91f6c4786a7a7be65914582cd4d8
5
5
  SHA512:
6
- metadata.gz: 23f2edc392399b115ad02465a1b3b9fad6d6c37b633e4bcc6ea8463799c3af4c641f00828b0eb6879e380abe48ca3c38a8ee21ce8bf96b677f069f0adede586d
7
- data.tar.gz: 72af330049aab08bfb69c539985bb9dc0c2ef5b13c57b02ae682c77468410b4880672407d3b84e420d6858248c2f98cdd822fc0fa51d3a23fa77482a3ec0d66c
6
+ metadata.gz: db129accb7e439c570ca8a8eb2d56a259acb98221a5acf5e451cc4aa44516627abd6e29603574abbf4dcd16c968b58607552bbec3a1b50ce7df44de9659968a7
7
+ data.tar.gz: f9f99bcc2e51e2aa4cedabd0e1179a1954dbc3e3e4d44149ab2d171218cc6e55a940ef2372869c6cd694c77be0282d5230f7a7d142eaea53479794c78550e810
@@ -1,3 +1,7 @@
1
+ Version 0.6.2
2
+
3
+ - Add ``tf_sensitive_vars`` option.
4
+
1
5
  Version 0.6.1
2
6
 
3
7
  - Add ``allowed_empty_vars`` option.
data/README.md CHANGED
@@ -330,6 +330,26 @@ $ consul kv get terraform/inputs/foo
330
330
  {"FOO":"one", "BAR":"two"}
331
331
  ```
332
332
 
333
+ ### Sensitive Environment Variables
334
+ If you wish for certain variables to be marked as "redacted", use the ``tf_sensitive_vars`` option. This is an array of variables that will not be printed.
335
+
336
+ Note: ``aws_access_key`` and ``aws_secret_key`` will always be redacted without requiring configuration.
337
+
338
+
339
+ Example to redact the vaule for ``secret``:
340
+
341
+ Rakefile:
342
+
343
+ ```ruby
344
+ require 'tfwrapper/raketasks'
345
+
346
+ TFWrapper::RakeTasks.install_tasks(
347
+ '.',
348
+ tf_vars_from_env: {'foo' => 'FOO', 'bar' => 'BAR', 'secret' => 'abc'},
349
+ tf_sensitive_vars: ['secret']
350
+ )
351
+ ```
352
+
333
353
  ## Development
334
354
 
335
355
  1. ``bundle install --path vendor``
@@ -59,6 +59,8 @@ module TFWrapper
59
59
  # names (specified in :tf_vars_from_env) to allow to be empty or missing.
60
60
  # @option opts [Hash] :tf_extra_vars hash of Terraform variables to their
61
61
  # values; overrides any same-named keys in ``tf_vars_from_env``
62
+ # @option opts [Array] :tf_sensitive_vars list of Terraform variables
63
+ # which should not be printed
62
64
  # @option opts [String] :consul_url URL to access Consul at, for the
63
65
  # ``:consul_env_vars_prefix`` option.
64
66
  # @option opts [String] :consul_env_vars_prefix if specified and not nil,
@@ -99,6 +101,7 @@ module TFWrapper
99
101
  @consul_env_vars_prefix = opts.fetch(:consul_env_vars_prefix, nil)
100
102
  @tf_vars_from_env = opts.fetch(:tf_vars_from_env, {})
101
103
  @allowed_empty_vars = opts.fetch(:allowed_empty_vars, [])
104
+ @tf_sensitive_vars = opts.fetch(:tf_sensitive_vars, [])
102
105
  @tf_extra_vars = opts.fetch(:tf_extra_vars, {})
103
106
  @backend_config = opts.fetch(:backend_config, {})
104
107
  @consul_url = opts.fetch(:consul_url, nil)
@@ -319,7 +322,9 @@ module TFWrapper
319
322
  tf_vars = terraform_vars
320
323
  puts 'Terraform vars:'
321
324
  tf_vars.sort.map do |k, v|
322
- if %w[aws_access_key aws_secret_key].include?(k)
325
+ redacted_list = (%w[aws_access_key aws_secret_key] +
326
+ @tf_sensitive_vars)
327
+ if redacted_list.include?(k)
323
328
  puts "#{k} => (redacted)"
324
329
  else
325
330
  puts "#{k} => #{v}"
@@ -4,5 +4,5 @@ module TFWrapper
4
4
  # version of the Gem/module; used in the gemspec and in messages.
5
5
  # NOTE: When updating this, also update the version in the "Installation"
6
6
  # section of README.md
7
- VERSION = '0.6.1'
7
+ VERSION = '0.6.2'
8
8
  end
@@ -60,6 +60,7 @@ describe TFWrapper::RakeTasks do
60
60
  expect(cls.instance_variable_get('@consul_env_vars_prefix')).to eq(nil)
61
61
  expect(cls.instance_variable_get('@tf_vars_from_env')).to eq({})
62
62
  expect(cls.instance_variable_get('@allowed_empty_vars')).to eq([])
63
+ expect(cls.instance_variable_get('@tf_sensitive_vars')).to eq([])
63
64
  expect(cls.instance_variable_get('@tf_extra_vars')).to eq({})
64
65
  expect(cls.instance_variable_get('@backend_config')).to eq({})
65
66
  expect(cls.instance_variable_get('@consul_url')).to eq(nil)
@@ -89,6 +90,7 @@ describe TFWrapper::RakeTasks do
89
90
  consul_env_vars_prefix: 'cvprefix',
90
91
  tf_vars_from_env: { 'foo' => 'bar' },
91
92
  allowed_empty_vars: %w[bar blam],
93
+ tf_sensitive_vars: %w[secret],
92
94
  tf_extra_vars: { 'baz' => 'blam' },
93
95
  consul_url: 'foobar',
94
96
  before_proc: bproc,
@@ -104,6 +106,8 @@ describe TFWrapper::RakeTasks do
104
106
  .to eq('foo' => 'bar')
105
107
  expect(cls.instance_variable_get('@allowed_empty_vars'))
106
108
  .to eq(%w[bar blam])
109
+ expect(cls.instance_variable_get('@tf_sensitive_vars'))
110
+ .to eq(%w[secret])
107
111
  expect(cls.instance_variable_get('@tf_extra_vars'))
108
112
  .to eq('baz' => 'blam')
109
113
  expect(cls.instance_variable_get('@backend_config')).to eq({})
@@ -832,6 +836,7 @@ describe TFWrapper::RakeTasks do
832
836
  Rake.application = rake_application
833
837
  end
834
838
  before do
839
+ subject.instance_variable_set('@tf_sensitive_vars', ['secret'])
835
840
  subject.install_write_tf_vars
836
841
  end
837
842
 
@@ -844,7 +849,8 @@ describe TFWrapper::RakeTasks do
844
849
  vars = {
845
850
  'foo' => 'bar',
846
851
  'baz' => 'blam',
847
- 'aws_access_key' => 'ak'
852
+ 'aws_access_key' => 'ak',
853
+ 'secret' => 'abc'
848
854
  }
849
855
  allow(subject).to receive(:terraform_vars).and_return(vars)
850
856
  allow(subject).to receive(:var_file_path).and_return('file.tfvars.json')
@@ -856,6 +862,8 @@ describe TFWrapper::RakeTasks do
856
862
  expect(STDOUT).to receive(:puts).once.with('Terraform vars:')
857
863
  expect(STDOUT).to receive(:puts)
858
864
  .once.with('aws_access_key => (redacted)')
865
+ expect(STDOUT).to receive(:puts)
866
+ .once.with('secret => (redacted)')
859
867
  expect(STDOUT).to receive(:puts).once.with('baz => blam')
860
868
  expect(STDOUT).to receive(:puts).once.with('foo => bar')
861
869
  expect(File).to receive(:open).once.with('file.tfvars.json', 'w')
@@ -917,6 +925,7 @@ describe TFWrapper::RakeTasks do
917
925
  Rake.application = rake_application
918
926
  end
919
927
  before do
928
+ subject.instance_variable_set('@tf_sensitive_vars', ['secret'])
920
929
  subject.instance_variable_set('@ns_prefix', 'foo')
921
930
  subject.install_write_tf_vars
922
931
  end
@@ -930,7 +939,8 @@ describe TFWrapper::RakeTasks do
930
939
  vars = {
931
940
  'foo' => 'bar',
932
941
  'baz' => 'blam',
933
- 'aws_access_key' => 'ak'
942
+ 'aws_access_key' => 'ak',
943
+ 'secret' => 'abc'
934
944
  }
935
945
  allow(subject).to receive(:terraform_vars).and_return(vars)
936
946
  allow(subject).to receive(:var_file_path)
@@ -943,6 +953,8 @@ describe TFWrapper::RakeTasks do
943
953
  expect(STDOUT).to receive(:puts).once.with('Terraform vars:')
944
954
  expect(STDOUT).to receive(:puts)
945
955
  .once.with('aws_access_key => (redacted)')
956
+ expect(STDOUT).to receive(:puts)
957
+ .once.with('secret => (redacted)')
946
958
  expect(STDOUT).to receive(:puts).once.with('baz => blam')
947
959
  expect(STDOUT).to receive(:puts).once.with('foo => bar')
948
960
  expect(File).to receive(:open).once.with('foo_file.tfvars.json', 'w')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tfwrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - jantman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-23 00:00:00.000000000 Z
11
+ date: 2020-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: retries
@@ -421,7 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
421
421
  version: '0'
422
422
  requirements: []
423
423
  rubyforge_project:
424
- rubygems_version: 2.6.14
424
+ rubygems_version: 2.7.6
425
425
  signing_key:
426
426
  specification_version: 4
427
427
  summary: Rake tasks for running Hashicorp Terraform sanely