Skip to content

Commit d9e3b70

Browse files
committed
feat(infra): add Firestore and Vertex AI resources
1 parent 8918f17 commit d9e3b70

3 files changed

Lines changed: 36 additions & 0 deletions

File tree

apps/infra/firestore.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Firestore Database
2+
# Native mode Firestore for real-time data synchronization
3+
resource "google_firestore_database" "default" {
4+
project = var.project_id
5+
name = "(default)"
6+
location_id = var.region
7+
type = "FIRESTORE_NATIVE"
8+
9+
# Enable delete protection in production for data safety
10+
delete_protection_state = var.environment == "prod" ? "DELETE_PROTECTION_ENABLED" : "DELETE_PROTECTION_DISABLED"
11+
12+
# Allow deletion when running terraform destroy
13+
deletion_policy = "DELETE"
14+
15+
depends_on = [google_project_service.apis]
16+
}

apps/infra/iam.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,21 @@ resource "google_project_iam_member" "github_sa_user" {
107107
role = "roles/iam.serviceAccountUser"
108108
member = "serviceAccount:${google_service_account.github.email}"
109109
}
110+
111+
# Vertex AI Service Identity
112+
# This creates the Vertex AI Service Agent for the project
113+
resource "google_project_service_identity" "vertex_ai" {
114+
provider = google-beta
115+
project = var.project_id
116+
service = "aiplatform.googleapis.com"
117+
118+
depends_on = [google_project_service.apis]
119+
}
120+
121+
# Grant Vertex AI Service Agent access to GCS buckets
122+
# Required for model training, batch prediction, and artifact storage
123+
resource "google_project_iam_member" "vertex_ai_storage" {
124+
project = var.project_id
125+
role = "roles/storage.objectViewer"
126+
member = "serviceAccount:${google_project_service_identity.vertex_ai.email}"
127+
}

apps/infra/security.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ resource "google_project_service" "apis" {
1313
"compute.googleapis.com",
1414
"iamcredentials.googleapis.com",
1515
"iam.googleapis.com",
16+
"firestore.googleapis.com",
17+
"aiplatform.googleapis.com",
1618
])
1719

1820
project = var.project_id

0 commit comments

Comments
 (0)