From 9f162cbe4dafaa49352351dd819ff22496aa34b8 Mon Sep 17 00:00:00 2001 From: Adam Grare Date: Thu, 25 Jul 2024 16:45:12 -0400 Subject: [PATCH] Set MiqWorker system_uid if missing on kubernetes --- .../miq_server/worker_management/kubernetes.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/models/miq_server/worker_management/kubernetes.rb b/app/models/miq_server/worker_management/kubernetes.rb index 4a87de6822b..cf3cae94231 100644 --- a/app/models/miq_server/worker_management/kubernetes.rb +++ b/app/models/miq_server/worker_management/kubernetes.rb @@ -21,7 +21,20 @@ def sync_from_system end def sync_starting_workers + # Get a list of pods that aren't currently assigned to MiqWorker records + pods_without_workers = current_pods.keys - MiqWorker.server_scope.pluck(:system_uid).compact + MiqWorker.find_all_starting.reject(&:rails_worker?).each do |worker| + # If the current worker doesn't have a system_uid assigned then find the first + # pod available for our worker type and link them up. + if worker.system_uid.nil? + system_uid = pods_without_workers.detect { |pod_name| pod_name.start_with?(worker.worker_deployment_name) } + if system_uid + pods_without_workers.delete(system_uid) + worker.update!(:system_uid => system_uid) + end + end + worker_pod = current_pods[worker.system_uid] next if worker_pod.nil?