yle_tf 1.0.0 → 1.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/bin/tf +1 -0
  3. data/lib/yle_tf/action/builder.rb +2 -0
  4. data/lib/yle_tf/action/command.rb +4 -2
  5. data/lib/yle_tf/action/copy_root_module.rb +2 -0
  6. data/lib/yle_tf/action/generate_vars_file.rb +2 -0
  7. data/lib/yle_tf/action/load_config.rb +9 -1
  8. data/lib/yle_tf/action/terraform_init.rb +14 -36
  9. data/lib/yle_tf/action/tf_hooks.rb +2 -0
  10. data/lib/yle_tf/action/tmpdir.rb +3 -1
  11. data/lib/yle_tf/action/verify_terraform_version.rb +19 -6
  12. data/lib/yle_tf/action/verify_tf_env.rb +2 -0
  13. data/lib/yle_tf/action/write_terraformrc_defaults.rb +4 -2
  14. data/lib/yle_tf/action.rb +2 -0
  15. data/lib/yle_tf/backend.rb +42 -0
  16. data/lib/yle_tf/cli.rb +2 -0
  17. data/lib/yle_tf/config/defaults.rb +19 -11
  18. data/lib/yle_tf/config/erb.rb +2 -0
  19. data/lib/yle_tf/config/file.rb +2 -0
  20. data/lib/yle_tf/config/loader.rb +89 -59
  21. data/lib/yle_tf/config/migration.rb +110 -0
  22. data/lib/yle_tf/config.rb +25 -9
  23. data/lib/yle_tf/error.rb +2 -0
  24. data/lib/yle_tf/helpers/hash.rb +22 -0
  25. data/lib/yle_tf/logger/colorize.rb +2 -0
  26. data/lib/yle_tf/logger.rb +2 -0
  27. data/lib/yle_tf/plugin/action_hook.rb +2 -0
  28. data/lib/yle_tf/plugin/loader.rb +8 -1
  29. data/lib/yle_tf/plugin/manager.rb +3 -0
  30. data/lib/yle_tf/plugin.rb +6 -2
  31. data/lib/yle_tf/system/io_handlers.rb +4 -0
  32. data/lib/yle_tf/system/output_logger.rb +2 -0
  33. data/lib/yle_tf/system/tf_hook_output_logger.rb +2 -0
  34. data/lib/yle_tf/system.rb +3 -1
  35. data/lib/yle_tf/tf_hook/runner.rb +2 -0
  36. data/lib/yle_tf/tf_hook.rb +11 -9
  37. data/lib/yle_tf/vars_file.rb +16 -3
  38. data/lib/yle_tf/version.rb +3 -1
  39. data/lib/yle_tf/version_requirement.rb +2 -5
  40. data/lib/yle_tf.rb +4 -0
  41. data/lib/yle_tf_plugins/backends/{s3 → __default}/plugin.rb +6 -4
  42. data/lib/yle_tf_plugins/backends/file/{command.rb → backend.rb} +12 -13
  43. data/lib/yle_tf_plugins/backends/file/plugin.rb +4 -2
  44. data/lib/yle_tf_plugins/commands/__default/command.rb +2 -0
  45. data/lib/yle_tf_plugins/commands/__default/plugin.rb +2 -0
  46. data/lib/yle_tf_plugins/commands/_config/command.rb +2 -0
  47. data/lib/yle_tf_plugins/commands/_config/plugin.rb +2 -0
  48. data/lib/yle_tf_plugins/commands/_shell/command.rb +2 -0
  49. data/lib/yle_tf_plugins/commands/_shell/plugin.rb +2 -0
  50. data/lib/yle_tf_plugins/commands/help/command.rb +2 -0
  51. data/lib/yle_tf_plugins/commands/help/plugin.rb +2 -0
  52. data/lib/yle_tf_plugins/commands/version/command.rb +2 -0
  53. data/lib/yle_tf_plugins/commands/version/plugin.rb +2 -0
  54. metadata +41 -16
  55. data/lib/yle_tf/backend_config.rb +0 -41
  56. data/lib/yle_tf_plugins/backends/file/config.rb +0 -17
  57. data/lib/yle_tf_plugins/backends/s3/command.rb +0 -19
  58. data/lib/yle_tf_plugins/backends/swift/command.rb +0 -18
  59. data/lib/yle_tf_plugins/backends/swift/plugin.rb +0 -16
data/lib/yle_tf/config.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pathname'
2
4
  require 'yaml'
3
5
 
@@ -10,16 +12,23 @@ class YleTf
10
12
  class Config
11
13
  NotFoundError = Class.new(Error)
12
14
 
13
- attr_reader :config, :tf_env, :module_dir
15
+ # Loads the configuration based on the environment
16
+ def self.load(tf_env)
17
+ opts = {
18
+ tf_env: tf_env,
19
+ module_dir: Pathname.pwd
20
+ }
14
21
 
15
- def initialize(tf_env)
16
- Logger.debug("Initializing configuration for the #{tf_env.inspect} environment")
22
+ config = Loader.new(opts).load
23
+ new(config, opts)
24
+ end
17
25
 
18
- @tf_env = tf_env
19
- @module_dir = Pathname.pwd
20
- @config = Loader.new(tf_env: tf_env, module_dir: module_dir).load
26
+ attr_reader :config, :tf_env, :module_dir
21
27
 
22
- Logger.debug(inspect)
28
+ def initialize(config, **opts)
29
+ @config = config
30
+ @tf_env = opts[:tf_env]
31
+ @module_dir = opts[:module_dir]
23
32
  end
24
33
 
25
34
  def to_s
@@ -33,8 +42,15 @@ class YleTf
33
42
  block ||= DEFAULT_NOT_FOUND_BLOCK
34
43
 
35
44
  keys.inject(config) do |conf, key|
36
- break block.call(keys) if !conf || !conf.key?(key)
37
- conf[key]
45
+ next conf[key] if conf.is_a?(Hash) && conf.key?(key)
46
+
47
+ if !conf.nil? && !conf.is_a?(Hash)
48
+ Logger.warn(
49
+ "Configuration [#{keys.join(' > ')}] includes non-hash element #{conf.inspect}"
50
+ )
51
+ end
52
+
53
+ break block.call(keys)
38
54
  end
39
55
  end
40
56
 
data/lib/yle_tf/error.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class YleTf
2
4
  # Base class for yle_tf errors
3
5
  Error = Class.new(StandardError)
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../vendor/hash_deep_merge'
4
+
5
+ class YleTf
6
+ module Helpers
7
+ module Hash
8
+ module_function
9
+
10
+ # Returns deep merged new Hash
11
+ def deep_merge(target, source)
12
+ target.deep_merge(source)
13
+ end
14
+
15
+ # Returns deep copy of a Hash.
16
+ # `dup` and `clone` only return shallow copies.
17
+ def deep_copy(hash)
18
+ Marshal.load(Marshal.dump(hash))
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class YleTf
2
4
  module Logger
3
5
  module Colorize
data/lib/yle_tf/logger.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'forwardable'
2
4
  require 'logger'
3
5
  require 'rubygems'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class YleTf
2
4
  class Plugin
3
5
  class ActionHook
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
 
3
5
  class YleTf
@@ -13,7 +15,7 @@ class YleTf
13
15
 
14
16
  def self.load_core_plugins
15
17
  core_plugins.each do |plugin_file|
16
- Logger.debug("Loading core plugin: #{File.basename(plugin_file, '.rb')}")
18
+ Logger.debug { "Loading core plugin: #{core_plugin_name(plugin_file)}" }
17
19
  load(plugin_file)
18
20
  end
19
21
  end
@@ -36,6 +38,11 @@ class YleTf
36
38
  Dir.glob(File.expand_path('../../yle_tf_plugins/**/plugin.rb', __dir__))
37
39
  end
38
40
 
41
+ def self.core_plugin_name(path)
42
+ m = %r{.*/yle_tf_plugins/(?<name>.+?)/plugin\.rb$}.match(path)
43
+ m ? m[:name] : path
44
+ end
45
+
39
46
  def self.bundler_plugins
40
47
  plugins = Bundler.definition.current_dependencies.select do |dep|
41
48
  dep.groups.include?(BUNDLER_PLUGIN_GROUP)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
 
3
5
  class YleTf
@@ -42,6 +44,7 @@ class YleTf
42
44
  registered.each do |plugin|
43
45
  backends.merge!(plugin.backends)
44
46
  end
47
+ backends.default = backends.delete(DEFAULT_BACKEND)
45
48
  end
46
49
  end
47
50
  end
data/lib/yle_tf/plugin.rb CHANGED
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class YleTf
2
4
  class Plugin
3
5
  autoload :ActionHook, 'yle_tf/plugin/action_hook'
4
6
  autoload :Loader, 'yle_tf/plugin/loader'
5
7
  autoload :Manager, 'yle_tf/plugin/manager'
6
8
 
9
+ DEFAULT_BACKEND = Object.new.freeze
7
10
  DEFAULT_COMMAND = Object.new.freeze
8
11
 
9
12
  def self.manager
@@ -30,7 +33,7 @@ class YleTf
30
33
  name = name.to_s if name.is_a?(Symbol)
31
34
  commands[name] = {
32
35
  synopsis: synopsis,
33
- proc: block
36
+ proc: block
34
37
  }
35
38
  end
36
39
 
@@ -49,7 +52,8 @@ class YleTf
49
52
  end
50
53
 
51
54
  def self.backend(type, &block)
52
- backends[type.to_sym] = block
55
+ type = type.to_s if type.is_a?(Symbol)
56
+ backends[type] = block
53
57
  end
54
58
  end
55
59
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/error'
2
4
  require 'yle_tf/logger'
3
5
  require 'yle_tf/system/output_logger'
@@ -22,6 +24,7 @@ class YleTf
22
24
  if !handler.respond_to?(:call)
23
25
  raise YleTf::Error, "Unknown input handler #{handler.inspect}"
24
26
  end
27
+
25
28
  handler
26
29
  end
27
30
  end
@@ -42,6 +45,7 @@ class YleTf
42
45
  if !handler.respond_to?(:call)
43
46
  raise YleTf::Error, "Unknown output handler #{handler.inspect}"
44
47
  end
48
+
45
49
  handler
46
50
  end
47
51
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
 
3
5
  class YleTf
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
  require 'yle_tf/system/output_logger'
3
5
 
data/lib/yle_tf/system.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'English'
2
4
  require 'open3'
3
5
  require 'shellwords'
@@ -14,7 +16,7 @@ class YleTf
14
16
  DEFAULT_ERROR_HANDLER = ->(_exit_code, error) { raise error }.freeze
15
17
 
16
18
  DEFAULT_IO_HANDLERS = {
17
- stdin: :dev_null,
19
+ stdin: :dev_null,
18
20
  stdout: :info,
19
21
  stderr: :error
20
22
  }.freeze
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
  require 'yle_tf/tf_hook'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
  require 'tmpdir'
3
5
 
@@ -14,8 +16,8 @@ class YleTf
14
16
  def self.from_config(config, tf_env)
15
17
  TfHook.new(
16
18
  description: config['description'],
17
- source: config['source'],
18
- vars: merge_vars(config['vars'], tf_env)
19
+ source: config['source'],
20
+ vars: merge_vars(config['vars'], tf_env)
19
21
  )
20
22
  end
21
23
 
@@ -23,7 +25,7 @@ class YleTf
23
25
  def self.from_file(path)
24
26
  TfHook.new(
25
27
  description: File.basename(path),
26
- path: path
28
+ path: path
27
29
  )
28
30
  end
29
31
 
@@ -43,10 +45,10 @@ class YleTf
43
45
  Logger.info("Running hook '#{description}'")
44
46
  YleTf::System.cmd(
45
47
  path,
46
- env: vars.merge(tf_vars),
48
+ env: vars.merge(tf_vars),
47
49
  progname: File.basename(path),
48
- stdout: System::TfHookOutputLogger.new(:info),
49
- stderr: System::TfHookOutputLogger.new(:error)
50
+ stdout: System::TfHookOutputLogger.new(:info),
51
+ stderr: System::TfHookOutputLogger.new(:error)
50
52
  )
51
53
  ensure
52
54
  delete_tmpdir
@@ -57,9 +59,9 @@ class YleTf
57
59
  raise Error, "Invalid or missing `source` for hook '#{description}'" if !m
58
60
 
59
61
  {
60
- uri: m[:uri],
62
+ uri: m[:uri],
61
63
  path: m[:path],
62
- ref: m[:ref] || 'master'
64
+ ref: m[:ref] || 'master'
63
65
  }
64
66
  end
65
67
 
@@ -83,7 +85,7 @@ class YleTf
83
85
  end
84
86
 
85
87
  def delete_tmpdir
86
- FileUtils.rm_r(@tmpdir) if @tmpdir && Dir.exist?(@tmpdir)
88
+ FileUtils.rm_rf(@tmpdir, secure: true) if @tmpdir && Dir.exist?(@tmpdir)
87
89
  @tmpdir = nil
88
90
  end
89
91
 
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class YleTf
2
4
  class VarsFile
3
- ENV_DIR = 'envs'.freeze
5
+ ENV_DIR = 'envs'
4
6
 
5
7
  # Returns the env specific tfvars file path if it exists
6
8
  def self.find_env_vars_file(config)
@@ -10,7 +12,7 @@ class YleTf
10
12
 
11
13
  # Returns all envs that have tfvars files
12
14
  def self.list_all_envs(config)
13
- Dir.glob("#{config.module_dir}/#{ENV_DIR}/*.tfvars").map do |path|
15
+ Dir.glob("#{config.module_dir}/#{ENV_DIR}/*.tfvars").sort.map do |path|
14
16
  File.basename(path, '.tfvars')
15
17
  end
16
18
  end
@@ -36,9 +38,20 @@ class YleTf
36
38
  File.open(path, 'a') do |file|
37
39
  file.puts # ensure we don't append to an existing line
38
40
  vars.each do |key, value|
39
- file.puts %(#{key} = "#{value}")
41
+ file.puts "#{key} = #{eval_value(value)}"
40
42
  end
41
43
  end
42
44
  end
45
+
46
+ def eval_value(value)
47
+ case value
48
+ when Hash
49
+ %({ #{value.map { |k, v| "#{k} = #{eval_value(v)}" }.join(', ')} })
50
+ when Array
51
+ %([ #{value.map { |item| eval_value(item) }.join(', ')} ])
52
+ else
53
+ %("#{value}")
54
+ end
55
+ end
43
56
  end
44
57
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class YleTf
2
- VERSION = '1.0.0'.freeze
4
+ VERSION = '1.1.0.rc1'
3
5
  end
@@ -1,13 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
 
3
5
  class YleTf
4
6
  # Helper class for comparing versions
5
7
  class VersionRequirement
6
- # Checks if the specified Terrform version is older than 0.9
7
- def self.pre_0_9?(terraform_version)
8
- new('< 0.9.0-beta').satisfied_by?(terraform_version)
9
- end
10
-
11
8
  attr_reader :requirement
12
9
 
13
10
  def initialize(requirement)
data/lib/yle_tf.rb CHANGED
@@ -1,7 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
  require 'yle_tf/version'
3
5
 
4
6
  class YleTf
7
+ TERRAFORM_VERSION_REQUIREMENT = '>= 0.9'
8
+
5
9
  autoload :Action, 'yle_tf/action'
6
10
  autoload :Error, 'yle_tf/error'
7
11
  autoload :Plugin, 'yle_tf/plugin'
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
4
+ require 'yle_tf/backend'
2
5
 
3
6
  module YleTfPlugins
4
7
  module Backends
5
- module S3
8
+ module Default
6
9
  class Plugin < YleTf::Plugin
7
10
  register
8
11
 
9
- backend('s3') do
10
- require_relative 'command'
11
- Command
12
+ backend(DEFAULT_BACKEND) do
13
+ YleTf::Backend
12
14
  end
13
15
  end
14
16
  end
@@ -1,25 +1,24 @@
1
- require_relative 'config'
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+ require 'yle_tf/backend'
5
+ require 'yle_tf/logger'
2
6
 
3
7
  module YleTfPlugins
4
8
  module Backends
5
9
  module File
6
- class Command
7
- def backend_config(config)
8
- local_path = Pathname.pwd.join('terraform.tfstate')
9
- tfstate_path = tfstate_path(config)
10
-
10
+ class Backend < YleTf::Backend
11
+ # Symlinks local "terraform.tfstate" to the specified path
12
+ def configure
11
13
  YleTf::Logger.info("Symlinking state to '#{tfstate_path}'")
14
+ local_path = Pathname.pwd.join('terraform.tfstate')
12
15
  local_path.make_symlink(tfstate_path)
13
- tfstate_path.write(tfstate_template, perm: 0o644) if !tfstate_path.exist?
14
16
 
15
- Config.new(
16
- 'file',
17
- 'file' => tfstate_path.to_s
18
- )
17
+ tfstate_path.write(tfstate_template, perm: 0o644) if !tfstate_path.exist?
19
18
  end
20
19
 
21
- def tfstate_path(config)
22
- config.module_dir.join(config.fetch('backend', 'file'))
20
+ def tfstate_path
21
+ @tfstate_path ||= config.module_dir.join(config.fetch('backend', 'file', 'path'))
23
22
  end
24
23
 
25
24
  def tfstate_template
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
2
4
 
3
5
  module YleTfPlugins
@@ -7,8 +9,8 @@ module YleTfPlugins
7
9
  register
8
10
 
9
11
  backend('file') do
10
- require_relative 'command'
11
- Command
12
+ require_relative 'backend'
13
+ Backend
12
14
  end
13
15
  end
14
16
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
  require 'yle_tf/system'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
2
4
 
3
5
  module YleTfPlugins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/logger'
2
4
 
3
5
  module YleTfPlugins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
2
4
 
3
5
  module YleTfPlugins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module YleTfPlugins
2
4
  module CommandShell
3
5
  class Command
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
2
4
 
3
5
  module YleTfPlugins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'optparse'
2
4
 
3
5
  require 'yle_tf/system'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
2
4
 
3
5
  module YleTfPlugins
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf/system'
2
4
  require 'yle_tf/version'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yle_tf'
2
4
 
3
5
  module YleTfPlugins
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yle_tf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yleisradio
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-09-10 00:00:00.000000000 Z
13
+ date: 2019-01-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -26,6 +26,20 @@ dependencies:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '1.13'
29
+ - !ruby/object:Gem::Dependency
30
+ name: guard-rspec
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '4.7'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '4.7'
29
43
  - !ruby/object:Gem::Dependency
30
44
  name: rake
31
45
  requirement: !ruby/object:Gem::Requirement
@@ -46,14 +60,28 @@ dependencies:
46
60
  requirements:
47
61
  - - "~>"
48
62
  - !ruby/object:Gem::Version
49
- version: '3.5'
63
+ version: '3.8'
50
64
  type: :development
51
65
  prerelease: false
52
66
  version_requirements: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - "~>"
55
69
  - !ruby/object:Gem::Version
56
- version: '3.5'
70
+ version: '3.8'
71
+ - !ruby/object:Gem::Dependency
72
+ name: serverspec
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '2.41'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '2.41'
57
85
  description: Tooling for Terraform to support environments, hooks, etc.
58
86
  email:
59
87
  - devops@yle.fi
@@ -78,14 +106,16 @@ files:
78
106
  - lib/yle_tf/action/verify_terraform_version.rb
79
107
  - lib/yle_tf/action/verify_tf_env.rb
80
108
  - lib/yle_tf/action/write_terraformrc_defaults.rb
81
- - lib/yle_tf/backend_config.rb
109
+ - lib/yle_tf/backend.rb
82
110
  - lib/yle_tf/cli.rb
83
111
  - lib/yle_tf/config.rb
84
112
  - lib/yle_tf/config/defaults.rb
85
113
  - lib/yle_tf/config/erb.rb
86
114
  - lib/yle_tf/config/file.rb
87
115
  - lib/yle_tf/config/loader.rb
116
+ - lib/yle_tf/config/migration.rb
88
117
  - lib/yle_tf/error.rb
118
+ - lib/yle_tf/helpers/hash.rb
89
119
  - lib/yle_tf/logger.rb
90
120
  - lib/yle_tf/logger/colorize.rb
91
121
  - lib/yle_tf/plugin.rb
@@ -101,13 +131,9 @@ files:
101
131
  - lib/yle_tf/vars_file.rb
102
132
  - lib/yle_tf/version.rb
103
133
  - lib/yle_tf/version_requirement.rb
104
- - lib/yle_tf_plugins/backends/file/command.rb
105
- - lib/yle_tf_plugins/backends/file/config.rb
134
+ - lib/yle_tf_plugins/backends/__default/plugin.rb
135
+ - lib/yle_tf_plugins/backends/file/backend.rb
106
136
  - lib/yle_tf_plugins/backends/file/plugin.rb
107
- - lib/yle_tf_plugins/backends/s3/command.rb
108
- - lib/yle_tf_plugins/backends/s3/plugin.rb
109
- - lib/yle_tf_plugins/backends/swift/command.rb
110
- - lib/yle_tf_plugins/backends/swift/plugin.rb
111
137
  - lib/yle_tf_plugins/commands/__default/command.rb
112
138
  - lib/yle_tf_plugins/commands/__default/plugin.rb
113
139
  - lib/yle_tf_plugins/commands/_config/command.rb
@@ -135,15 +161,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
161
  requirements:
136
162
  - - ">="
137
163
  - !ruby/object:Gem::Version
138
- version: '2.2'
164
+ version: '2.3'
139
165
  required_rubygems_version: !ruby/object:Gem::Requirement
140
166
  requirements:
141
- - - ">="
167
+ - - ">"
142
168
  - !ruby/object:Gem::Version
143
- version: '0'
169
+ version: 1.3.1
144
170
  requirements: []
145
- rubyforge_project:
146
- rubygems_version: 2.7.3
171
+ rubygems_version: 3.0.1
147
172
  signing_key:
148
173
  specification_version: 4
149
174
  summary: Tooling for Terraform