Purpose
This checklist verifies the prerequisites and postconditions of a Terraform Core or provider upgrade. Run through every item before, during, and after the upgrade.
Checklist
Pre-upgrade
- The release notes are read for the new version. (critical)
- The breaking changes are identified. (critical)
- The upgrade is tested in a development environment. (critical)
- The plan in the test environment is empty or as expected. (critical)
- The apply in the test environment succeeds. (critical)
Configuration update
- The required_version is updated in the configuration. (warn)
- The required_providers is updated in the configuration. (warn)
- The lockfile is updated via
terraform init -upgrade. (critical) - The lockfile is committed to Git. (warn)
Production upgrade
- The production apply is performed in a maintenance window. (critical)
- The plan in production is verified before the apply. (critical)
- The apply in production is monitored for anomalies. (critical)
Verification
The checklist is complete when every item is checked. A
critical item unchecked is a blocker.
Escalation
If a critical item cannot be satisfied, escalate to the engineering manager.