<%# GOV.UK Mini Environment Admin Copyright © 2018 Christopher Baines This file is part of the GOV.UK Mini Environment Admin. The GOV.UK Mini Environment Admin is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The GOV.UK Mini Environment Admin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with the GOV.UK Mini Environment Admin. If not, see . %> Back to Setup

Backend: <%= @backend.label %>

<% status = @backend.status %>
Current Status
updated at <%= status[:updated_at] %>
<% if status[:running] %> <% else %> <% end %>
View Terraform state information
<%= form_with( url: perform_action_terraform_aws_backend_path(@backend), local: true, method: "post" ) do %>
Actions
  • <%= submit_tag('Deploy', role: 'button', style: 'margin-bottom: 5px;', class: 'btn btn-lg btn-success btn-block') %>

    Run Terraform to deploy this backend, ensuring everything is setup to create new mini environments.

  • <%= submit_tag("Stop", role: 'button', style: 'margin-bottom: 5px;', class: 'btn btn-lg btn-warning btn-block') %>

    Run Terraform to stop this backend, terminating the build machine used to build new mini environments. Existing environments will continue to run, but new environments cannot be created.

  • <%= submit_tag("Destroy", role: 'button', style: 'margin-bottom: 5px;', class: 'btn btn-lg btn-danger btn-block') %>

    Run Terraform to destroy this backend, note that this will remove all cached data and disrupt all mini environments using this backend.

  • <%= submit_tag("Refresh state", role: 'button', style: 'margin-bottom: 5px;', class: 'btn btn-lg btn-info btn-block') %>

    Run Terraform to refresh the state information for this backend.

<% end %>
<%= render( partial: 'shared/jobs', locals: { jobs: Backends::TerraformAwsJob.jobs(@backend.id).order(id: :desc) } ) %>

Update details


<%= form_with(model: @backend, url: { action: "update" }, html: { class: "form-horizontal" }) do |f| %>
<%= f.label :label, class: 'col-sm-4 control-label' %>
<%= f.text_field( :label, class: 'form-control', placeholder: 'Label for this backend' ) %>
<%= f.label :domain, class: 'col-sm-4 control-label' %>
<%= f.text_field( :domain, class: 'form-control', placeholder: 'Domain within which to host mini environments', readonly: true ) %>

For example, if you entered example.com for the backend domain, and then created a mini environment called "Test" using this backend, then the application domain for the mini environment would be test.example.com.

A Route53 Hosted Zone will be created for this domain, and records added for the mini environments.

<%= f.label :aws_region, 'AWS Region', class: 'col-sm-4 control-label' %>
<%= f.text_field( :aws_region, class: 'form-control', placeholder: 'What region to use', readonly: true, ) %>
<%= f.label( :vpc_id, 'VPC ID', class: 'col-sm-4 control-label' ) %>
<%= f.text_field( :vpc_id, class: 'form-control', placeholder: 'The ID of the VPC (Virtual Private Cloud) to use', readonly: true ) %>

This VPC (Virtual Private Cloud) should be the one to use for all resources.

<%= f.label( :route_53_zone_id, 'Route 53 Zone ID', class: 'col-sm-4 control-label' ) %>
<%= f.text_field( :route_53_zone_id, class: 'form-control', placeholder: 'The ID of the Route 53 Zone to use', readonly: true ) %>

This zone should be authoritive for the domain this backend is using. Entries in this zone will be created for the mini environments.

<%= f.label :aws_access_key_id, 'AWS Access Key ID', class: 'col-sm-4 control-label' %>
<%= f.text_field( :aws_access_key_id, class: 'form-control', ) %>
<%= f.label :aws_secret_access_key, 'AWS Secret Access Key', class: 'col-sm-4 control-label' %>
<%= f.password_field( :aws_secret_access_key, class: 'form-control', placeholder: 'Secret key hidden', ) %> The AWS Secret Access Key is not accessible once entered.
<%= f.label( :ssh_public_key, 'SSH Key, public part', class: 'col-sm-4 control-label' ) %>
<%= f.text_area( :ssh_public_key, class: 'form-control', placeholder: 'The public part of the SSH key to use', readonly: true ) %>

<%= f.label( :ssh_private_key, 'SSH Key, private part', class: 'col-sm-4 control-label' ) %>
<%= text_area_tag( :ssh_private_key, 'Secret key hidden', class: 'form-control', disabled: true ) %>

<%= f.submit "Save", class: 'btn btn-lg btn-success' %>
<% end %>

Delete backend


<% unless @backend.mini_environments.empty? %>

Unable to delete backend, as mini environments using this backend still exist.

To delete this backend, first delete all the mini environments using it.

<% end %> <%= form_with(model: @backend, url: { action: "destroy" }, html: { class: "form-horizontal", method: :delete }) do |f| %> <%= f.submit( "Delete", class: ( 'btn btn-lg btn-danger' + (@backend.mini_environments.empty? ? '' : ' disabled') ) ) %> <% end %>

Mini environments

<% @backend.mini_environments.each do |mini_environment| %> <% end %>
Name
<%= mini_environment.name %> Show details