in internal/stackdiag.go [236:257]
func (ds *diagJobState) extractFromRemote(pod *corev1.Pod, file *archive.ZipFile) {
job, found := ds.jobs[pod.Name]
if !found {
file.AddError(fmt.Errorf("no job for Pod %s/%s", pod.Namespace, pod.Name))
return
}
nsn := types.NamespacedName{Namespace: pod.Namespace, Name: pod.Name}
reader, err := ds.kubectl.Copy(nsn, podMainContainerName, podOutputDir, file.AddError)
if err != nil {
file.AddError(err)
return
}
if err := extraction.UntarIntoZip(reader, job.RemoteSource, file, ds.verbose); err != nil {
file.AddError(err)
return
}
err = ds.completeJob(job)
if err != nil {
file.AddError(err)
return
}
}