Vintner
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

CategoryPathPurpose
AWS vineinfra/templates/vine/aws/User infrastructure on AWS
GCP vineinfra/templates/vine/gcp/User infrastructure on GCP
Azure vineinfra/templates/vine/azure/User infrastructure on Azure
Tendrilinfra/templates/tendril/aws/Tendril (worker) infrastructure
ArgoCDinfra/templates/argocd/ArgoCD applications and 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-templates

Variable 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

On this page