@@ -86,6 +86,19 @@ def get_deployment(self, name: str, namespace: str):
8686 """Fetch the deployment configuration."""
8787 return self .apps_v1_api .read_namespaced_deployment (name , namespace )
8888
89+ @staticmethod
90+ def _pod_is_ready_or_succeeded (pod ):
91+ """Return True when a pod is ready or has completed successfully."""
92+ status = getattr (pod , "status" , None )
93+ if getattr (status , "phase" , None ) == "Succeeded" :
94+ return True
95+
96+ container_statuses = getattr (status , "container_statuses" , None )
97+ return bool (container_statuses ) and all (
98+ getattr (container_status , "ready" , False )
99+ for container_status in container_statuses
100+ )
101+
89102 def wait_for_ready (self , namespace , sleep = 2 , max_wait = 300 ):
90103 """Wait for all pods in a namespace to be in a Ready state before proceeding."""
91104
@@ -102,8 +115,7 @@ def wait_for_ready(self, namespace, sleep=2, max_wait=300):
102115 if pod_list .items :
103116 ready_pods = [
104117 pod for pod in pod_list .items
105- if pod .status .container_statuses and
106- all (cs .ready for cs in pod .status .container_statuses )
118+ if self ._pod_is_ready_or_succeeded (pod )
107119 ]
108120
109121 if len (ready_pods ) == len (pod_list .items ):
0 commit comments