class Cloudspin::Stack::Rake::StackTask
Attributes
configuration_files[R]
environment[R]
Public Class Methods
new( environment = nil, definition_location: nil, base_folder: '.', configuration_files: nil )
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 11 def initialize( environment = nil, definition_location: nil, base_folder: '.', configuration_files: nil ) @environment = environment @base_folder = base_folder set_configuration_files(configuration_files) @definition_location = definition_location define end
Public Instance Methods
default_configuration_files()
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 41 def default_configuration_files [ "#{@base_folder}/stack-instance-defaults.yaml", "#{@base_folder}/stack-instance-local.yaml" ] end
define()
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 56 def define desc "Create or update stack instance" task :up do puts terraform_runner.init_dry puts terraform_runner.up_dry instance.prepare puts terraform_runner.up instance.after end desc "Plan changes to stack instance" task :plan do puts terraform_runner.init_dry puts terraform_runner.plan_dry instance.prepare puts terraform_runner.plan instance.after end desc "Show command line to be run for stack instance" task :dry do puts terraform_runner.init_dry puts terraform_runner.up_dry end desc "Destroy stack instance" task :down do puts terraform_runner.init_dry puts terraform_runner.down_dry instance.prepare puts terraform_runner.down instance.after end task :refresh do instance.prepare puts terraform_runner.refresh end end
environment_config_file()
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 48 def environment_config_file "#{@base_folder}/environments/stack-instance-#{@environment}.yaml" end
full_path_of(supplied_path)
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 52 def full_path_of(supplied_path) Pathname.new(supplied_path).realdirpath.to_s end
instance()
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 97 def instance @instance ||= Cloudspin::Stack::Instance.from_folder( @configuration_files, definition_location: @definition_location, base_folder: @base_folder, base_working_folder: "#{@base_folder}/work" ) end
set_configuration_files(additional_configuration_files)
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 25 def set_configuration_files(additional_configuration_files) @configuration_files = (the_usual_configuration_files << additional_configuration_files).flatten.compact end
terraform_runner()
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 106 def terraform_runner @terraform_runner ||= Cloudspin::Stack::Terraform.new( working_folder: instance.working_folder, terraform_variables: instance.terraform_variables, terraform_init_arguments: instance.terraform_init_arguments, terraform_command_arguments: instance.terraform_command_arguments ) end
the_usual_configuration_files()
click to toggle source
# File lib/cloudspin/stack/rake/stack_task.rb, line 29 def the_usual_configuration_files file_list = default_configuration_files if @environment if File.exists? full_path_of(environment_config_file) file_list << environment_config_file else raise "Missing configuration file for environment #{@environment} (#{environment_config_file})" end end file_list end