func()

in benchmarks/benchmark/tools/model-load-benchmark/k8sclient/k8sclient.go [94:126]


func (k *Client) DeletePod(pod *v1.Pod) error {
	exists, err := k.PodExists(pod.Name, pod.Namespace)
	if err != nil {
		return fmt.Errorf("failed to check if pod exists: %v", err)
	}
	if !exists {
		return nil
	}

	currentPod, err := k.client.CoreV1().Pods(pod.Namespace).Get(context.TODO(), pod.Name, metav1.GetOptions{})
	if err != nil {
		return fmt.Errorf("failed to get pod: %v", err)
	}
	// Delete the pod if it's not already being deleted
	if currentPod.DeletionTimestamp == nil {
		err = k.client.CoreV1().Pods(pod.Namespace).Delete(context.TODO(), pod.Name, metav1.DeleteOptions{})
		if err != nil {
			return fmt.Errorf("failed to delete pod %s in namespace %s: %v", pod.Name, pod.Namespace, err)
		}
	}

	// Wait for the pod to be deleted
	for {
		exists, err := k.PodExists(pod.Name, pod.Namespace)
		if err != nil {
			return fmt.Errorf("failed to check if pod exists: %v", err)
		}
		if !exists {
			return nil
		}
		time.Sleep(5 * time.Second)
	}
}