Adding a nonsense entry as first or moving the definition to post_layers suddenly finds entry1.tfvars:
Terraspace::Layering.module_eval do
def pre_layers
[
"entry1",
"entry2"
"#{ENV['TS_ENV']}/#{ENV['INSTANCE']}",
]
end
Dump lists of to-be-considered layers to stdout:
def full_layering(tfvars_dir, remove_first: false)
# layers defined in Terraspace::Layering module
all = layers.map { |layer| layer.sub(/\/$/,'') } # strip trailing slash
all = all.inject([]) do |sum, layer|
sum += layer_levels(layer) unless layer.nil?
sum
end
all = all.reject { |layer| layer.ends_with?('-') }
all.map! do |layer|
layer = layer.blank? ? layer : "/#{layer}"
[
"#{tfvars_dir}#{layer}.tfvars",
"#{tfvars_dir}#{layer}.rb",
]
end.flatten!
puts "HERE Terraspace::Compiler::Strategy::Tfvar - all before remove_first #{all}"
all.shift if remove_first # IE: app/stacks/demo/tfvars.tfvars
puts "HERE Terraspace::Compiler::Strategy::Tfvar - all after #{all}"
all
end
Output:
TS_LAYERING_SHOW=true TS_LAYERING_SHOW_ALL=1 TS_ENV=dev INSTANCE=mga terraspace init demo
Building .terraspace-cache/eu-central-1/dev/stacks/demo
Created .terraspace-cache/eu-central-1/dev/stacks/demo/backend.tf
Created .terraspace-cache/eu-central-1/dev/stacks/demo/locals.tf
(..)
HERE Terraspace::Compiler::Strategy::Tfvar - all before remove_first [
"/path/config/terraform/tfvars/entry1.tfvars",
"/path/config/terraform/tfvars/entry1.rb",
"/path/config/terraform/tfvars/entry1/base.tfvars",
(..)
]
HERE Terraspace::Compiler::Strategy::Tfvar - all after [
"/path/config/terraform/tfvars/entry1.rb",
"/path/config/terraform/tfvars/entry1/base.tfvars",
"/path/config/terraform/tfvars/entry1/base.rb",
(..)
]
HERE Terraspace::Compiler::Strategy::Tfvar - all before remove_first [
"/path/app/stacks/demo/tfvars/entry1.tfvars",
"/path/app/stacks/demo/tfvars/entry1.rb",
(..)
]
HERE Terraspace::Compiler::Strategy::Tfvar - all after [
"/path/app/stacks/demo/tfvars/entry1.rb",
"/path/app/stacks/demo/tfvars/entry1/base.tfvars",
(..)
]
Layers for demo:
config/terraform/tfvars/entry1/base.tfvars
config/terraform/tfvars/entry1/dev.tfvars
config/terraform/tfvars/entry2.tfvars
config/terraform/tfvars/entry2/base.tfvars
config/terraform/tfvars/entry2/dev.tfvars
(..)
config/terraform/tfvars/eu-central-1/dev.tfvars
app/stacks/demo/tfvars/entry1/base.tfvars
app/stacks/demo/tfvars/entry1/dev.tfvars
app/stacks/demo/tfvars/entry2.tfvars
app/stacks/demo/tfvars/entry2/base.tfvars
app/stacks/demo/tfvars/entry2/dev.tfvars
app/stacks/demo/tfvars/dev/mga.tfvars (found)
app/stacks/demo/tfvars/dev/mga/base.tfvars
app/stacks/demo/tfvars/dev/mga/dev.tfvars
(..)
Unfortuntly I was looking for entry1.tfvars ( app/stacks/demo/tfvars/dev/mga.tfvars ) which broke after updating from terraspace 1.7 to 2.2.
Calling full_layering with "remove_first: true" breaks the first
pre_layers
definition if you are looking forentry1.tfvars
: https://github.com/boltops-tools/terraspace/blob/master/lib/terraspace/compiler/strategy/tfvar/layer.rb#L53Adding a nonsense entry as first or moving the definition to post_layers suddenly finds
entry1.tfvars
:Dump lists of to-be-considered layers to stdout:
Output:
Unfortuntly I was looking for
entry1.tfvars
(app/stacks/demo/tfvars/dev/mga.tfvars
) which broke after updating from terraspace 1.7 to 2.2.