variable "project" { description = "GCP project id" type = string } variable "region" { description = "GCP region for every regional resource" type = string default = "europe-west2" # London: keeps public genomic test data and the Cambridge team in one jurisdiction } variable "github_repo" { description = "owner/name of the GitHub repo allowed to push images via Workload Identity Federation" type = string default = "lynchaos/rarelens" } variable "deletion_protection" { description = "Protect the GKE cluster and Cloud SQL instance from `terraform destroy`; set false to tear the lab down" type = bool default = true } variable "deploy_kubernetes" { description = "Create the GKE cluster (Argo/ArgoCD track). Off by default: it costs ~$150/month idle, while the serverless track costs ~£1 (docs/cloud.md)" type = bool default = false } variable "deploy_cloud_sql" { description = "Create a Cloud SQL instance (~$10/month). Off by default: set database_url to a free scale-to-zero Postgres such as Neon" type = bool default = false } variable "database_url" { description = "Postgres URL used when deploy_cloud_sql is false, e.g. postgresql+asyncpg://user:pass@host/db?sslmode=require" type = string default = "" sensitive = true } variable "image_tag" { description = "Image tag deployed to Cloud Run; CI pushes the commit SHA" type = string default = "latest" } variable "model_uri" { description = "Optional model artifact to score with, e.g. gs://-rarelens-data/models/pathogenicity/1. Empty means use the MLflow registry" type = string default = "" } variable "max_instances" { description = "Cloud Run instance ceiling per service: scale-to-zero bounds the floor, this bounds the bill" type = number default = 2 }