fix panic when watching ReplicationController with AllowWatchBookmarks enabled

This commit is contained in:
xuzhenglun 2024-07-10 12:09:35 +08:00
parent 7127246344
commit 07198b90be
No known key found for this signature in database
GPG Key ID: 43BD51D11716234A
2 changed files with 18 additions and 1 deletions

View File

@ -1126,7 +1126,11 @@ func printReplicationController(obj *api.ReplicationController, options printers
row.Cells = append(row.Cells, obj.Name, int64(desiredReplicas), int64(currentReplicas), int64(readyReplicas), translateTimestampSince(obj.CreationTimestamp))
if options.Wide {
names, images := layoutContainerCells(obj.Spec.Template.Spec.Containers)
var containers []api.Container
if obj.Spec.Template != nil {
containers = obj.Spec.Template.Spec.Containers
}
names, images := layoutContainerCells(containers)
row.Cells = append(row.Cells, names, images, labels.FormatLabels(obj.Spec.Selector))
}
return []metav1.TableRow{row}, nil

View File

@ -4666,6 +4666,19 @@ func TestPrintReplicationController(t *testing.T) {
// Columns: Name, Desired, Current, Ready, Age, Containers, Images, Selector
expected: []metav1.TableRow{{Cells: []interface{}{"rc1", int64(5), int64(3), int64(1), "<unknown>", "test", "test_image", "a=b"}}},
},
{
// make sure Bookmark event will not lead a panic
rc: api.ReplicationController{
ObjectMeta: metav1.ObjectMeta{
Annotations: map[string]string{
metav1.InitialEventsAnnotationKey: "true",
},
},
},
options: printers.GenerateOptions{Wide: true},
// Columns: Name, Desired, Current, Ready, Age, Containers, Images, Selector
expected: []metav1.TableRow{{Cells: []interface{}{"", int64(0), int64(0), int64(0), "<unknown>", "", "", "<none>"}}},
},
}
for i, test := range tests {