Deployment runbook#
Setup#
Check Airflow to make sure a data refresh isn’t occurring.
Visit the Ingestion Server Docker image page and copy the SHA of the image tagged
latest.Release the app via GitHub workflow. Click the “Run workflow” button, choose “ingestion_server” from the dropdown, and supply the SHA identified in the previous step.
Deployment#
After the app is built and tagged, deploy staging:
Checkout the infrastructure repository and bump the ingestion server version with the
just bump dev ingestion-servercommand.just apply dev ingestion-serverand verify the plan before deploying.
Deploy production:
Update the value of
data_refresh_clearedtotruein the production module declaration.just bump prod ingestion-servercommand.just apply prod ingestion-serverand verify the plan before deploying.Restore the value of
data_refresh_clearedback tofalse.
Post-deployment steps#
Check for any Sentry errors in the maintainer’s
#openverse-alertschannel, or in the Sentry UI.Review and Approve the automatically-generated changelog pull request in the repository.
Push up a PR to the infrastructure repository with the Terraform changes you pushed (the version bump for the relevant module). Be sure to restore the value of
data_refresh_clearedback tofalse.In the event of errors or problems, repeat the deployment process using the latest stable version of the application. You can find the release version number in the changelogs, and then the tag to pass to the action is the version number prefixed with “rel-”, for example “rel-2023.07.03.17.52.00”.
If anything else goes wrong or service is disrupted, consider this a Production Incident and notify the team.