Skip to content

Commit 5f72dd7

Browse files
[π˜€π—½π—Ώ] initial version
Created using spr 1.3.4
2 parents 21a79a2 + e1dca0a commit 5f72dd7

File tree

4 files changed

+68
-19
lines changed

4 files changed

+68
-19
lines changed

β€Žpremerge/gke_cluster/main.tfβ€Ž

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ resource "google_container_cluster" "llvm_premerge" {
1212
# for adding windows nodes to the cluster.
1313
networking_mode = "VPC_NATIVE"
1414
ip_allocation_policy {}
15+
16+
# Set the workload identity config so that we can authenticate with Google
17+
# Cloud APIs using workload identity federation as described in
18+
# https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity.
19+
workload_identity_config {
20+
workload_pool = "llvm-premerge-checks.svc.id.goog"
21+
}
1522
}
1623

1724
resource "google_container_node_pool" "llvm_premerge_linux_service" {
@@ -62,6 +69,12 @@ resource "google_container_node_pool" "llvm_premerge_linux" {
6269
resource_labels = {
6370
"goog-gke-node-pool-provisioning-model" = "on-demand"
6471
}
72+
73+
# Enable workload identity federation for this pool so that we can access
74+
# GCS buckets.
75+
workload_metadata_config {
76+
mode = "GKE_METADATA"
77+
}
6578
}
6679
}
6780

@@ -139,5 +152,27 @@ resource "google_container_node_pool" "llvm_premerge_windows_2022" {
139152
resource_labels = {
140153
"goog-gke-node-pool-provisioning-model" = "on-demand"
141154
}
155+
156+
# Enable workload identity federation for this pool so that we can access
157+
# GCS buckets.
158+
workload_metadata_config {
159+
mode = "GKE_METADATA"
160+
}
142161
}
143162
}
163+
164+
resource "google_storage_bucket" "object_cache_linux" {
165+
name = format("%s-object-cache-linux", var.cluster_name)
166+
location = var.region
167+
168+
uniform_bucket_level_access = true
169+
public_access_prevention = "enforced"
170+
}
171+
172+
resource "google_storage_bucket" "object_cache_windows" {
173+
name = format("%s-object-cache-windows", var.cluster_name)
174+
location = var.region
175+
176+
uniform_bucket_level_access = true
177+
public_access_prevention = "enforced"
178+
}

β€Žpremerge/main.tfβ€Ž

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -121,27 +121,31 @@ provider "kubernetes" {
121121
}
122122

123123
module "premerge_cluster_us_central_resources" {
124-
source = "./premerge_resources"
125-
github_app_id = data.google_secret_manager_secret_version.github_app_id.secret_data
126-
github_app_installation_id = data.google_secret_manager_secret_version.github_app_installation_id.secret_data
127-
github_app_private_key = data.google_secret_manager_secret_version.github_app_private_key.secret_data
128-
cluster_name = "llvm-premerge-cluster-us-central"
129-
grafana_token = data.google_secret_manager_secret_version.grafana_token.secret_data
130-
runner_group_name = "llvm-premerge-cluster-us-central"
124+
source = "./premerge_resources"
125+
github_app_id = data.google_secret_manager_secret_version.github_app_id.secret_data
126+
github_app_installation_id = data.google_secret_manager_secret_version.github_app_installation_id.secret_data
127+
github_app_private_key = data.google_secret_manager_secret_version.github_app_private_key.secret_data
128+
cluster_name = "llvm-premerge-cluster-us-central"
129+
grafana_token = data.google_secret_manager_secret_version.grafana_token.secret_data
130+
runner_group_name = "llvm-premerge-cluster-us-central"
131+
linux_runners_namespace_name = "llvm-premerge-linux-runners"
132+
windows_2022_runners_namespace_name = "llvm-premerge-windows-2022-runners"
131133
providers = {
132134
kubernetes = kubernetes.llvm-premerge-us-central
133135
helm = helm.llvm-premerge-us-central
134136
}
135137
}
136138

137139
module "premerge_cluster_us_west_resources" {
138-
source = "./premerge_resources"
139-
github_app_id = data.google_secret_manager_secret_version.github_app_id.secret_data
140-
github_app_installation_id = data.google_secret_manager_secret_version.github_app_installation_id.secret_data
141-
github_app_private_key = data.google_secret_manager_secret_version.github_app_private_key.secret_data
142-
cluster_name = "llvm-premerge-cluster-us-west"
143-
grafana_token = data.google_secret_manager_secret_version.grafana_token.secret_data
144-
runner_group_name = "llvm-premerge-cluster-us-west"
140+
source = "./premerge_resources"
141+
github_app_id = data.google_secret_manager_secret_version.github_app_id.secret_data
142+
github_app_installation_id = data.google_secret_manager_secret_version.github_app_installation_id.secret_data
143+
github_app_private_key = data.google_secret_manager_secret_version.github_app_private_key.secret_data
144+
cluster_name = "llvm-premerge-cluster-us-west"
145+
grafana_token = data.google_secret_manager_secret_version.grafana_token.secret_data
146+
runner_group_name = "llvm-premerge-cluster-us-west"
147+
linux_runners_namespace_name = "llvm-premerge-linux-runners"
148+
windows_2022_runners_namespace_name = "llvm-premerge-windows-2022-runners"
145149
providers = {
146150
kubernetes = kubernetes.llvm-premerge-us-west
147151
helm = helm.llvm-premerge-us-west

β€Žpremerge/premerge_resources/main.tfβ€Ž

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ resource "kubernetes_namespace" "llvm_premerge_controller" {
1919

2020
resource "kubernetes_namespace" "llvm_premerge_linux_runners" {
2121
metadata {
22-
name = "llvm-premerge-linux-runners"
22+
name = var.linux_runners_namespace_name
2323
}
2424
}
2525

@@ -43,14 +43,14 @@ resource "kubernetes_namespace" "llvm_premerge_libcxx_next_runners" {
4343

4444
resource "kubernetes_namespace" "llvm_premerge_windows_2022_runners" {
4545
metadata {
46-
name = "llvm-premerge-windows-2022-runners"
46+
name = var.windows_2022_runners_namespace_name
4747
}
4848
}
4949

5050
resource "kubernetes_secret" "linux_github_pat" {
5151
metadata {
5252
name = "github-token"
53-
namespace = "llvm-premerge-linux-runners"
53+
namespace = var.linux_runners_namespace_name
5454
}
5555

5656
data = {
@@ -146,7 +146,7 @@ resource "helm_release" "github_actions_runner_controller" {
146146

147147
resource "helm_release" "github_actions_runner_set_linux" {
148148
name = "llvm-premerge-linux-runners"
149-
namespace = "llvm-premerge-linux-runners"
149+
namespace = var.linux_runners_namespace_name
150150
repository = "oci://ghcr.io/actions/actions-runner-controller-charts"
151151
version = "0.11.0"
152152
chart = "gha-runner-scale-set"
@@ -164,7 +164,7 @@ resource "helm_release" "github_actions_runner_set_linux" {
164164

165165
resource "helm_release" "github_actions_runner_set_windows_2022" {
166166
name = "llvm-premerge-windows-2022-runners"
167-
namespace = "llvm-premerge-windows-2022-runners"
167+
namespace = var.windows_2022_runners_namespace_name
168168
repository = "oci://ghcr.io/actions/actions-runner-controller-charts"
169169
version = "0.11.0"
170170
chart = "gha-runner-scale-set"

β€Žpremerge/premerge_resources/variables.tfβ€Ž

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,13 @@ variable "libcxx_next_runner_image" {
7070
type = string
7171
default = "ghcr.io/llvm/libcxx-linux-builder:16f046281bf1a11d344eac1bc44d11f3e50e3b5d"
7272
}
73+
74+
variable "linux_runners_namespace_name" {
75+
description = "The name of the namespace containing the Linux runners"
76+
type = string
77+
}
78+
79+
variable "windows_2022_runners_namespace_name" {
80+
description = "The name of the namespace containing the Windows runners"
81+
type = string
82+
}

0 commit comments

Comments
Β (0)