|
53 | 53 | - [Smoke-testing the App](#-smoke-testing-the-app) |
54 | 54 | - [Simulated bulk send testing](#-simulated-bulk-send-testing) |
55 | 55 | - [Configuration Management](#-configuration-management) |
56 | | - - [DNS Changes](#-dns-changes) |
| 56 | + - [DNS and Domain Changes](#-dns-and-domain-changes) |
57 | 57 | - [Exporting test results for compliance monitoring](#exporting-test-results-for-compliance-monitoring) |
58 | 58 | - [Known Gotchas](#-known-gotchas) |
59 | 59 | - [User Account Management](#-user-account-management) |
@@ -1068,7 +1068,7 @@ that the security of the system is maintained. |
1068 | 1068 | 1. [Smoke-testing the App](#smoke-testing) |
1069 | 1069 | 1. [Simulated bulk send testing](#simulated-bulk-send-testing) |
1070 | 1070 | 1. [Configuration Management](#cm) |
1071 | | -1. [DNS Changes](#dns) |
| 1071 | +1. [DNS and Domain Changes](#dns) |
1072 | 1072 | 1. [Known Gotchas](#gotcha) |
1073 | 1073 | 1. [User Account Management](#ac) |
1074 | 1074 | 1. [SMS Phone Number Management](#phone-numbers) |
@@ -1239,15 +1239,41 @@ US_Notify Administrators are responsible for ensuring that remediations for vuln |
1239 | 1239 | - Low - 180 days |
1240 | 1240 | - Informational - 365 days (depending on the analysis of the issue) |
1241 | 1241 |
|
1242 | | -## <a name="dns"></a> DNS Changes |
| 1242 | +## <a name="dns"></a> DNS and Domain Changes |
1243 | 1243 |
|
1244 | | -Notify.gov DNS records are maintained within [the 18f/dns repository](https://github.com/18F/dns/blob/main/terraform/notify.gov.tf). To create new DNS records for notify.gov or any subdomains: |
| 1244 | +Notify.gov DNS records are maintained within [the GSA-TTS/dns repository](https://github.com/GSA-TTS/dns/blob/main/terraform/notify.gov.tf), and the domains and routes are managed directly in our Cloud.gov production space. |
1245 | 1245 |
|
1246 | | -1. Update the `notify.gov.tf` terraform to update oƒr create the new records within Route53 and push the branch to the 18f/dns repository. |
1247 | | -1. Open a PR. |
1248 | | -1. Verify that the plan output within circleci creates the records that you expect. |
1249 | | -1. Request a PR review from the 18F/tts-tech-portfolio team |
1250 | | -1. Once the PR is approved and merged, verify that the apply step happened correctly within [CircleCI](https://app.circleci.com/pipelines/github/18F/dns) |
| 1246 | +**Step 1: Make changes to the DNS records** |
| 1247 | + |
| 1248 | +1. If you haven't already, clone a local copy of [the GSA-TTS/dns repository](https://github.com/GSA-TTS/dns). |
| 1249 | +1. Create a new branch and update the [`notify.gov.tf`]((https://github.com/GSA-TTS/dns/blob/main/terraform/notify.gov.tf)) Terraform file to update, create, or remove DNS records within AWS Route 53. |
| 1250 | +1. Open a PR in the repository and verify that the plan output within CircleCI makes the changes that you expect. |
| 1251 | +1. Request a PR review from the `@tts-tech-operations` team within the GSA-TTS GitHub org. |
| 1252 | +1. Once the PR is approved and merged, verify that the apply step happened correctly within [CircleCI](https://app.circleci.com/pipelines/github/GSA-TTS/dns). |
| 1253 | +
|
| 1254 | +**Step 2: Make changes to the domains and routes in Cloud.gov** |
| 1255 | +
|
| 1256 | +The domains and routes are managed via the [external domain service](https://www.cloud.gov/docs/services/external-domain-service/) within Cloud.gov. |
| 1257 | +
|
| 1258 | +If you're creating new domains: |
| 1259 | + |
| 1260 | +1. Sign in to the `cf` CLI in your terminal and target the `notify-production` space. |
| 1261 | +1. Create the new domain(s) with [`cf create-private-domain`](https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#private-domains). |
| 1262 | +1. Map the routes needed to the new domain(s) with [`cf map-route`](https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#map-route). |
| 1263 | +1. Update the service to account for the new domain(s): `cf update-service notify-admin-domain-production -c '{"domains": "example.gov,www.example.gov,..."}'` (make sure to list *all* domains that need to be accounted for, including any existing ones that you want to keep!). |
| 1264 | + |
| 1265 | +If you're removing existing domains: |
| 1266 | +
|
| 1267 | +1. Sign in to the `cf` CLI in your terminal and target the `notify-production` space. |
| 1268 | +1. Unmap the routes to the existing domain(s) with [`cf unmap-route`](https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#unmap-route). |
| 1269 | +1. Delete the existing domain(s) with [`cf delete-private-domain`](https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#private-domains). |
| 1270 | +1. Update the service to account for the deleted domain(s): `cf update-service notify-admin-domain-production -c '{"domains": "example.gov,www.example.gov,..."}'` (make sure to list *all* domains that need to be accounted for, including any existing ones that you want to keep!). |
| 1271 | +
|
| 1272 | +**Step 3: Redeploy or restage the Admin app:** |
| 1273 | +
|
| 1274 | +Restage or redeploy the `notify-admin-production` app. To restage, you can trigger the action in GitHub or run the command directly: `cf restage notify-admin-production --strategy rolling`. |
| 1275 | +
|
| 1276 | +Test that the changes took effect properly by going to the domain(s) that were adjusted and seeing if they resolve correctly and/or no longer resolve as expected. Note that this may take up to 72 hours, depending on how long it takes for the DNS changes to propogate. |
1251 | 1277 |
|
1252 | 1278 | ## Exporting test results for compliance monitoring |
1253 | 1279 |
|
@@ -1507,3 +1533,19 @@ Note: better to search on space 'notify-production' rather than specifically for |
1507 | 1533 | #notify-admin-1505 (general login issues) |
1508 | 1534 | #notify-admin-1701 (wrong sender phone number) |
1509 | 1535 | #notify-admin-1859 (job is created with created_at being the wrong time) |
| 1536 | +
|
| 1537 | +### refreshing the login.gov certificate |
| 1538 | +
|
| 1539 | +1. generate certificate: `openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.crt -nodes` |
| 1540 | +2. update the github secrets for staging, demo, production (contents of key.pem go in LOGIN_PEM and contents of cert.crt in LOGIN_PUB). |
| 1541 | +DO NOT RESTAGE YET. |
| 1542 | +3. use the same certificate for staging, demo, and production |
| 1543 | +4. login to the login.gov partner app (https://portal.int.identitysandbox.gov) |
| 1544 | +5. add the new certificate to the production version of Notify in the partner app (our partner app account has sandbox and production) |
| 1545 | +6. Make a Zendesk support request for login.gov to push the new version of Notify (https://zendesk.login.gov) |
| 1546 | +7. Do not delete the old certificate, because you need things to keep working until you complete the transition. |
| 1547 | +8. When you receive an email from login.gov that the app has been pushed successfully, restage notify on the staging tier |
| 1548 | +9. If staging works, you can restage demo and production |
| 1549 | +10. Delete the old certificate in the partner app, send another zendesk request to push again. This is best practice but a lower |
| 1550 | +priority, because certificates eventually expire anyway and we have changed the certificate in github secrets, so the old cert is |
| 1551 | +no longer relevant. |
0 commit comments