From 3e7f1b275e612a4a35fdaf1ea2bfc1743f67efd2 Mon Sep 17 00:00:00 2001 From: Aiden Grossman Date: Tue, 15 Jul 2025 15:17:21 +0000 Subject: [PATCH] [CI] Remove Windows Server 2019 Runnerset This patch removes the windows server 2019 runnerset and the node pool associated with it now that we have migrated to server 2022. Planning on landing this after we have given the new runner set a bit of soak time and the existing runner pods have drained from the node pool. --- premerge/gke_cluster/main.tf | 44 -------------------------- premerge/premerge_resources/main.tf | 41 ------------------------ premerge/windows_runner_values.yaml | 48 ----------------------------- 3 files changed, 133 deletions(-) delete mode 100644 premerge/windows_runner_values.yaml diff --git a/premerge/gke_cluster/main.tf b/premerge/gke_cluster/main.tf index 87c3959e7..294a10c04 100644 --- a/premerge/gke_cluster/main.tf +++ b/premerge/gke_cluster/main.tf @@ -97,50 +97,6 @@ resource "google_container_node_pool" "llvm_premerge_libcxx" { } } -# TODO(boomanaiden154): Make sure to delete this node pool after we have -# switched over to server 2022. -resource "google_container_node_pool" "llvm_premerge_windows" { - name = "llvm-premerge-windows" - location = var.region - cluster = google_container_cluster.llvm_premerge.name - initial_node_count = 0 - - autoscaling { - total_min_node_count = 0 - total_max_node_count = 16 - } - - # We do not set a taint for the windows nodes as kubernetes by default sets - # a node.kubernetes.io/os taint for windows nodes. - node_config { - machine_type = var.windows_machine_type - labels = { - "premerge-platform" : "windows" - } - image_type = "WINDOWS_LTSC_CONTAINERD" - # Add a script that runs on the initial boot to disable Windows Defender. - # Windows Defender causes an increase in test times by approximately an - # order of magnitude. - metadata = { - "sysprep-specialize-script-ps1" = "Set-MpPreference -DisableRealtimeMonitoring $true" - # Terraform wants to recreate the node pool everytime whe running - # terraform apply unless we explicitly set this. - # TODO(boomanaiden154): Look into why terraform is doing this so we do - # not need this hack. - "disable-legacy-endpoints" = "true" - } - disk_size_gb = 200 - disk_type = "pd-ssd" - # Terraform wants to recreate the node pool everytime whe running - # terraform apply unless we explicitly set this. - # TODO(boomanaiden154): Look into why terraform is doing this so we do - # not need this hack. - resource_labels = { - "goog-gke-node-pool-provisioning-model" = "on-demand" - } - } -} - resource "google_container_node_pool" "llvm_premerge_windows_2022" { name = "llvm-premerge-windows-2022" location = var.region diff --git a/premerge/premerge_resources/main.tf b/premerge/premerge_resources/main.tf index aaf696696..ba044a868 100644 --- a/premerge/premerge_resources/main.tf +++ b/premerge/premerge_resources/main.tf @@ -41,12 +41,6 @@ resource "kubernetes_namespace" "llvm_premerge_libcxx_next_runners" { } } -resource "kubernetes_namespace" "llvm_premerge_windows_runners" { - metadata { - name = "llvm-premerge-windows-runners" - } -} - resource "kubernetes_namespace" "llvm_premerge_windows_2022_runners" { metadata { name = "llvm-premerge-windows-2022-runners" @@ -121,23 +115,6 @@ resource "kubernetes_secret" "libcxx_next_github_pat" { depends_on = [kubernetes_namespace.llvm_premerge_libcxx_next_runners] } -resource "kubernetes_secret" "windows_github_pat" { - metadata { - name = "github-token" - namespace = "llvm-premerge-windows-runners" - } - - data = { - "github_app_id" = var.github_app_id - "github_app_installation_id" = var.github_app_installation_id - "github_app_private_key" = var.github_app_private_key - } - - type = "Opaque" - - depends_on = [kubernetes_namespace.llvm_premerge_windows_runners] -} - resource "kubernetes_secret" "windows_2022_github_pat" { metadata { name = "github-token" @@ -185,24 +162,6 @@ resource "helm_release" "github_actions_runner_set_linux" { ] } -resource "helm_release" "github_actions_runner_set_windows" { - name = "llvm-premerge-windows-runners" - namespace = "llvm-premerge-windows-runners" - repository = "oci://ghcr.io/actions/actions-runner-controller-charts" - version = "0.11.0" - chart = "gha-runner-scale-set" - - values = [ - "${templatefile("windows_runner_values.yaml", { runner_group_name : var.runner_group_name })}" - ] - - depends_on = [ - kubernetes_namespace.llvm_premerge_windows_runners, - kubernetes_secret.windows_github_pat, - helm_release.github_actions_runner_controller, - ] -} - resource "helm_release" "github_actions_runner_set_windows_2022" { name = "llvm-premerge-windows-2022-runners" namespace = "llvm-premerge-windows-2022-runners" diff --git a/premerge/windows_runner_values.yaml b/premerge/windows_runner_values.yaml deleted file mode 100644 index 1dfc9cb65..000000000 --- a/premerge/windows_runner_values.yaml +++ /dev/null @@ -1,48 +0,0 @@ -githubConfigUrl: "https://github.com/llvm" -githubConfigSecret: "github-token" - -minRunners: 0 -maxRunners: 16 - -runnerGroup: ${ runner_group_name } - -template: - metadata: - annotations: - cluster-autoscaler.kubernetes.io/safe-to-evict: "false" - spec: - tolerations: - - key: "node.kubernetes.io/os" - operator: "Equal" - value: "windows" - effect: "NoSchedule" - - key: "premerge-platform" - operator: "Equal" - value: "windows" - effect: "NoSchedule" - nodeSelector: - premerge-platform: windows - containers: - - name: runner - resources: - requests: - cpu: 28 - image: ghcr.io/llvm/ci-windows-2019:latest - command: ["run.cmd"] - args: ["--jitconfig", "$(ACTIONS_RUNNER_INPUT_JITCONFIG)"] - env: - - name: DISABLE_RUNNER_UPDATE - value: "true" - # Add a volume/mount it to C:/_work so that we can use more than 20GB - # of space. Windows containers default to only having 20GB of scratch - # space and there is no way to configure this through kubernetes - # although the underlying containerd runtime should support it. So - # instead we just use a emptyDir volume mounted at C:/_work, which is - # where the GHA runner does everything. - volumeMounts: - - name: builddir - mountPath: "C:/_work" - volumes: - - name: builddir - emptyDir: {} -