From 90bf01fb23dd24432bfc9a4bf4ea9d23c3ec5a92 Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:28:05 +0100 Subject: [PATCH] Decrease cpu requests by 25% --- apps/kubernetes-provider/src/index.ts | 49 ++++++++++++++------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/apps/kubernetes-provider/src/index.ts b/apps/kubernetes-provider/src/index.ts index 437fcdd31..3fab373f5 100644 --- a/apps/kubernetes-provider/src/index.ts +++ b/apps/kubernetes-provider/src/index.ts @@ -14,7 +14,6 @@ import { PreStopCauses, EnvironmentType, } from "@trigger.dev/core/v3"; -import { randomUUID } from "crypto"; import { TaskMonitor } from "./taskMonitor"; import { PodCleaner } from "./podCleaner"; import { UptimeHeartbeat } from "./uptimeHeartbeat"; @@ -41,7 +40,7 @@ type Namespace = { }; }; -type ComputeResources = { +type ResourceQuantities = { [K in "cpu" | "memory" | "ephemeral-storage"]?: string; }; @@ -166,15 +165,7 @@ class KubernetesTaskOperations implements TaskOperations { containerPort: 8000, }, ], - resources: { - requests: { - ...this.#defaultResourceRequests, - }, - limits: { - ...this.#defaultResourceLimits, - ...this.#getResourcesFromMachineConfig(opts.machine), - }, - }, + resources: this.#getResourcesForMachine(opts.machine), lifecycle: { preStop: { exec: { @@ -265,15 +256,7 @@ class KubernetesTaskOperations implements TaskOperations { containerPort: 8000, }, ], - resources: { - requests: { - ...this.#defaultResourceRequests, - }, - limits: { - ...this.#defaultResourceLimits, - ...this.#getResourcesFromMachineConfig(opts.machine), - }, - }, + resources: this.#getResourcesForMachine(opts.machine), lifecycle: { postStart: { exec: { @@ -414,13 +397,13 @@ class KubernetesTaskOperations implements TaskOperations { }; } - get #defaultResourceRequests(): ComputeResources { + get #defaultResourceRequests(): ResourceQuantities { return { "ephemeral-storage": "2Gi", }; } - get #defaultResourceLimits(): ComputeResources { + get #defaultResourceLimits(): ResourceQuantities { return { "ephemeral-storage": "10Gi", }; @@ -486,13 +469,33 @@ class KubernetesTaskOperations implements TaskOperations { }; } - #getResourcesFromMachineConfig(preset: MachinePreset): ComputeResources { + #getResourceRequestsForMachine(preset: MachinePreset): ResourceQuantities { + return { + cpu: `${preset.cpu * 0.75}`, + memory: `${preset.memory}G`, + }; + } + + #getResourceLimitsForMachine(preset: MachinePreset): ResourceQuantities { return { cpu: `${preset.cpu}`, memory: `${preset.memory}G`, }; } + #getResourcesForMachine(preset: MachinePreset): k8s.V1ResourceRequirements { + return { + requests: { + ...this.#defaultResourceRequests, + ...this.#getResourceRequestsForMachine(preset), + }, + limits: { + ...this.#defaultResourceLimits, + ...this.#getResourceLimitsForMachine(preset), + }, + }; + } + #getLifecycleCommand( type: THookType, cause: THookType extends "postStart" ? PostStartCauses : PreStopCauses