aboutsummaryrefslogtreecommitdiff
path: root/app/controllers
Commit message (Collapse)AuthorAge
* Add a new AWS backend using Amazon Machine ImagesChristopher Baines2019-05-30
| | | | | | | | | | | | | | | | | | | | | | | The existing AWS backend uses system containers backed on to the AWS hosted NFS service (EFS). This has some advantages, but also some disadvantages. Using the EFS service allows building a container on one instance, with the state being held on the EFS, and then launching a new instance to run the container. Using EFS also provides persistence, at least beyond individual EC2 instances. However, build performance when using EFS is poor compared with a local store without the overhead of the network latency. Additionally, the startup speed of the container running off EFS is slow compared to local storage. This backend doesn't use EFS, instead the Guix store sits on instance storage. Rather than using a system container for a Mini Environment, an Amazon Machine Image (AMI) is built instead. The fast local storage makes builds faster, and using EBS storage for the Mini Envirnoments as well as not having the overhead of starting Ubuntu, then starting the container also makes startup faster.
* Guard against deleting backends in the controllerChristopher Baines2019-05-30
|
* Add support for archiving mini environmentsChristopher Baines2019-01-06
|
* Support archiving govuk-guix revisionsChristopher Baines2019-01-06
|
* Start tracking which store paths are in useChristopher Baines2019-01-01
| | | | | This will enable garbage collection of the Guix store, without removing things that are still in use.
* Fix the Terraform HTTP backend in productionrelease_8Christopher Baines2018-07-03
| | | | | Skip the authenticate_user! before action for the Terraform controller methods, and refactor the code to improve readability.
* Add a really basic que_jobs index pagerelease_3Christopher Baines2018-07-01
|
* Fix the FetchRevisionJob to better handle remote hostsChristopher Baines2018-07-01
|
* Use basic authentication with the Terraform http backendrelease_1Christopher Baines2018-06-24
| | | | This prevents any unauthorised access to the Terraform state.
* Neaten up SSH handlingChristopher Baines2018-06-24
| | | | | Explicitly use the specified private key where possible. Also, use a struct for the user, address and private key.
* Switch to using the public AWS domain of the build machineChristopher Baines2018-06-23
| | | | | | Rather than the configured domain, as the corresponding SSH key shouldn't change for the AWS domain (whereas it does for the configured domain, if the machine changes).
* Support 'Stopping' the AWS backendChristopher Baines2018-06-23
| | | | Which means just destroying the build machine.
* Redesign the mini environment show pageChristopher Baines2018-06-23
| | | | With similar changes to the backend pages.
* Add a history view for terraform statesChristopher Baines2018-06-23
| | | | And link to this from the mini environment page.
* Change the backend perform action controllerChristopher Baines2018-06-23
| | | | | Redirect to the show page, rather than rendering it, to keep the URL more consistent.
* Support refreshing the state of backendsChristopher Baines2018-06-23
|
* Add support for managing Terraform AWS backends from the show pageChristopher Baines2018-06-23
|
* Support managing the libvirt backend from the show pageChristopher Baines2018-06-23
|
* Handle SSH keys via the databaseChristopher Baines2018-06-23
| | | | | This makes it more explicit, and works around Terraform being unpredictable when dealing with SSH agents.
* Add a Guix moduleChristopher Baines2018-06-23
| | | | Which contains an available_locally? function.
* Add initial support for fetching govuk-guix revisions on remote hostsChristopher Baines2018-06-23
| | | | | This begins to remote the restriction of having to have Guix installed locally.
* Reverse the jobs order on the mini environments show pageChristopher Baines2018-06-22
| | | | It's more useful to have the most recent jobs at the top.
* Replace the GovukGuix::BuildJobChristopher Baines2018-06-22
| | | | | With a service that performs the same function, and use the MiniEnvironmentJob instead.
* Redesign the mini environment show pageChristopher Baines2018-06-21
| | | | | | | | | | Start introducing some workflow, and simplifying the layout. Also improve the jobs partial, making it actually show when jobs are running. The next step is to run the build as a mini environment job, which should remove some unnecessary complexity.
* Update Que to 1.0.0 (beta 3)Christopher Baines2018-06-21
|
* Display Terraform statesChristopher Baines2018-06-19
| | | | | | | | Add an index route, and a route to access a historical Terraform state by index. This also makes the ordering explicit, and fixes an issue with wrapped parameters.
* Change how the EFS File System is handledChristopher Baines2018-06-03
| | | | | | | | | | For the AWS backend. Bring it in to the Terraform configuration for the backend, where previously only the id was known. Also, alter the provisioning so that it can handle an empty EFS file system. This reduces the amount of manual setup required for AWS.
* Rework the services method in the MiniEnvironmentControllerChristopher Baines2018-06-01
| | | | | | | Bring the transaction inside of the request.put? conditional, as it shouldn't have been outside to begin with. Also, store the data snapshot if one is selected.
* Change the signature of Backends.find_by_type_and_idChristopher Baines2018-06-01
| | | | | | | It now takes two arguments, and when used by the MiniEnvironmentsController, the split is performed there. This makes it easier to reuse elsewhere in the codebase.
* Enable editing the services when creating a mini environmentChristopher Baines2018-05-30
|
* Add extra fields to the Terraform AWS backendChristopher Baines2018-05-03
|
* Improve the support for LibvirtChristopher Baines2018-04-12
| | | | | | | | | Separate out the backend things, like the virtual network, from the mini environment. This makes it easier to have resources shared between mini environments. Also handle the deployment of this new backend related Terraform configuration.
* Generate random passphrases for Signon usersChristopher Baines2018-04-12
| | | | | Store the passphrase in the clear, as the intent here is to show it to the user.
* Improve the handling of jobsChristopher Baines2018-04-12
| | | | | Move the display in to a partial and improve. Handle the finished and enqueued jobs in a more consistent way.
* Change mini_environment_id to state_id on TerraformStateChristopher Baines2018-04-12
| | | | | To allow supporting tracking related TerraformStates for backends as well.
* Fix a couple of linting issuesChristopher Baines2018-04-12
|
* License under the AGPLv3+Christopher Baines2018-04-12
|
* Remove some redundant viewsChristopher Baines2018-04-03
| | | | And replace with a redirect and flash message.
* Remove unused methodChristopher Baines2018-04-03
| | | | This has been moved to the SetupController.
* Remove lots of unnecessary filesChristopher Baines2018-04-03
| | | | | Using the Rails generator seems to generate quite a lot of unnecessary files...
* Add domains to backends, and rework build jobsChristopher Baines2018-04-03
| | | | | | | 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.
* Add support for specifying Signon usersChristopher Baines2018-04-03
| | | | When creating mini environments.
* Remove redundant loggingChristopher Baines2018-04-03
|
* Fix Rubocop issuesChristopher Baines2018-04-03
|
* Improve AWS backend supportChristopher Baines2018-03-29
|
* Add backend controllers, models and viewsChristopher Baines2018-03-29
| | | | Also annotate existing models.
* Add some govuk-guix related jobsChristopher Baines2018-03-29
| | | | And various other views and routes.
* AWS related tweaksChristopher Baines2018-03-29
|
* Add form for creating a mini environmentChristopher Baines2018-03-29
|
* Add terraform backend and initial guix configurationChristopher Baines2018-03-29
|