diff --git a/config/components/manager/controller_manager_config.yaml b/config/components/manager/controller_manager_config.yaml index 15adb60561..e698ecf762 100644 --- a/config/components/manager/controller_manager_config.yaml +++ b/config/components/manager/controller_manager_config.yaml @@ -13,7 +13,7 @@ leaderElection: controller: groupKindConcurrency: Job.batch: 5 - Pod.: 5 + Pod: 5 Workload.kueue.x-k8s.io: 5 LocalQueue.kueue.x-k8s.io: 1 ClusterQueue.kueue.x-k8s.io: 1 diff --git a/pkg/controller/jobs/pod/pod_controller.go b/pkg/controller/jobs/pod/pod_controller.go index f5c79a33b9..542d11473e 100644 --- a/pkg/controller/jobs/pod/pod_controller.go +++ b/pkg/controller/jobs/pod/pod_controller.go @@ -43,6 +43,7 @@ import ( "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" kueue "sigs.k8s.io/kueue/apis/kueue/v1beta1" @@ -108,9 +109,14 @@ func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu } func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error { + concurrency := mgr.GetControllerOptions().GroupKindConcurrency[gvk.GroupKind().String()] + ctrl.Log.V(3).Info("Setting up Pod reconciler", "concurrency", concurrency) return ctrl.NewControllerManagedBy(mgr). Watches(&corev1.Pod{}, &podEventHandler{cleanedUpPodsExpectations: r.expectationsStore}).Named("v1_pod"). Watches(&kueue.Workload{}, &workloadHandler{}). + WithOptions(controller.Options{ + MaxConcurrentReconciles: concurrency, + }). Complete(r) }