From c4ab2d24023169bec02ca9f1e70f69964a15f235 Mon Sep 17 00:00:00 2001 From: lowang_bh Date: Wed, 19 Apr 2023 10:48:02 +0800 Subject: [PATCH] fix: keep updating task's min available number same as creating podgroup fix pg not exist when get by client due to it is not added Signed-off-by: lowang_bh --- pkg/controllers/job/job_controller_actions.go | 11 ++++++----- pkg/controllers/job/job_controller_actions_test.go | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/controllers/job/job_controller_actions.go b/pkg/controllers/job/job_controller_actions.go index 9dad507b4e..22053f0dd6 100644 --- a/pkg/controllers/job/job_controller_actions.go +++ b/pkg/controllers/job/job_controller_actions.go @@ -718,20 +718,21 @@ func (cc *jobcontroller) createOrUpdatePodGroup(job *batch.Job) error { } for _, task := range job.Spec.Tasks { - if task.MinAvailable == nil { - continue + cnt := task.Replicas + if task.MinAvailable != nil { + cnt = *task.MinAvailable } if taskMember, ok := pg.Spec.MinTaskMember[task.Name]; !ok { pgShouldUpdate = true - pg.Spec.MinTaskMember[task.Name] = *task.MinAvailable + pg.Spec.MinTaskMember[task.Name] = cnt } else { - if taskMember == *task.MinAvailable { + if taskMember == cnt { continue } pgShouldUpdate = true - pg.Spec.MinTaskMember[task.Name] = *task.MinAvailable + pg.Spec.MinTaskMember[task.Name] = cnt } } diff --git a/pkg/controllers/job/job_controller_actions_test.go b/pkg/controllers/job/job_controller_actions_test.go index 687b965d32..e177ac74f5 100644 --- a/pkg/controllers/job/job_controller_actions_test.go +++ b/pkg/controllers/job/job_controller_actions_test.go @@ -282,6 +282,7 @@ func TestSyncJobFunc(t *testing.T) { testcase.JobInfo.Job.Spec.Plugins = jobPlugins fakeController.pgInformer.Informer().GetIndexer().Add(testcase.PodGroup) + fakeController.vcClient.SchedulingV1beta1().PodGroups(testcase.PodGroup.Namespace).Create(context.TODO(), testcase.PodGroup, metav1.CreateOptions{}) for _, pod := range testcase.Pods { _, err := fakeController.kubeClient.CoreV1().Pods(namespace).Create(context.TODO(), pod, metav1.CreateOptions{})