diff options
Diffstat (limited to 'app/jobs/setup_job.rb')
-rw-r--r-- | app/jobs/setup_job.rb | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/app/jobs/setup_job.rb b/app/jobs/setup_job.rb index 6b4f9fe..6791dd6 100644 --- a/app/jobs/setup_job.rb +++ b/app/jobs/setup_job.rb @@ -1,24 +1,34 @@ require 'ruby_terraform' class SetupJob < TerraformJob + @retry_interval = 30 + def run_terraform puts "Setting up #{@mini_environment.name}" - RubyTerraform.init( - source: 'terraform/aws', - path: 'terraform/aws', - backend: true, - backend_config: { - address: 'http://localhost:3000' + Rails.application.routes.url_helpers.terraform_http_backend_path - } - ) + Dir.chdir('terraform/aws') do + RubyTerraform.init( + backend: true, + backend_config: { + address: 'http://localhost:3000' + Rails.application.routes.url_helpers.terraform_http_backend_path + } + ) + + RubyTerraform.apply( + directory: 'mini_environment', + vars: { + aws_region: 'eu-west-1', + slug: @mini_environment.name.parameterize, + ssh_public_key: ssh_public_key, + }, + auto_approve: true + ) + end + end - RubyTerraform.apply( - directory: 'terraform/aws', - vars: { - slug: @mini_environment.name.parameterize - }, - auto_approve: true - ) + def ssh_public_key + File.open("#{ENV['HOME']}/.ssh/id_rsa.pub") do |file| + file.readline() + end end end |