Skip to content

Commit 3b16eed

Browse files
[CI] Wire up Buildbot Service Accounts
This patch wires up service accounts for the buildbot worker pods. This is necessary because otherwise we cannot access the k8s API, which the worker needs to be able to do to start builds/get logs.
1 parent f4a2760 commit 3b16eed

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

premerge/buildbot_deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ spec:
1414
labels:
1515
app: ${ buildbot_name }
1616
spec:
17+
serviceAccountName: buildbot-ksa
1718
containers:
1819
- name: buildbot
1920
image: ghcr.io/llvm/premerge-buildbot:latest

premerge/premerge_resources/main.tf

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,12 +279,102 @@ resource "helm_release" "github_actions_runner_set_libcxx_next" {
279279
]
280280
}
281281

282+
resource "kubernetes_role" "linux_buildbot_role" {
283+
metadata {
284+
name = "buildbot-role"
285+
namespace = "llvm-premerge-linux-buildbot"
286+
}
287+
288+
rule {
289+
api_groups = [""]
290+
resources = ["pods", "pods/log"]
291+
verbs = ["create", "delete", "get"]
292+
}
293+
294+
depends_on = [kubernetes_namespace.llvm_premerge_linux_buildbot]
295+
}
296+
297+
resource "kubernetes_service_account" "linux_buildbot_ksa" {
298+
metadata {
299+
name = "buildbot-ksa"
300+
namespace = "llvm-premerge-linux-buildbot"
301+
}
302+
303+
depends_on = [kubernetes_namespace.llvm_premerge_linux_buildbot]
304+
}
305+
306+
resource "kubernetes_role_binding" "linux_buildbot_role_binding" {
307+
metadata {
308+
name = "buildbot-role-binding"
309+
namespace = "llvm-premerge-linux-buildbot"
310+
}
311+
312+
role_ref {
313+
kind = "Role"
314+
name = "buildbot-role"
315+
api_group = "rbac.authorization.k8s.io"
316+
}
317+
318+
subject {
319+
kind = "ServiceAccount"
320+
name = "buildbot-ksa"
321+
namespace = "llvm-premerge-linux-buildbot"
322+
}
323+
324+
depends_on = [kubernetes_role.linux_buildbot_role, kubernetes_service_account.linux_buildbot_ksa]
325+
}
326+
282327
resource "kubernetes_manifest" "linux_buildbot_deployment" {
283328
manifest = yamldecode(templatefile("buildbot_deployment.yaml", { buildbot_name : var.linux_buildbot_name, buildbot_namespace : "llvm-premerge-linux-buildbot", secret_name : "linux-buildbot-password" }))
284329

285330
depends_on = [kubernetes_namespace.llvm_premerge_linux_buildbot, kubernetes_secret.linux_buildbot_password]
286331
}
287332

333+
resource "kubernetes_role" "windows_2022_buildbot_role" {
334+
metadata {
335+
name = "buildbot-role"
336+
namespace = "llvm-premerge-windows-2022-buildbot"
337+
}
338+
339+
rule {
340+
api_groups = [""]
341+
resources = ["pods", "pods/log"]
342+
verbs = ["create", "delete", "get"]
343+
}
344+
345+
depends_on = [kubernetes_namespace.llvm_premerge_windows_2022_buildbot]
346+
}
347+
348+
resource "kubernetes_service_account" "windows_2022_buildbot_ksa" {
349+
metadata {
350+
name = "buildbot-ksa"
351+
namespace = "llvm-premerge-windows-2022-buildbot"
352+
}
353+
354+
depends_on = [kubernetes_namespace.llvm_premerge_windows_2022_buildbot]
355+
}
356+
357+
resource "kubernetes_role_binding" "windows_2022_buildbot_role_binding" {
358+
metadata {
359+
name = "buildbot-role-binding"
360+
namespace = "llvm-premerge-windows-2022-buildbot"
361+
}
362+
363+
role_ref {
364+
kind = "Role"
365+
name = "buildbot-role"
366+
api_group = "rbac.authorization.k8s.io"
367+
}
368+
369+
subject {
370+
kind = "ServiceAccount"
371+
name = "buildbot-service-account"
372+
namespace = "llvm-premerge-windows-2022-buildbot"
373+
}
374+
375+
depends_on = [kubernetes_role.windows_2022_buildbot_role, kubernetes_service_account.windows_2022_buildbot_ksa]
376+
}
377+
288378
# TODO(boomanaiden154): Enable windows buildbots once Linux is stable.
289379
#resource "kubernetes_manifest" "windows_buildbot_deployment" {
290380
# manifest = yamldecode(templatefile("buildbot_deployment.yaml", { buildbot_name : var.windows_buildbot_name, buildbot_namespace : "llvm-premerge-windows-2022-buildbot", secret_name : "windows-buildbot-password" }))

0 commit comments

Comments
 (0)