mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 04:33:26 +00:00
Merge pull request #99569 from pacoxu/default-container/kep-1
kubectl logs: don't check default container annotation if --all-containers is specified
This commit is contained in:
commit
b032ebac8e
@ -73,30 +73,31 @@ func logsForObjectWithClient(clientset corev1client.CoreV1Interface, object, opt
|
|||||||
return ret, nil
|
return ret, nil
|
||||||
|
|
||||||
case *corev1.Pod:
|
case *corev1.Pod:
|
||||||
// in case the "kubectl.kubernetes.io/default-container" annotation is present, we preset the opts.Containers to default to selected
|
|
||||||
// container. This gives users ability to preselect the most interesting container in pod.
|
|
||||||
if annotations := t.GetAnnotations(); annotations != nil && len(opts.Container) == 0 {
|
|
||||||
var containerName string
|
|
||||||
if len(annotations[defaultLogsContainerAnnotationName]) > 0 {
|
|
||||||
containerName = annotations[defaultLogsContainerAnnotationName]
|
|
||||||
fmt.Fprintf(os.Stderr, "Using deprecated annotation `kubectl.kubernetes.io/default-logs-container` in pod/%v. Please use `kubectl.kubernetes.io/default-container` instead\n", t.Name)
|
|
||||||
} else if len(annotations[podutils.DefaultContainerAnnotationName]) > 0 {
|
|
||||||
containerName = annotations[podutils.DefaultContainerAnnotationName]
|
|
||||||
}
|
|
||||||
if len(containerName) > 0 {
|
|
||||||
if exists, _ := podutils.FindContainerByName(t, containerName); exists != nil {
|
|
||||||
opts.Container = containerName
|
|
||||||
} else {
|
|
||||||
fmt.Fprintf(os.Stderr, "Default container name %q not found in a pod\n", containerName)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// if allContainers is true, then we're going to locate all containers and then iterate through them. At that point, "allContainers" is false
|
// if allContainers is true, then we're going to locate all containers and then iterate through them. At that point, "allContainers" is false
|
||||||
if !allContainers {
|
if !allContainers {
|
||||||
|
// in case the "kubectl.kubernetes.io/default-container" annotation is present, we preset the opts.Containers to default to selected
|
||||||
|
// container. This gives users ability to preselect the most interesting container in pod.
|
||||||
|
if annotations := t.GetAnnotations(); annotations != nil && len(opts.Container) == 0 {
|
||||||
|
var containerName string
|
||||||
|
if len(annotations[defaultLogsContainerAnnotationName]) > 0 {
|
||||||
|
containerName = annotations[defaultLogsContainerAnnotationName]
|
||||||
|
fmt.Fprintf(os.Stderr, "Using deprecated annotation `kubectl.kubernetes.io/default-logs-container` in pod/%v. Please use `kubectl.kubernetes.io/default-container` instead\n", t.Name)
|
||||||
|
} else if len(annotations[podutils.DefaultContainerAnnotationName]) > 0 {
|
||||||
|
containerName = annotations[podutils.DefaultContainerAnnotationName]
|
||||||
|
}
|
||||||
|
if len(containerName) > 0 {
|
||||||
|
if exists, _ := podutils.FindContainerByName(t, containerName); exists != nil {
|
||||||
|
opts.Container = containerName
|
||||||
|
} else {
|
||||||
|
fmt.Fprintf(os.Stderr, "Default container name %q not found in a pod\n", containerName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var containerName string
|
var containerName string
|
||||||
if opts == nil || len(opts.Container) == 0 {
|
if opts == nil || len(opts.Container) == 0 {
|
||||||
// We don't know container name. In this case we expect only one container to be present in the pod (ignoring InitContainers).
|
// We don't know container name. In this case we expect only one container to be present in the pod (ignoring InitContainers).
|
||||||
// If there is more than one container we should return an error showing all container names.
|
// If there is more than one container, we should return an error showing all container names.
|
||||||
if len(t.Spec.Containers) != 1 {
|
if len(t.Spec.Containers) != 1 {
|
||||||
containerNames := getContainerNames(t.Spec.Containers)
|
containerNames := getContainerNames(t.Spec.Containers)
|
||||||
initContainerNames := getContainerNames(t.Spec.InitContainers)
|
initContainerNames := getContainerNames(t.Spec.InitContainers)
|
||||||
|
Loading…
Reference in New Issue
Block a user