@@ -201,6 +201,12 @@ func mutatePod(w http.ResponseWriter, r *http.Request) {
201
201
}
202
202
}
203
203
204
+ if podClass == PodClassBuilds &&
205
+ strings .HasPrefix (podName , "hypershift" ) &&
206
+ strings .HasSuffix (podName , "amd64-build" ) {
207
+ podClass = PodClassBuildsTmpfs
208
+ }
209
+
204
210
if podClass != PodClassNone {
205
211
profile ("classified request" )
206
212
@@ -347,6 +353,22 @@ func mutatePod(w http.ResponseWriter, r *http.Request) {
347
353
addPatchEntry ("add" , "/spec/affinity" , unstructuredAffinity )
348
354
}
349
355
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
+
350
372
// There is currently an issue with cluster scale up where pods are stacked up, unschedulable.
351
373
// A machine is provisioned. As soon as the machine is provisioned, pods are scheduled to the
352
374
// node and they begin to run before DNS daemonset pods can successfully configure the pod.
0 commit comments