Retire an application
To remove an application from our infrastructure take the following steps. Note some of the repositories are private repos that not everyone has access to, you may need to ask your tech lead for access.
1. Archive database
This is only relevant if the application has a database. You can skip this when retiring frontends.
Grab a copy of the latest production backup of the database and put a copy in
/data/backups/archived directory on the
This will then be included in the sync to the offsite backup machines
2. Remove app from puppet
Configure Puppet to remove the app from all servers. Change the app resource,
and any database resources to
ensure => absent, remove any host and load-balancer entries, but leave the hieradata entries.
See this pull request for an example:
After this has been deployed, remove it entirely. For example:
3. Remove smoke tests
Remove any smokey tests specific to the application.
4. Remove deploy scripts
5. Update Release app
Mark the application as archived in the Release app.
Edit the application in the release app (you’ll need the
permission to do this), and check the
archived checkbox. This will
hide it from the UI.
6. Remove from deploy Jenkins
Remove entry from the deploy Jenkinses. This is managed through govuk-puppet in the
7. Update Signon
Mark the application as “retired” in signon, if it used it.
Click on the Applications tab. Find the application that is being retired and click the “edit” button. Tick the box that says “This application is being retired”, then save your changes.
8. Update development scripts
Remove from the development-vm directory
Leave a comment in the
Procfile indicating that the port used to be
used by this app, to avoid port conflicts causing a problem running
this app locally in the future.
9. Check replication script
Check the data replication scripts for anything specific to this application.
Some applications have special case details in https://github.com/alphagov/env-sync-and-backup/ (private repo). Any relating to the application should be removed.
10. Update DNS
Request any public DNS entries be removed. If the app had an admin UI, it will
have had public DNS entries in the
Follow the instructions for DNS changes in order to remove these, and ask the infrastructure team to approve any necessary Pull Requests.
11. Update docs
Mark the application as
retired in govuk-developer-docs.
12. Remove credentials
Remove any hieradata credential entries for the app in govuk-secrets (private repo).
13. Drop database
If Puppet hasn’t done it (eg for MongoDB databases), drop the database.
14. Remove jobs in CI
If tests were set up, go to CI and choose “Delete Repository” for your project.
15. Remove other references
Do a code search on GitHub to find any references to the application and update or remove them.
16. Unpublish routes
Some applications are responsible for publishing certain routes. If you’re retiring a publishing application, make sure you check if any of its content items need to be unpublished and do it via the Publishing API.
17. Remove from Sentry
Since the application has been retired, it shouldn’t be tracked in Sentry.
18. Move repo to attic
Move the repository to the attic. Go into the repository settings in Github, and change the owner to gds-attic. Once moved, delete any webhooks and services that exist for it.