From e36d54ce623221eb30baba5c5ea76206a2823e33 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 9 Sep 2021 18:55:40 +0200 Subject: [PATCH] component-base: test json output for KObj and KObjs Thanks to the new klog, logr and zapr releases, ObjectRef is now logged as struct in JSON output. --- .../component-base/logs/json/klog_test.go | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/staging/src/k8s.io/component-base/logs/json/klog_test.go b/staging/src/k8s.io/component-base/logs/json/klog_test.go index 3b0f31ce12e..ae6441ff3cf 100644 --- a/staging/src/k8s.io/component-base/logs/json/klog_test.go +++ b/staging/src/k8s.io/component-base/logs/json/klog_test.go @@ -31,6 +31,20 @@ import ( "k8s.io/klog/v2" ) +type kmeta struct { + Name, Namespace string +} + +func (k kmeta) GetName() string { + return k.Name +} + +func (k kmeta) GetNamespace() string { + return k.Namespace +} + +var _ klog.KMetadata = kmeta{} + func TestKlogIntegration(t *testing.T) { timeNow = func() time.Time { return time.Date(1970, time.January, 1, 0, 0, 0, 123, time.UTC) @@ -130,6 +144,24 @@ func TestKlogIntegration(t *testing.T) { }, format: `{"ts":%f,"caller":"json/klog_test.go:%d","msg":"test","v":0,"count":1}`, }, + { + name: "KObj", + fun: func() { + klog.InfoS("some", "pod", klog.KObj(&kmeta{Name: "pod-1", Namespace: "kube-system"})) + }, + format: `{"ts":%f,"caller":"json/klog_test.go:%d","msg":"some","v":0,"pod":{"name":"pod-1","namespace":"kube-system"}}`, + }, + { + name: "KObjs", + fun: func() { + klog.InfoS("several", "pods", + klog.KObjs([]interface{}{ + &kmeta{Name: "pod-1", Namespace: "kube-system"}, + &kmeta{Name: "pod-2", Namespace: "kube-system"}, + })) + }, + format: `{"ts":%f,"caller":"json/klog_test.go:%d","msg":"several","v":0,"pods":[{"name":"pod-1","namespace":"kube-system"},{"name":"pod-2","namespace":"kube-system"}]}`, + }, { name: "Warning", fun: func() {