func()

in internal/kubectl.go [402:424]


func (c Kubectl) requestLogs(pod corev1.Pod, out func(string) (io.Writer, error)) error {
	// if Pod not in running state let's not extract logs, trying to get logs from previous container does not seem to work
	// reliably and might lead to extra misleading noise in the diagnostic data
	if pod.Status.Phase != corev1.PodRunning {
		return nil
	}

	logFn := polymorphichelpers.LogsForObjectFn
	reqs, err := logFn(c.factory, &pod, &corev1.PodLogOptions{}, 20*time.Second, true)
	if err != nil {
		return err
	}
	writer, err := out(archive.Path(pod.Namespace, "pod", pod.Name, "logs.txt"))
	if err != nil {
		return err
	}
	for _, r := range reqs {
		if err := streamLogs(types.NamespacedName{Namespace: pod.Namespace, Name: pod.Name}, r, writer); err != nil {
			return err
		}
	}
	return nil
}