aboutsummaryrefslogtreecommitdiff
path: root/app/jobs/start_job.rb
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2018-02-18 11:23:41 +0000
committerChristopher Baines <mail@cbaines.net>2018-03-29 07:41:09 +0100
commitbc1ffc5214ab3f563b60523d9c349fab7974e634 (patch)
tree1caa1ed8bf2fb96c4d340aeffd53cd50a8799980 /app/jobs/start_job.rb
parent700b8b0a112fa976b9850418a7f0c71d95b6dd79 (diff)
downloadgovuk-mini-environment-admin-bc1ffc5214ab3f563b60523d9c349fab7974e634.tar
govuk-mini-environment-admin-bc1ffc5214ab3f563b60523d9c349fab7974e634.tar.gz
Add some govuk-guix related jobs
And various other views and routes.
Diffstat (limited to 'app/jobs/start_job.rb')
-rw-r--r--app/jobs/start_job.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/jobs/start_job.rb b/app/jobs/start_job.rb
new file mode 100644
index 0000000..ec17732
--- /dev/null
+++ b/app/jobs/start_job.rb
@@ -0,0 +1,34 @@
+require 'ruby_terraform'
+
+class StartJob < TerraformJob
+ @retry_interval = 30
+
+ def run_terraform
+ logger.info "Setting up #{@mini_environment.name}"
+
+ 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(
+ vars: {
+ aws_region: 'eu-west-1',
+ slug: @mini_environment.name.parameterize,
+ ssh_public_key: ssh_public_key,
+ start_command: @mini_environment.start_command
+ },
+ auto_approve: true
+ )
+ end
+ end
+
+ def ssh_public_key
+ File.open("#{ENV['HOME']}/.ssh/id_rsa.pub") do |file|
+ file.readline()
+ end
+ end
+end