diff --git a/pkg/controller/core/workload_controller.go b/pkg/controller/core/workload_controller.go index ffbc1e1581..b899386ef7 100644 --- a/pkg/controller/core/workload_controller.go +++ b/pkg/controller/core/workload_controller.go @@ -194,25 +194,26 @@ func (r *WorkloadReconciler) Reconcile(ctx context.Context, req ctrl.Request) (c } if features.Enabled(features.DynamicallySizedJobs) && ptr.Deref(wl.Status.Admission.PodSetAssignments[1].Count, 0) != wl.Spec.PodSets[1].Count { + // Get Memory and CPU values originalMemoryPerPod := wl.Spec.PodSets[1].Template.Spec.Containers[0].Resources.Requests.Memory() - originalCpuPerPod := wl.Spec.PodSets[1].Template.Spec.Containers[0].Resources.Requests.Cpu() - currentMemoryPerPod := wl.Status.Admission.PodSetAssignments[1].ResourceUsage.Memory() - currentCpuPerPod := wl.Status.Admission.PodSetAssignments[1].ResourceUsage.Cpu() + currentAssignedMemoryPerPod := wl.Status.Admission.PodSetAssignments[1].ResourceUsage.Memory() + currentAssignedCpuPerPod := wl.Status.Admission.PodSetAssignments[1].ResourceUsage.Cpu() diff := ptr.Deref(wl.Status.Admission.PodSetAssignments[1].Count, 0) - wl.Spec.PodSets[1].Count originalMemoryPerPod.Mul(int64(diff)) - originalCpuPerPod.Mul(int64(diff)) - currentMemoryPerPod.Sub(*originalMemoryPerPod) - currentCpuPerPod.Sub(*originalCpuPerPod) + currentAssignedMemoryPerPod.Sub(*originalMemoryPerPod) + currentAssignedCpuPerPod.Sub(*originalCpuPerPod) wl.Status.Admission.PodSetAssignments[1].Count = ptr.To(wl.Spec.PodSets[1].Count) wl.Status.Admission.PodSetAssignments[1].ResourceUsage = corev1.ResourceList{ - corev1.ResourceMemory: *currentMemoryPerPod, - corev1.ResourceCPU: *currentCpuPerPod, + corev1.ResourceMemory: *currentAssignedMemoryPerPod, + corev1.ResourceCPU: *currentAssignedCpuPerPod, } + + // Update Status workload.SyncAdmittedCondition(&wl) if err := workload.ApplyAdmissionStatus(ctx, r.client, &wl, true); err != nil { return ctrl.Result{}, err