aboutsummaryrefslogtreecommitdiff
path: root/app/models/backends/terraform_aws.rb
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2018-03-27 23:04:41 +0100
committerChristopher Baines <mail@cbaines.net>2018-04-03 21:58:55 +0100
commit94f9e2a768327479c8b2da99cd57ac717cf1589a (patch)
tree819c093f8fb7c37c6017ede36db4f01854a8bcc8 /app/models/backends/terraform_aws.rb
parentfa06e98228d8dd80a46622c9f393bb90e680d254 (diff)
downloadgovuk-mini-environment-admin-94f9e2a768327479c8b2da99cd57ac717cf1589a.tar
govuk-mini-environment-admin-94f9e2a768327479c8b2da99cd57ac717cf1589a.tar.gz
Add domains to backends, and rework build jobs
Add a domain to the libvirt and AWS Terraform backends. Along the way, improve the backend controllers and views, and rework the build jobs, simplifying them in to a single new class GovukGuix::BuildJob, which uses configuration from the respective backend.
Diffstat (limited to 'app/models/backends/terraform_aws.rb')
-rw-r--r--app/models/backends/terraform_aws.rb22
1 files changed, 17 insertions, 5 deletions
diff --git a/app/models/backends/terraform_aws.rb b/app/models/backends/terraform_aws.rb
index 6741204..bc131ef 100644
--- a/app/models/backends/terraform_aws.rb
+++ b/app/models/backends/terraform_aws.rb
@@ -9,6 +9,7 @@
# aws_secret_access_key :string
# created_at :datetime not null
# updated_at :datetime not null
+# domain :string
#
require 'ruby_terraform'
@@ -29,8 +30,15 @@ class Backends::TerraformAws < ApplicationRecord
end
def build(mini_environment)
- GovukGuix::GenerateStartCommandJob.enqueue(
- mini_environment.id
+ slug = mini_environment.name.parameterize
+
+ GovukGuix::BuildJob.enqueue(
+ mini_environment.id,
+ %w(whitehall government-frontend),
+ type: 'container-start-script',
+ app_domain: "#{slug}.#{domain}",
+ web_domain: "www.#{slug}.#{domain}",
+ use_https: 'certbot'
)
end
@@ -54,13 +62,17 @@ class Backends::TerraformAws < ApplicationRecord
end
end
+ def signon_url(mini_environment)
+ "https://signon.#{mini_environment.name.parameterize}.#{domain}"
+ end
+
def terraform_variables(mini_environment)
- mini_environment.backend_data.merge(
+ {
aws_region: aws_region,
slug: mini_environment.name.parameterize,
ssh_public_key: ssh_public_key,
- start_command: mini_environment.start_command
- )
+ start_command: mini_environment.backend_data['build_output']
+ }
end
def ssh_public_key