The deployment steps rely on several null_resource Terraform local-execs to perform tasks such as Docker image builds, Firestore index configuration, and some DNS record changes.
On first-time configuration, some of these external dependencies (e.g. Python, gcloud sdk) might not be apparent; if a deployment doesn't complete all the way as a result, then the environment is left in a partially configured state which might be difficult to resolve.
Proposed updates:
- Replace
local-exec resources with their Terraform equivalent where possible (Cloud DNS configuration, Cloud Build/Cloud Run configs)
- Decouple application configuration and container builds from the infrastructure resources to improve idempotence
- Modularize/allow optional configuration that might be managed elsewhere, such as Cloud DNS configuration
The deployment steps rely on several
null_resourceTerraform local-execs to perform tasks such as Docker image builds, Firestore index configuration, and some DNS record changes.On first-time configuration, some of these external dependencies (e.g. Python, gcloud sdk) might not be apparent; if a deployment doesn't complete all the way as a result, then the environment is left in a partially configured state which might be difficult to resolve.
Proposed updates:
local-execresources with their Terraform equivalent where possible (Cloud DNS configuration, Cloud Build/Cloud Run configs)