Complete Variable Reference

June 10, 2026 · View on GitHub

This document provides comprehensive documentation for all variables available in the Quilt Terraform modules.

Core Module Variables (modules/quilt)

Required Variables

VariableTypeDescriptionValidation
namestringName for VPC, DB, CloudFormation stack, and resource prefix≤20 chars, lowercase alphanumeric + hyphens
template_filestringPath to local CloudFormation template file (pass null only with terraform destroy)Required for plan/apply; pass null with terraform destroy
parametersmap(any)CloudFormation stack parametersSee CloudFormation Parameters
internalboolCreate internal ALB (true) or internet-facing ALB (false)-

VPC Configuration Variables

VariableTypeDefaultDescription
create_new_vpcboolfalseCreate new VPC or use existing
cidrstring"10.0.0.0/16"VPC CIDR block (≥/24 for 256+ addresses)
vpc_idstringnullExisting VPC ID (required if create_new_vpc = false)
intra_subnetslist(string)nullIsolated subnet IDs (exactly 2 required for existing VPC)
private_subnetslist(string)nullPrivate subnet IDs (exactly 2 required for existing VPC)
public_subnetslist(string)nullPublic subnet IDs (exactly 2 required for internet-facing ALB)
user_subnetslist(string)nullALB subnet IDs (exactly 2 required for internal ALB with existing VPC)
user_security_groupstringnullSecurity group ID for ALB access (required for existing VPC)
api_endpointstringnullVPC endpoint ID for API Gateway (required for internal ALB with existing VPC)
enable_transit_gatewayboolfalseRoute private-subnet egress through a Transit Gateway instead of NAT gateways (create_new_vpc = true only). Disables NAT + the IPv6 egress-only IGW; requires transit_gateway_id. See Transit Gateway egress.
transit_gateway_idstringnullTransit Gateway to attach to (required when enable_transit_gateway = true). May be a value known only after apply (e.g. a TGW created in the same configuration).
transit_gateway_ipv6_egressboolfalseAlso route IPv6 (::/0) egress through the TGW. Leave off unless the TGW carries IPv6 egress, otherwise IPv6 traffic would be black-holed.

Database Configuration Variables

VariableTypeDefaultDescriptionValid Values
db_instance_classstring"db.t3.small"RDS instance classdb.t3.micro, db.t3.small, db.t3.medium, db.t3.large, db.r5.*
db_multi_azbooltrueEnable Multi-AZ deployment for high availabilitytrue, false
db_network_typestring"DUAL"Database network type"IPV4", "DUAL"
db_deletion_protectionbooltruePrevent accidental database deletiontrue, false
db_snapshot_identifierstringnullSnapshot ID to restore database fromValid RDS snapshot identifier

ElasticSearch Configuration Variables

VariableTypeDefaultDescriptionConstraints
search_instance_countnumber2Number of data nodes≥1
search_instance_typestring"m6g.xlarge.elasticsearch"Instance type for data nodesValid ES instance types
search_dedicated_master_enabledbooltrueEnable dedicated master nodes-
search_dedicated_master_countnumber3Number of master nodes3 or 5 (odd numbers)
search_dedicated_master_typestring"m6g.large.elasticsearch"Instance type for master nodesValid ES instance types
search_zone_awareness_enabledbooltrueEnable Multi-AZ deployment-
search_volume_sizenumber1024EBS volume size per data node (GiB)≥10
search_volume_typestring"gp2"EBS volume type"gp2", "gp3", "io1"
search_volume_iopsnumbernullEBS IOPS (required for gp3)≥3000 if specified
search_volume_throughputnumbernullEBS throughput (MiB/s, for some gp3 volumes)125-1000
search_auto_tune_desired_statestring"DISABLED"ElasticSearch Auto-Tune state"ENABLED", "DISABLED"

CloudFormation Stack Variables

VariableTypeDefaultDescription
stack_notification_arnslist(string)nullSNS topic ARNs for CloudFormation notifications
create_timeoutstring"30m"CloudFormation stack creation timeout
update_timeoutstring"1h"CloudFormation stack update timeout
delete_timeoutstring"1h30m"CloudFormation stack deletion timeout
on_failurestring"ROLLBACK"CloudFormation failure action

CloudFormation Parameters

The parameters map configures the Quilt application. Here are all available parameters:

Required Parameters

ParameterDescriptionExample
AdminEmailAdministrator email address"admin@company.com"
CertificateArnELBSSL certificate ARN for HTTPS"arn:aws:acm:YOUR-AWS-REGION:YOUR-ACCOUNT-ID:certificate/YOUR-CERT-ID"
QuiltWebHostDomain name for Quilt catalog"quilt.company.com"

Authentication Parameters

ParameterDescriptionValuesDefault
PasswordAuthEnable username/password authentication"Enabled", "Disabled""Enabled"
GoogleAuthEnable Google OAuth"Enabled", "Disabled""Disabled"
GoogleClientIdGoogle OAuth client IDString""
GoogleClientSecretGoogle OAuth client secretString (sensitive)""
OktaAuthEnable Okta SAML/OAuth"Enabled", "Disabled""Disabled"
OktaBaseUrlOkta OAuth endpoint URL"https://company.okta.com/oauth2/default"""
OktaClientIdOkta OAuth client IDString""
OktaClientSecretOkta OAuth client secretString (sensitive)""
OneLoginAuthEnable OneLogin OAuth"Enabled", "Disabled""Disabled"
OneLoginBaseUrlOneLogin OAuth endpoint URL"https://company.onelogin.com/oidc/2"""
OneLoginClientIdOneLogin OAuth client IDString""
OneLoginClientSecretOneLogin OAuth client secretString (sensitive)""
AzureAuthEnable Azure AD OAuth"Enabled", "Disabled""Disabled"
AzureBaseUrlAzure AD OAuth endpoint URL"https://login.microsoftonline.com/tenant-id/v2.0"""
AzureClientIdAzure AD OAuth client IDString""
AzureClientSecretAzure AD OAuth client secretString (sensitive)""
SingleSignOnDomainsComma-separated list of SSO domains"company.com,subsidiary.com"""

Optional Application Parameters

ParameterDescriptionExampleDefault
CloudTrailBucketS3 bucket for CloudTrail logs"company-cloudtrail"""
QuratorEnable Quilt's data quality features"Enabled", "Disabled""Disabled"
CanaryNotificationsEmailEmail for monitoring alerts"ops@company.com"""
ChunkedChecksumsEnable chunked checksums"Enabled", "Disabled""Enabled"
VoilaVersionVoilà notebook version"0.5.8"Latest

Advanced Parameters

ParameterDescriptionExample
ManagedUserRoleExtraPoliciesAdditional IAM policies (comma-separated ARNs)"arn:aws:iam::YOUR-ACCOUNT-ID:policy/CustomPolicy,arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"
S3BucketPolicyExcludeArnsFromDenyARNs to exclude from S3 bucket deny policies"arn:aws:iam::YOUR-ACCOUNT-ID:user/service-account,arn:aws:iam::YOUR-ACCOUNT-ID:role/DataProcessingRole"
WAFGeofenceCountriesCountry codes for WAF geofencing (comma-separated)"US,CA,GB,DE,FR"

VPC Module Variables (modules/vpc)

VariableTypeDescriptionValidation
namestringVPC name prefix-
create_new_vpcboolCreate new VPC or use existing-
cidrstringVPC CIDR blockPrefix ≤ /24
internalboolInternal or internet-facing deployment-
existing_vpc_idstringExisting VPC ID-
existing_api_endpointstringExisting API Gateway VPC endpoint ID-
existing_intra_subnetslist(string)Existing isolated subnet IDsExactly 2 subnets
existing_private_subnetslist(string)Existing private subnet IDsExactly 2 subnets
existing_public_subnetslist(string)Existing public subnet IDsExactly 2 subnets
existing_user_security_groupstringExisting security group for ALB access-
existing_user_subnetslist(string)Existing subnets for ALBExactly 2 subnets

Database Module Variables (modules/db)

VariableTypeDescription
identifierstringDatabase identifier
vpc_idstringVPC ID for database
subnet_idslist(string)Subnet IDs for database
snapshot_identifierstringSnapshot to restore from
instance_classstringRDS instance class
multi_azboolEnable Multi-AZ
network_typestringNetwork type ("IPV4" or "DUAL")
deletion_protectionboolEnable deletion protection

Search Module Variables (modules/search)

VariableTypeDescriptionValidation
domain_namestringElasticSearch domain name-
vpc_idstringVPC ID for ElasticSearch-
subnet_idslist(string)Subnet IDs for ElasticSearch-
auto_tune_desired_statestringAuto-Tune state-
instance_countnumberNumber of data nodes-
instance_typestringInstance type for data nodes-
dedicated_master_enabledboolEnable dedicated master nodes-
dedicated_master_countnumberNumber of master nodes-
dedicated_master_typestringInstance type for master nodes-
zone_awareness_enabledboolEnable zone awareness-
volume_iopsnumberEBS IOPS≥3000 if specified
volume_sizenumberEBS volume size (GiB)-
volume_throughputnumberEBS throughput (MiB/s)-
volume_typestringEBS volume type-

CNAMES Module Variables (modules/cnames)

VariableTypeDescription
lb_dns_namestringLoad balancer DNS name
quilt_web_hoststringQuilt web host domain
ttlnumberDNS record TTL (default: 60)
zone_idstringRoute53 hosted zone ID

Configuration Examples by Use Case

Development Environment

# Minimal cost configuration
db_instance_class               = "db.t3.micro"
db_multi_az                    = false
db_deletion_protection         = false
search_dedicated_master_enabled = false
search_zone_awareness_enabled  = false
search_instance_count          = 1
search_instance_type           = "m6g.large.elasticsearch"
search_volume_size             = 512

Production Environment

# High availability configuration
db_instance_class               = "db.t3.medium"
db_multi_az                    = true
db_deletion_protection         = true
search_dedicated_master_enabled = true
search_zone_awareness_enabled  = true
search_instance_count          = 2
search_instance_type           = "m6g.xlarge.elasticsearch"
search_volume_size             = 2048
search_volume_type             = "gp3"

Enterprise Environment

# High performance configuration
db_instance_class               = "db.r5.xlarge"
db_multi_az                    = true
db_deletion_protection         = true
search_dedicated_master_enabled = true
search_zone_awareness_enabled  = true
search_instance_count          = 4
search_instance_type           = "m6g.4xlarge.elasticsearch"
search_volume_size             = 6144
search_volume_type             = "gp3"
search_volume_iops             = 18750

Variable Validation Rules

Name Validation

  • Must be ≤20 characters
  • Lowercase alphanumeric characters and hyphens only
  • Used as prefix for AWS resource names

Network Validation

  • CIDR blocks must allow ≥256 IP addresses (≤/24)
  • Subnet lists must contain exactly 2 subnet IDs when specified
  • VPC endpoints required for internal deployments with existing VPC

ElasticSearch Validation

  • search_volume_iops must be ≥3000 when specified
  • search_volume_throughput must be 125-1000 MiB/s for gp3 volumes
  • Master node count should be odd (3 or 5) for proper quorum

Database Validation

  • db_network_type must be "IPV4" or "DUAL"
  • Multi-AZ recommended for production environments
  • Deletion protection recommended for production databases

Common Configuration Patterns

Internet-Facing with New VPC

internal       = false
create_new_vpc = true
cidr          = "10.0.0.0/16"
# public_subnets, private_subnets, intra_subnets auto-created

Internal with Existing VPC

internal            = true
create_new_vpc      = false
vpc_id              = "vpc-existing"
intra_subnets       = ["subnet-1", "subnet-2"]
private_subnets     = ["subnet-3", "subnet-4"]
user_subnets        = ["subnet-5", "subnet-6"]
user_security_group = "sg-existing"
api_endpoint        = "vpce-existing"

High-Performance ElasticSearch

search_instance_type    = "m6g.4xlarge.elasticsearch"
search_instance_count   = 4
search_volume_type      = "gp3"
search_volume_size      = 6144
search_volume_iops      = 18750
search_volume_throughput = 1000