mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Merge pull request #124906 from liggitt/pod-list-panic
Fix printPod panic with spurious container statuses
This commit is contained in:
commit
0aa01be424
@ -3207,6 +3207,9 @@ func (list SortableResourceNames) Less(i, j int) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func isRestartableInitContainer(initContainer *api.Container) bool {
|
func isRestartableInitContainer(initContainer *api.Container) bool {
|
||||||
|
if initContainer == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
if initContainer.RestartPolicy == nil {
|
if initContainer.RestartPolicy == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/go-cmp/cmp"
|
"github.com/google/go-cmp/cmp"
|
||||||
|
|
||||||
apiv1 "k8s.io/api/core/v1"
|
apiv1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
@ -50,6 +51,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/apis/storagemigration"
|
"k8s.io/kubernetes/pkg/apis/storagemigration"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
utilpointer "k8s.io/utils/pointer"
|
utilpointer "k8s.io/utils/pointer"
|
||||||
|
"k8s.io/utils/ptr"
|
||||||
)
|
)
|
||||||
|
|
||||||
var containerRestartPolicyAlways = api.ContainerRestartPolicyAlways
|
var containerRestartPolicyAlways = api.ContainerRestartPolicyAlways
|
||||||
@ -1718,6 +1720,32 @@ func TestPrintPodWithRestartableInitContainer(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// Test pod has container statuses for non-existent initContainers and containers
|
||||||
|
api.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: "test4"},
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
InitContainers: []api.Container{
|
||||||
|
{Name: "init1", Image: "initimage"},
|
||||||
|
{Name: "sidecar1", Image: "sidecarimage", RestartPolicy: ptr.To(api.ContainerRestartPolicyAlways)},
|
||||||
|
},
|
||||||
|
Containers: []api.Container{{Name: "container1", Image: "containerimage"}},
|
||||||
|
},
|
||||||
|
Status: api.PodStatus{
|
||||||
|
Phase: "Running",
|
||||||
|
InitContainerStatuses: []api.ContainerStatus{
|
||||||
|
{Name: "initinvalid"},
|
||||||
|
{Name: "init1"},
|
||||||
|
{Name: "sidecar1"},
|
||||||
|
},
|
||||||
|
ContainerStatuses: []api.ContainerStatus{
|
||||||
|
{Name: "containerinvalid"},
|
||||||
|
{Name: "container1"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
[]metav1.TableRow{{Cells: []interface{}{"test4", "0/2", "Init:0/2", "0", "<unknown>"}}},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range tests {
|
for i, test := range tests {
|
||||||
|
Loading…
Reference in New Issue
Block a user