Class: RakeCloudspin::Tasks::DeploymentStatebucketTask

Inherits:
RakeCloudspin::TaskLib show all
Defined in:
lib/rake_cloudspin/tasks/deployment_statebucket_task.rb

Instance Method Summary collapse

Methods inherited from RakeCloudspin::TaskLib

#check_required, check_required_for, #initialize, parameter, parameter_definitions, #process_arguments, #process_block, #setup_defaults, setup_defaults_for

Constructor Details

This class inherits a constructor from RakeCloudspin::TaskLib

Instance Method Details

#config(args) ⇒ Object



71
72
73
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 71

def config(args)
  configuration.for_overrides(args)
end

#defineObject



8
9
10
11
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 8

def define
  define_terraform_tasks
  define_vars_task
end

#define_terraform_tasksObject



13
14
15
16
17
18
19
20
21
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 13

def define_terraform_tasks
  RakeTerraform.define_command_tasks do |t|
    t.configuration_name = "deployment-statebucket"
    t.source_directory = source_directory
    t.work_directory = 'work'
    t.vars = terraform_vars_builder
    t.state_file = local_state_path_builder
  end
end

#define_vars_taskObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 27

def define_vars_task
  desc "Show terraform variables for deployment statebucket'"
  task :vars do |t, args|
    puts "Terraform variables for statebucket"
    puts "---------------------------------------"
    puts "#{terraform_vars_builder.call(args).to_yaml}"
    puts "---------------------------------------"
    puts "Local statefile path:"
    puts "---------------------------------------"
    puts "#{local_state_path_builder.call(args)}"
    puts "---------------------------------------"
  end
end

#local_state_path_builderObject



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 59

def local_state_path_builder
  lambda do |args|
    Paths.from_project_root_directory(
        'state',
        config(args).deployment_identifier || 'delivery',
        config(args).component,
        'deployment',
        "statebucket.tfstate"
    )
  end
end

#source_directoryObject



23
24
25
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 23

def source_directory
  File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'statebucket', 'infra'))
end

#terraform_vars_builderObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/rake_cloudspin/tasks/deployment_statebucket_task.rb', line 41

def terraform_vars_builder
  lambda do |args|
    {
      'region' => configuration.region,
      'state_bucket_name' => Statebucket.build_bucket_name(
          estate: config(args).estate, 
          deployment_identifier: config(args).deployment_identifier,
          component: config(args).component
      ),
      'component' => config(args).component,
      'estate' => config(args).estate,
      'deployment_identifier' => config(args).deployment_identifier,
      'aws_profile' => config(args).aws_profile,
      'assume_role_arn' => config(args).statebucket_role_arn
    }
  end
end