Skip to content

Commit 6e1cb1b

Browse files
committed
scheduling-webhook: hypershift image builds in memory-based storage
1 parent dc25f3d commit 6e1cb1b

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

cmd/ci-scheduling-webhook/mutation.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,12 @@ func mutatePod(w http.ResponseWriter, r *http.Request) {
201201
}
202202
}
203203

204+
if podClass == PodClassBuilds &&
205+
strings.HasPrefix(podName, "hypershift") &&
206+
strings.HasSuffix(podName, "amd64-build") {
207+
podClass = PodClassBuildsTmpfs
208+
}
209+
204210
if podClass != PodClassNone {
205211
profile("classified request")
206212

@@ -347,6 +353,22 @@ func mutatePod(w http.ResponseWriter, r *http.Request) {
347353
addPatchEntry("add", "/spec/affinity", unstructuredAffinity)
348354
}
349355

356+
if podClass == PodClassBuildsTmpfs {
357+
// Iterate over pod volumes and set medium to memory for container-storage-root and container-storage-run volumes
358+
for i, volume := range pod.Spec.Volumes {
359+
if volume.Name == "container-storage-root" || volume.Name == "container-storage-run" {
360+
addPatchEntry("add", fmt.Sprintf("/spec/volumes/%v/emptyDir/medium", i), "Memory")
361+
}
362+
}
363+
364+
// Find the docker-build container and remove its memory request
365+
for i, container := range pod.Spec.Containers {
366+
if container.Name == "docker-build" {
367+
addPatchEntry("remove", fmt.Sprintf("/spec/containers/%v/resources/requests/memory", i), nil)
368+
}
369+
}
370+
}
371+
350372
// There is currently an issue with cluster scale up where pods are stacked up, unschedulable.
351373
// A machine is provisioned. As soon as the machine is provisioned, pods are scheduled to the
352374
// node and they begin to run before DNS daemonset pods can successfully configure the pod.

cmd/ci-scheduling-webhook/prioritization.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ import (
3030
type PodClass string
3131

3232
const (
33-
PodClassBuilds PodClass = "builds"
34-
PodClassTests PodClass = "tests"
35-
PodClassLongTests PodClass = "longtests"
36-
PodClassProwJobs PodClass = "prowjobs"
37-
PodClassNone PodClass = ""
33+
PodClassBuilds PodClass = "builds"
34+
PodClassBuildsTmpfs PodClass = "builds-tmpfs"
35+
PodClassTests PodClass = "tests"
36+
PodClassLongTests PodClass = "longtests"
37+
PodClassProwJobs PodClass = "prowjobs"
38+
PodClassNone PodClass = ""
3839

3940
// MachineDeleteAnnotationKey When a machine is annotated with this and the machineset is scaled down,
4041
// it will target machines with this annotation to satisfy the change.

0 commit comments

Comments
 (0)