Deployment Process ¶
Production deployment ¶
-
Start with an automatically-generated PR to update production to a new version reviewed and ready to merge
-
Verify that the Docker image for the new version have been published to GitHub at https://github.com/IndeVets/core/pkgs/container/core%2Findevets-core. Ideally, it has already been deployed to staging.
-
Check that all DaemonSets under the
kube-system
namespace report as running 5 podsIf they aren’t, check that the changes submitted in linode/linode-blockstorage-csi-driver#73 are manually applied to Linode’s
csi-linode-node
DaemonSet. Once that change becomes encoporated in Linode’s own releases this step can be removed. -
Verify latest restic backup is recent:
set -a # paste contents of `IV-Restic Bucket` BitWarden secret set +a restic snapshots
-
If the latest snapshot is more than 10 minutes old, manually trigger a run of the hourly Kubernetes CronJob inside the production namespace
-
Download the latest snapshot to your computer and verify that it is complete:
# replace hash value with latest snapshot ID from above restic dump de27e150 /indevets-core.sql.gz | gunzip > /tmp/indevets-core.sql
The
.sql
file should be 1.4gb+ and contain schema, data, sequences, indexes, grants, and finally materialized views. Scan through the contents until you see data, and then jump to the bottom and make sure it ends with materialized views to ensure no dump error has cut it short. -
Merge the PR to bump the production version
- Wait for the k8s deployment PR to be ready and then review bot the
kubectl diff
changes shown in the PR description and the files changed shown by the GitHub PR to ensure no unexpected additional changes are going out - Announce to
@here
in#indevets-team
on Slack that a deployment is beginning - Merge the deployment PR
- Monitor production pods until they are fully back online
- Verify that you can log into production and see the new version number under the user menu
- Announce to
@channel
in#indevets-team
that the production is complete and ready for verification