Skip to content

Commit 18c7e80

Browse files
[CI] Update documentation after libcxx runner sets
There are a couple places where we need to update the documentation to reflect changes made due to the introduction of the libc++ runner sets. I did a cursory glance through the documentation and updated everything where I saw something was incorrect, but this patch might not be exhaustive. Reviewers: lnihlen, gburgessiv, dschuff, Keenuts, cmtice Reviewed By: cmtice Pull Request: #510
1 parent 21a79a2 commit 18c7e80

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

premerge/architecture.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ To balance cost/performance, we keep both types.
2020
- building & testing LLVM shall be done on self-hosted runners.
2121

2222
LLVM has several flavor of self-hosted runners:
23-
- libcxx runners.
2423
- MacOS runners for HLSL managed by Microsoft.
2524
- GCP windows/linux runners managed by Google.
25+
- GCP linux runners setup for libcxx managed by Google.
2626

2727
This document only focuses on Google's GCP hosted runners.
2828

@@ -47,10 +47,11 @@ Any relevant differences are explicitly enumerated.
4747

4848
Our runners are hosted on GCP Kubernetes clusters, and use the
4949
[Action Runner Controller (ARC)](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller).
50-
The clusters have 3 pools:
50+
The clusters have 4 main pools:
5151
- llvm-premerge-linux
5252
- llvm-premerge-linux-service
5353
- llvm-premerge-windows
54+
- llvm-premerge-libcxx
5455

5556
**llvm-premerge-linux-service** is a fixed pool, only used to host the
5657
services required to manage the premerge infra (controller, listeners,
@@ -64,6 +65,11 @@ are `n2d-standard-64` due to quota limitations.
6465
VMs. Similar to the Linux pool, but this time it runs Windows workflows. In the
6566
US West cluster, the machines are `n2d-standard-32` due to quota limitations.
6667

68+
**llvm-premerge-libcxx** is a auto-scaling pool with large `n2-standard-32`
69+
VMs. This is similar to the Linux pool but with smaller machines tailored
70+
to the libcxx testing workflows. In the US West Cluster, the machines are
71+
`n2d-standard-32` due to quota limitations.
72+
6773
### Service pool: llvm-premerge-linux-service
6874

6975
This pool runs all the services managing the presubmit infra.
@@ -87,7 +93,7 @@ How a job is run:
8793
- If the instance is not reused in the next 10 minutes, the autoscaler
8894
will turn down the instance, freeing resources.
8995

90-
### Worker pools : llvm-premerge-linux, llvm-premerge-windows
96+
### Worker pools : llvm-premerge-linux, llvm-premerge-windows, llvm-premerge-libcxx
9197

9298
To make sure each runner pod is scheduled on the correct pool (linux or
9399
windows, avoiding the service pool), we use labels and taints.
@@ -98,6 +104,7 @@ So if we do not enforce limits, the controller could schedule 2 runners on
98104
the same instance, forcing containers to share resources.
99105

100106
Those bits are configures in the
101-
[linux runner configuration](linux_runners_values.yaml) and
102-
[windows runner configuration](windows_runner_values.yaml).
107+
[linux runner configuration](linux_runners_values.yaml),
108+
[windows runner configuration](windows_runner_values.yaml), and
109+
[libcxx runner configuration](libcxx_runners_values.yaml).
103110

premerge/cluster-management.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ will see 3 node pools:
5757
- llvm-premerge-linux
5858
- llvm-premerge-linux-service
5959
- llvm-premerge-windows
60+
- llvm-premerge-libcxx
6061

6162
Definitions for each pool are in [Architecture overview](architecture.md).
6263

@@ -96,9 +97,11 @@ To apply any changes to the cluster:
9697
terraform apply -target module.premerge_cluster_us_central.google_container_node_pool.llvm_premerge_linux_service
9798
terraform apply -target module.premerge_cluster_us_central.google_container_node_pool.llvm_premerge_linux
9899
terraform apply -target module.premerge_cluster_us_central.google_container_node_pool.llvm_premerge_windows
100+
terraform apply -target module.premerge_cluster_us_central.google_container_node_pool.llvm_premerge_libcxx
99101
terraform apply -target module.premerge_cluster_us_west.google_container_node_pool.llvm_premerge_linux_service
100102
terraform apply -target module.premerge_cluster_us_west.google_container_node_pool.llvm_premerge_linux
101103
terraform apply -target module.premerge_cluster_us_west.google_container_node_pool.llvm_premerge_windows
104+
terraform apply -target module.premerge_cluster_us_west.google_container_node_pool.llvm_premerge_libcxx
102105
terraform apply
103106
```
104107

@@ -145,6 +148,9 @@ on a kubernetes destroy command:
145148
```bash
146149
terraform destroy -target module.premerge_cluster_us_central_resources.helm_release.github_actions_runner_set_linux
147150
terraform destroy -target module.premerge_cluster_us_central_resources.helm_release.github_actions_runner_set_windows
151+
terraform destroy -target module.premerge_cluster_us_central_resources.helm_release.github_actions_runner_set_libcxx
152+
terraform destroy -target module.premerge_cluster_us_central_resources.helm_release.github_actions_runner_set_libcxx_release
153+
terraform destroy -target module.premerge_cluster_us_central_resources.helm_release.github_actions_runner_set_libcxx_next
148154
```
149155

150156
These should complete, but if they do not, we are still able to get things
@@ -157,6 +163,9 @@ commands by deleting the kubernetes namespaces all the resources live in:
157163
```bash
158164
terraform destroy -target module.premerge_cluster_us_central_resources.kubernetes_namespace.llvm_premerge_linux_runners
159165
terraform destroy -target module.premerge_cluster_us_central_resources.kubernetes_namespace.llvm_premerge_windows_runners
166+
terraform destroy -target module.premerge_cluster_us_central_resources.kubernetes_namespace.llvm_premerge_libcxx_runners
167+
terraform destroy -target module.premerge_cluster_us_central_resources.kubernetes_namespace.llvm_premerge_libcxx_release_runners
168+
terraform destroy -target module.premerge_cluster_us_central_resources.kubernetes_namespace.llvm_premerge_libcxx_next_runners
160169
```
161170

162171
If things go smoothly, these should complete quickly. If they do not complete,

0 commit comments

Comments
 (0)