Skip to content

Commit d021035

Browse files
authored
Merge pull request #40 from gitpod-io/nv/opt-in-metadata-item
feat: opt-in non-authoritative project metadata
2 parents fb6957a + 9b36644 commit d021035

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

runner-vm.tf

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,12 +358,29 @@ resource "google_compute_health_check" "runner" {
358358
}
359359

360360

361-
# Resource tagging for lifecycle management
361+
# Project metadata: authoritative (default) or per-key items.
362+
# Authoritative manages ALL project metadata — keys not in this block are removed.
363+
# Per-key items only touch the keys this module needs, leaving other metadata intact.
362364
resource "google_compute_project_metadata" "runner_metadata" {
365+
count = var.use_authoritative_project_metadata ? 1 : 0
363366
project = var.project_id
364367

365368
metadata = {
366369
"enable-oslogin" = "TRUE"
367370
"gitpod-runner-id" = var.runner_id
368371
}
369372
}
373+
374+
resource "google_compute_project_metadata_item" "enable_oslogin" {
375+
count = var.use_authoritative_project_metadata ? 0 : 1
376+
project = var.project_id
377+
key = "enable-oslogin"
378+
value = "TRUE"
379+
}
380+
381+
resource "google_compute_project_metadata_item" "runner_id" {
382+
count = var.use_authoritative_project_metadata ? 0 : 1
383+
project = var.project_id
384+
key = "gitpod-runner-id"
385+
value = var.runner_id
386+
}

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,4 +337,10 @@ variable "enable_agents" {
337337
default = true
338338
}
339339

340+
variable "use_authoritative_project_metadata" {
341+
description = "When true (default), uses authoritative google_compute_project_metadata which manages all project metadata. Set to false to use per-key metadata items that leave other project metadata untouched."
342+
type = bool
343+
default = true
344+
}
345+
340346

0 commit comments

Comments
 (0)