terraspace 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/lib/templates/base/git_hook/hook.sh +5 -0
- data/lib/templates/base/project/.gitignore +0 -1
- data/lib/templates/base/shim/terraspace +7 -0
- data/lib/templates/hcl/project/config/terraform/backend.tf.tt +3 -3
- data/lib/templates/plugin/lib/templates/hcl/project/config/terraform/backend.tf.tt +2 -2
- data/lib/terraspace/app.rb +6 -0
- data/lib/terraspace/builder.rb +2 -46
- data/lib/terraspace/cli.rb +34 -18
- data/lib/terraspace/cli/build/placeholder.rb +40 -0
- data/lib/terraspace/cli/cloud.rb +24 -0
- data/lib/terraspace/cli/commander.rb +8 -1
- data/lib/terraspace/cli/init.rb +67 -0
- data/lib/terraspace/cli/list.rb +13 -0
- data/lib/terraspace/cli/new.rb +8 -0
- data/lib/terraspace/cli/new/git_hook.rb +33 -0
- data/lib/terraspace/cli/new/shim.rb +58 -0
- data/lib/terraspace/cli/summary.rb +9 -12
- data/lib/terraspace/compiler/backend.rb +9 -37
- data/lib/terraspace/compiler/backend/parser.rb +42 -0
- data/lib/terraspace/compiler/builder.rb +6 -2
- data/lib/terraspace/compiler/cleaner.rb +19 -2
- data/lib/terraspace/compiler/cleaner/backend_change.rb +1 -1
- data/lib/terraspace/compiler/dsl/syntax/mod.rb +1 -0
- data/lib/terraspace/compiler/dsl/syntax/mod/backend.rb +16 -3
- data/lib/terraspace/compiler/expander.rb +28 -1
- data/lib/terraspace/compiler/writer.rb +1 -1
- data/lib/terraspace/core.rb +7 -1
- data/lib/terraspace/mod.rb +37 -12
- data/lib/terraspace/mod/remote.rb +1 -1
- data/lib/terraspace/plugin/expander/interface.rb +48 -5
- data/lib/terraspace/plugin/infer_provider.rb +15 -0
- data/lib/terraspace/plugin/layer/interface.rb +5 -0
- data/lib/terraspace/seeder.rb +4 -4
- data/lib/terraspace/terraform/api.rb +53 -0
- data/lib/terraspace/terraform/api/client.rb +10 -0
- data/lib/terraspace/terraform/api/http.rb +106 -0
- data/lib/terraspace/terraform/api/var.rb +72 -0
- data/lib/terraspace/terraform/api/vars.rb +38 -0
- data/lib/terraspace/terraform/api/vars/base.rb +7 -0
- data/lib/terraspace/terraform/api/vars/json.rb +14 -0
- data/lib/terraspace/terraform/api/vars/rb.rb +21 -0
- data/lib/terraspace/terraform/args/custom.rb +1 -1
- data/lib/terraspace/terraform/args/default.rb +16 -2
- data/lib/terraspace/terraform/cloud.rb +25 -0
- data/lib/terraspace/terraform/cloud/workspace.rb +95 -0
- data/lib/terraspace/terraform/runner.rb +1 -1
- data/lib/terraspace/util/sh.rb +1 -1
- data/lib/terraspace/version.rb +1 -1
- data/spec/fixtures/{cache_build_dir → cache_dir}/variables.tf +0 -0
- data/spec/fixtures/projects/hcl/aws/config/backend.tf +1 -1
- data/spec/fixtures/projects/hcl/google/config/backend.tf +1 -1
- data/spec/terraspace/seeder_spec.rb +1 -1
- data/spec/terraspace/terraform/hooks/builder_spec.rb +1 -1
- data/terraspace.gemspec +3 -3
- metadata +37 -17
- data/lib/terraspace/cli/build.rb +0 -7
@@ -0,0 +1,38 @@
|
|
1
|
+
class Terraspace::Terraform::Api
|
2
|
+
class Vars
|
3
|
+
extend Memoist
|
4
|
+
include Client
|
5
|
+
|
6
|
+
def initialize(mod, workspace)
|
7
|
+
@mod, @workspace = mod, workspace
|
8
|
+
end
|
9
|
+
|
10
|
+
def run
|
11
|
+
return unless exist?
|
12
|
+
|
13
|
+
vars = vars_class.new(@mod, vars_path).vars
|
14
|
+
vars.each do |attrs|
|
15
|
+
Var.new(@workspace, attrs).sync
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Return value examples:
|
20
|
+
#
|
21
|
+
# Terraspace::Terraform::Api::Vars::Json
|
22
|
+
# Terraspace::Terraform::Api::Vars::Rb
|
23
|
+
#
|
24
|
+
def vars_class
|
25
|
+
ext = File.extname(vars_path).sub('.','')
|
26
|
+
"Terraspace::Terraform::Api::Vars::#{ext.camelize}".constantize
|
27
|
+
end
|
28
|
+
|
29
|
+
def exist?
|
30
|
+
!!vars_path
|
31
|
+
end
|
32
|
+
|
33
|
+
def vars_path
|
34
|
+
# .rb takes higher precedence
|
35
|
+
Dir.glob("#{Terraspace.root}/config/terraform/cloud/vars.{rb,json}").first
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Terraspace::Terraform::Api::Vars
|
2
|
+
class Json < Base
|
3
|
+
def vars
|
4
|
+
context = Terraspace::Compiler::Erb::Context.new(@mod)
|
5
|
+
result = RenderMePretty.result(@vars_path, context: context)
|
6
|
+
|
7
|
+
data = JSON.load(result)
|
8
|
+
items = data.select do |item|
|
9
|
+
item['data']['type'] == 'vars'
|
10
|
+
end
|
11
|
+
items.map { |i| i['data']['attributes'] }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Terraspace::Terraform::Api::Vars
|
2
|
+
class Rb < Base
|
3
|
+
include DslEvaluator
|
4
|
+
|
5
|
+
def initialize(*)
|
6
|
+
super
|
7
|
+
@vars = [] # holds results
|
8
|
+
end
|
9
|
+
|
10
|
+
def vars
|
11
|
+
evaluate_file(@vars_path)
|
12
|
+
@vars
|
13
|
+
end
|
14
|
+
|
15
|
+
def var(attrs={})
|
16
|
+
default = { category: "terraform" } # required field
|
17
|
+
var = default.deep_merge(attrs).deep_stringify_keys!
|
18
|
+
@vars << var
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
|
1
3
|
module Terraspace::Terraform::Args
|
2
4
|
class Default
|
3
5
|
def initialize(mod, name, options={})
|
@@ -40,7 +42,7 @@ module Terraspace::Terraform::Args
|
|
40
42
|
dest = src
|
41
43
|
else
|
42
44
|
src = "#{Dir.pwd}/#{plan}"
|
43
|
-
dest = "#{@mod.
|
45
|
+
dest = "#{@mod.cache_dir}/#{File.basename(src)}"
|
44
46
|
end
|
45
47
|
FileUtils.cp(src, dest)
|
46
48
|
args << " #{dest}"
|
@@ -58,9 +60,11 @@ module Terraspace::Terraform::Args
|
|
58
60
|
args << " -input=#{input}"
|
59
61
|
end
|
60
62
|
|
63
|
+
args << " -reconfigure" if @options[:reconfigure]
|
64
|
+
|
61
65
|
# must be at the end
|
62
66
|
if @quiet && !ENV['TS_INIT_LOUD']
|
63
|
-
out_path =
|
67
|
+
out_path = self.class.terraform_init_log
|
64
68
|
FileUtils.mkdir_p(File.dirname(out_path))
|
65
69
|
args << " > #{out_path}"
|
66
70
|
end
|
@@ -92,5 +96,15 @@ module Terraspace::Terraform::Args
|
|
92
96
|
def auto_approve_arg
|
93
97
|
@options[:yes] || @options[:auto] ? ["-auto-approve"] : []
|
94
98
|
end
|
99
|
+
|
100
|
+
class << self
|
101
|
+
# Use different tmp log file in case uses run terraspace up in 2 terminals at the same time
|
102
|
+
@@terraform_init_log = nil
|
103
|
+
def terraform_init_log
|
104
|
+
return @@terraform_init_log if @@terraform_init_log
|
105
|
+
basename = File.basename(Tempfile.new('terraform-init').path)
|
106
|
+
@@terraform_init_log = "#{Terraspace.tmp_root}/out/#{basename}.out"
|
107
|
+
end
|
108
|
+
end
|
95
109
|
end
|
96
110
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Terraspace::Terraform
|
2
|
+
class Cloud < Terraspace::CLI::Base
|
3
|
+
extend Memoist
|
4
|
+
|
5
|
+
def run
|
6
|
+
return unless workspaces?
|
7
|
+
api = Api.new(@mod, remote)
|
8
|
+
api.set_working_dir
|
9
|
+
api.set_env_vars
|
10
|
+
end
|
11
|
+
|
12
|
+
def workspaces?
|
13
|
+
remote && remote['workspaces']
|
14
|
+
end
|
15
|
+
|
16
|
+
def remote
|
17
|
+
backend["remote"]
|
18
|
+
end
|
19
|
+
|
20
|
+
def backend
|
21
|
+
Terraspace::Compiler::Backend::Parser.new(@mod).result
|
22
|
+
end
|
23
|
+
memoize :backend
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
class Terraspace::Terraform::Cloud
|
2
|
+
class Workspace < Terraspace::CLI::Base
|
3
|
+
extend Memoist
|
4
|
+
include Terraspace::Util::Logging
|
5
|
+
include Terraspace::Terraform::Api::Client
|
6
|
+
|
7
|
+
# List will not have @mod set.
|
8
|
+
def list
|
9
|
+
@mod = Terraspace::CLI::Build::Placeholder.new(@options).build
|
10
|
+
unless remote && remote['organization']
|
11
|
+
logger.info "ERROR: There was no organization found. Are you sure you configured backend.tf with it?".color(:red)
|
12
|
+
exit 1
|
13
|
+
end
|
14
|
+
|
15
|
+
org = remote['organization']
|
16
|
+
payload = http.get("/organizations/#{org}/workspaces") # list using api client directly
|
17
|
+
names = payload['data'].map { |i| i['attributes']['name'] }.sort
|
18
|
+
logger.info "Workspaces for #{org}:"
|
19
|
+
logger.info names.join("\n")
|
20
|
+
end
|
21
|
+
|
22
|
+
def setup
|
23
|
+
build
|
24
|
+
unless backend.dig('remote','workspaces') # in case called by terraspace down demo -y --destroy-workspace with a non-remote backend
|
25
|
+
logger.info "ERROR: Workspace not configured in backend.tf"
|
26
|
+
exit 1
|
27
|
+
end
|
28
|
+
init
|
29
|
+
end
|
30
|
+
|
31
|
+
def init
|
32
|
+
Terraspace::CLI::Init.new(@options.merge(calling_command: "cloud-setup")).run
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
build
|
37
|
+
return unless backend.dig('remote','workspaces') # in case called by terraspace down demo -y --destroy-workspace with a non-remote backend
|
38
|
+
api = Terraspace::Terraform::Api.new(@mod, remote)
|
39
|
+
workspace = api.workspace(exit_on_fail: false)
|
40
|
+
unless workspace
|
41
|
+
logger.info "Workspace #{workspace_name} not found for #{@mod.type}: #{@mod.name}"
|
42
|
+
exit 0
|
43
|
+
end
|
44
|
+
sure?
|
45
|
+
logger.info "Destroying workspace #{workspace_name}"
|
46
|
+
api.destroy_workspace
|
47
|
+
end
|
48
|
+
|
49
|
+
def build
|
50
|
+
Terraspace::Builder.new(@options).run
|
51
|
+
end
|
52
|
+
|
53
|
+
def workspace_name
|
54
|
+
remote['workspaces']['name']
|
55
|
+
end
|
56
|
+
|
57
|
+
def remote
|
58
|
+
backend["remote"]
|
59
|
+
end
|
60
|
+
|
61
|
+
def backend
|
62
|
+
Terraspace::Compiler::Backend::Parser.new(@mod).result
|
63
|
+
end
|
64
|
+
memoize :backend
|
65
|
+
|
66
|
+
def sure?
|
67
|
+
message = <<~EOL.chop + " " # chop to remove newline
|
68
|
+
You are about to delete the workspace: #{workspace_name}
|
69
|
+
All variables, settings, run history, and state history will be removed.
|
70
|
+
This cannot be undone.
|
71
|
+
|
72
|
+
This will NOT remove any infrastructure managed by this workspace.
|
73
|
+
If needed, destroy the infrastructure prior to deleting the workspace with:
|
74
|
+
|
75
|
+
terraspace down #{@mod.name}
|
76
|
+
|
77
|
+
This will delete the workspace: #{workspace_name}.
|
78
|
+
Are you sure? (y/N)
|
79
|
+
EOL
|
80
|
+
|
81
|
+
if @options[:yes]
|
82
|
+
sure = 'y'
|
83
|
+
else
|
84
|
+
print message
|
85
|
+
sure = $stdin.gets
|
86
|
+
end
|
87
|
+
|
88
|
+
unless sure =~ /^y/
|
89
|
+
puts "Whew! Exiting."
|
90
|
+
exit 0
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
@@ -28,7 +28,7 @@ module Terraspace::Terraform
|
|
28
28
|
@@current_dir_message_shown = false
|
29
29
|
def current_dir_message
|
30
30
|
return if @@current_dir_message_shown
|
31
|
-
logger.info "Current directory: #{Terraspace::Util.pretty_path(@mod.
|
31
|
+
logger.info "Current directory: #{Terraspace::Util.pretty_path(@mod.cache_dir)}"
|
32
32
|
@@current_dir_message_shown = true
|
33
33
|
end
|
34
34
|
|
data/lib/terraspace/util/sh.rb
CHANGED
@@ -9,7 +9,7 @@ module Terraspace::Util
|
|
9
9
|
logger.info "=> #{command}"
|
10
10
|
return if ENV['TS_TEST']
|
11
11
|
|
12
|
-
success = system(env, command, chdir: @mod.
|
12
|
+
success = system(env, command, chdir: @mod.cache_dir)
|
13
13
|
unless success
|
14
14
|
logger.info "Error running command: #{command}".color(:red)
|
15
15
|
exit $?.exitstatus if exit_on_fail
|
data/lib/terraspace/version.rb
CHANGED
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
terraform {
|
2
2
|
backend "s3" {
|
3
3
|
bucket = "terraspace-state"
|
4
|
-
key = "<%=
|
4
|
+
key = "<%= expansion(":REGION/:ENV/:BUILD_DIR/terraform.tfstate") %>" # variable notation expanded by terraspace IE: us-west-2/dev/modules/vm/terraform.tfstate
|
5
5
|
region = "<%= ENV["AWS_REGION"] %>"
|
6
6
|
encrypt = true
|
7
7
|
dynamodb_table = "terraform_locks"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
terraform {
|
2
2
|
backend "gcs" {
|
3
3
|
bucket = "terraspace-state"
|
4
|
-
prefix = "<%=
|
4
|
+
prefix = "<%= expansion(":REGION/:ENV/:BUILD_DIR") %>" # variable notation expanded by terraspace IE: us-central1/dev/modules/vm
|
5
5
|
}
|
6
6
|
}
|
@@ -2,7 +2,7 @@ describe Terraspace::Seeder do
|
|
2
2
|
let(:seeder) { described_class.new(mod) }
|
3
3
|
let(:mod) do
|
4
4
|
mod = double(:mod).as_null_object
|
5
|
-
allow(mod).to receive(:
|
5
|
+
allow(mod).to receive(:cache_dir).and_return("spec/fixtures/cache_dir")
|
6
6
|
mod
|
7
7
|
end
|
8
8
|
|
data/terraspace.gemspec
CHANGED
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency "zeitwerk"
|
31
31
|
|
32
32
|
# core baseline plugins
|
33
|
-
spec.add_dependency "terraspace_plugin_aws"
|
34
|
-
spec.add_dependency "terraspace_plugin_azurerm"
|
35
|
-
spec.add_dependency "terraspace_plugin_google"
|
33
|
+
spec.add_dependency "terraspace_plugin_aws", "~> 0.2.0"
|
34
|
+
spec.add_dependency "terraspace_plugin_azurerm", "~> 0.2.0"
|
35
|
+
spec.add_dependency "terraspace_plugin_google", "~> 0.2.0"
|
36
36
|
spec.add_dependency "rspec-terraspace"
|
37
37
|
|
38
38
|
spec.add_development_dependency "bundler"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraspace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -154,44 +154,44 @@ dependencies:
|
|
154
154
|
name: terraspace_plugin_aws
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - "
|
157
|
+
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 0.2.0
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - "
|
164
|
+
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: 0.2.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: terraspace_plugin_azurerm
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 0.2.0
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - "
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
180
|
+
version: 0.2.0
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: terraspace_plugin_google
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- - "
|
185
|
+
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
187
|
+
version: 0.2.0
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - "
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
194
|
+
version: 0.2.0
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: rspec-terraspace
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -329,10 +329,12 @@ files:
|
|
329
329
|
- README.md
|
330
330
|
- Rakefile
|
331
331
|
- exe/terraspace
|
332
|
+
- lib/templates/base/git_hook/hook.sh
|
332
333
|
- lib/templates/base/project/.gitignore
|
333
334
|
- lib/templates/base/project/Gemfile.tt
|
334
335
|
- lib/templates/base/project/Terrafile
|
335
336
|
- lib/templates/base/project/config/app.rb
|
337
|
+
- lib/templates/base/shim/terraspace
|
336
338
|
- lib/templates/hcl/module/main.tf
|
337
339
|
- lib/templates/hcl/module/outputs.tf
|
338
340
|
- lib/templates/hcl/module/variables.tf
|
@@ -401,10 +403,11 @@ files:
|
|
401
403
|
- lib/terraspace/bundle.rb
|
402
404
|
- lib/terraspace/cli.rb
|
403
405
|
- lib/terraspace/cli/base.rb
|
404
|
-
- lib/terraspace/cli/build.rb
|
406
|
+
- lib/terraspace/cli/build/placeholder.rb
|
405
407
|
- lib/terraspace/cli/bundle.rb
|
406
408
|
- lib/terraspace/cli/check_setup.rb
|
407
409
|
- lib/terraspace/cli/clean.rb
|
410
|
+
- lib/terraspace/cli/cloud.rb
|
408
411
|
- lib/terraspace/cli/commander.rb
|
409
412
|
- lib/terraspace/cli/help.rb
|
410
413
|
- lib/terraspace/cli/help/bundle.md
|
@@ -412,7 +415,10 @@ files:
|
|
412
415
|
- lib/terraspace/cli/help/completion_script.md
|
413
416
|
- lib/terraspace/cli/help/update.md
|
414
417
|
- lib/terraspace/cli/info.rb
|
418
|
+
- lib/terraspace/cli/init.rb
|
419
|
+
- lib/terraspace/cli/list.rb
|
415
420
|
- lib/terraspace/cli/new.rb
|
421
|
+
- lib/terraspace/cli/new/git_hook.rb
|
416
422
|
- lib/terraspace/cli/new/helper.rb
|
417
423
|
- lib/terraspace/cli/new/helper/plugin_gem.rb
|
418
424
|
- lib/terraspace/cli/new/module.rb
|
@@ -420,6 +426,7 @@ files:
|
|
420
426
|
- lib/terraspace/cli/new/plugin/helper.rb
|
421
427
|
- lib/terraspace/cli/new/project.rb
|
422
428
|
- lib/terraspace/cli/new/sequence.rb
|
429
|
+
- lib/terraspace/cli/new/shim.rb
|
423
430
|
- lib/terraspace/cli/new/source/core.rb
|
424
431
|
- lib/terraspace/cli/new/source/plugin.rb
|
425
432
|
- lib/terraspace/cli/new/source/test.rb
|
@@ -433,6 +440,7 @@ files:
|
|
433
440
|
- lib/terraspace/cli/test.rb
|
434
441
|
- lib/terraspace/command.rb
|
435
442
|
- lib/terraspace/compiler/backend.rb
|
443
|
+
- lib/terraspace/compiler/backend/parser.rb
|
436
444
|
- lib/terraspace/compiler/basename.rb
|
437
445
|
- lib/terraspace/compiler/builder.rb
|
438
446
|
- lib/terraspace/compiler/cleaner.rb
|
@@ -487,16 +495,28 @@ files:
|
|
487
495
|
- lib/terraspace/plugin/expander/generic.rb
|
488
496
|
- lib/terraspace/plugin/expander/interface.rb
|
489
497
|
- lib/terraspace/plugin/finder.rb
|
498
|
+
- lib/terraspace/plugin/infer_provider.rb
|
499
|
+
- lib/terraspace/plugin/layer/interface.rb
|
490
500
|
- lib/terraspace/plugin/meta.rb
|
491
501
|
- lib/terraspace/plugin/summary/interface.rb
|
492
502
|
- lib/terraspace/seeder.rb
|
493
503
|
- lib/terraspace/seeder/actions.rb
|
494
504
|
- lib/terraspace/seeder/content.rb
|
495
505
|
- lib/terraspace/seeder/where.rb
|
506
|
+
- lib/terraspace/terraform/api.rb
|
507
|
+
- lib/terraspace/terraform/api/client.rb
|
508
|
+
- lib/terraspace/terraform/api/http.rb
|
509
|
+
- lib/terraspace/terraform/api/var.rb
|
510
|
+
- lib/terraspace/terraform/api/vars.rb
|
511
|
+
- lib/terraspace/terraform/api/vars/base.rb
|
512
|
+
- lib/terraspace/terraform/api/vars/json.rb
|
513
|
+
- lib/terraspace/terraform/api/vars/rb.rb
|
496
514
|
- lib/terraspace/terraform/args/custom.rb
|
497
515
|
- lib/terraspace/terraform/args/default.rb
|
498
516
|
- lib/terraspace/terraform/args/dsl.rb
|
499
517
|
- lib/terraspace/terraform/args/shorthands.rb
|
518
|
+
- lib/terraspace/terraform/cloud.rb
|
519
|
+
- lib/terraspace/terraform/cloud/workspace.rb
|
500
520
|
- lib/terraspace/terraform/hooks/builder.rb
|
501
521
|
- lib/terraspace/terraform/hooks/dsl.rb
|
502
522
|
- lib/terraspace/terraform/runner.rb
|
@@ -509,7 +529,7 @@ files:
|
|
509
529
|
- lib/terraspace/util/sure.rb
|
510
530
|
- lib/terraspace/version.rb
|
511
531
|
- spec/cli_spec.rb
|
512
|
-
- spec/fixtures/
|
532
|
+
- spec/fixtures/cache_dir/variables.tf
|
513
533
|
- spec/fixtures/initialized/modules.json
|
514
534
|
- spec/fixtures/orphans/config/backend.rb
|
515
535
|
- spec/fixtures/orphans/config/provider.rb
|
@@ -638,7 +658,7 @@ specification_version: 4
|
|
638
658
|
summary: 'Terraspace: The Terraspace Framework'
|
639
659
|
test_files:
|
640
660
|
- spec/cli_spec.rb
|
641
|
-
- spec/fixtures/
|
661
|
+
- spec/fixtures/cache_dir/variables.tf
|
642
662
|
- spec/fixtures/initialized/modules.json
|
643
663
|
- spec/fixtures/orphans/config/backend.rb
|
644
664
|
- spec/fixtures/orphans/config/provider.rb
|