class TerraformDevKit::TerraformConfigManager
Public Class Methods
register_extra_vars_proc(p)
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 7 def self.register_extra_vars_proc(p) @extra_vars_proc = p end
setup(env, project)
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 11 def self.setup(env, project) fix_configuration(env) create_environment_directory(env) copy_files(env) TemplateRenderer .new(env, project, @extra_vars_proc) .render_files end
update_modules?()
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 20 def self.update_modules? var = ENV.fetch('TF_DEVKIT_UPDATE_MODULES', 'false') var.strip.casecmp('true').zero? end
Private Class Methods
copy_files(env)
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 46 def self.copy_files(env) ExtendedFileUtils.copy(Configuration.get('copy-files'), env.working_dir) end
create_environment_directory(env)
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 41 def self.create_environment_directory(env) FileUtils.makedirs(env.working_dir) end
fix_configuration(env)
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 26 def self.fix_configuration(env) !Configuration.get('aws').nil? || (raise 'No AWS section in the config file') if Environment.running_on_jenkins? Configuration.get('aws').delete('profile') elsif Configuration.get('aws').key?('profile') unless env.local_backend? raise "AWS credentials for environment #{env.name} must not be stored!" end else profile = request_profile(env) Configuration.get('aws')['profile'] = profile end end
request_profile(env)
click to toggle source
# File lib/TerraformDevKit/terraform_config_manager.rb, line 51 def self.request_profile(env) puts "Environment #{env.name} requires manual input of AWS credentials" print 'Enter the profile to use: ' profile = $stdin.gets.tr("\r\n", '') /^\w+$/ =~ profile || (raise 'Invalid profile name') profile end