Infrastructure Templates
Infrastructure Templates Overview
Terraform modules that Tendril uses to provision infrastructure across AWS, GCP, and Azure.
Infrastructure Templates
Tendril provisions infrastructure using pre-built Terraform modules. These templates are embedded in the Docker image during the release build and cover all supported resource types across three providers.
Template Categories
| Category | Path | Purpose |
|---|---|---|
| AWS vine | infra/templates/vine/aws/ | User infrastructure on AWS |
| GCP vine | infra/templates/vine/gcp/ | User infrastructure on GCP |
| Azure vine | infra/templates/vine/azure/ | User infrastructure on Azure |
| Tendril | infra/templates/tendril/aws/ | Tendril (worker) infrastructure |
| ArgoCD | infra/templates/argocd/ | ArgoCD applications and components |
AWS Resources
EKS, Aurora, ElastiCache, DynamoDB, and more
GCP Resources
GKE, Cloud SQL, Memorystore, Firestore, and more
Azure Resources
AKS, Azure Database, Azure Cache, Cosmos DB, and more
ArgoCD Components
Pre-installed cluster components
Template Staging (Docker Build)
During the Tendril release pipeline, templates are copied into the Docker build context:
infra/templates/vine/aws → apps/tendril/vine-templates/aws
infra/templates/vine/gcp → apps/tendril/vine-templates/gcp
infra/templates/vine/azure → apps/tendril/vine-templates/azure
infra/templates/tendril → apps/tendril/tendril-templates
infra/templates/argocd → apps/tendril/argocd-templatesVariable Generation
When executing a job, Tendril generates terraform.tfvars from the vine's config snapshot. The provisioner in packages/grape-core/provisioner/ maps each vine component to specific Terraform variables. See Cloud Provider Abstraction for the mapping layer.
Terraform State
State for all templates is stored in Supabase S3 with path structure:
{vineyard}/{project}/{stage}/{region}/terraform.tfstate