From a262b2762afb4343c80a728dc73e85971115b807 Mon Sep 17 00:00:00 2001 From: Patrick Rhomberg Date: Thu, 23 Apr 2020 19:02:34 +0000 Subject: [PATCH 1/2] Improve error message when refresh token expiry is nil. Add test coverage for this case. --- pkg/kubelet/token/token_manager.go | 4 +++- pkg/kubelet/token/token_manager_test.go | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/token/token_manager.go b/pkg/kubelet/token/token_manager.go index 72c067f74ac..49f58fae564 100644 --- a/pkg/kubelet/token/token_manager.go +++ b/pkg/kubelet/token/token_manager.go @@ -168,7 +168,9 @@ func (m *Manager) expired(t *authenticationv1.TokenRequest) bool { // ttl, or if the token is older than 24 hours. func (m *Manager) requiresRefresh(tr *authenticationv1.TokenRequest) bool { if tr.Spec.ExpirationSeconds == nil { - klog.Errorf("expiration seconds was nil for tr: %#v", tr) + cpy := tr.DeepCopy() + cpy.Status.Token = "" + klog.Errorf("expiration seconds was nil for tr: %#v", cpy) return false } now := m.clock.Now() diff --git a/pkg/kubelet/token/token_manager_test.go b/pkg/kubelet/token/token_manager_test.go index 3bf7724cd9a..1344f45915f 100644 --- a/pkg/kubelet/token/token_manager_test.go +++ b/pkg/kubelet/token/token_manager_test.go @@ -130,6 +130,7 @@ func TestRequiresRefresh(t *testing.T) { cases := []struct { now, exp time.Time expectRefresh bool + requestTweaks func(*authenticationv1.TokenRequest) }{ { now: start.Add(10 * time.Minute), @@ -151,6 +152,15 @@ func TestRequiresRefresh(t *testing.T) { exp: start.Add(60 * time.Minute), expectRefresh: true, }, + { + now: start.Add(0 * time.Minute), + // expiry will be overwritten by the tweak below. + exp: start.Add(60 * time.Minute), + expectRefresh: false, + requestTweaks: func(tr *authenticationv1.TokenRequest) { + tr.Spec.ExpirationSeconds = nil + }, + }, } for i, c := range cases { @@ -165,6 +175,11 @@ func TestRequiresRefresh(t *testing.T) { ExpirationTimestamp: metav1.Time{Time: c.exp}, }, } + + if c.requestTweaks != nil { + c.requestTweaks(tr) + } + mgr := NewManager(nil) mgr.clock = clock From 5ea1cef4c58dd3946e578c41d5f0b18b79ae5e68 Mon Sep 17 00:00:00 2001 From: Patrick Rhomberg Date: Thu, 23 Apr 2020 23:32:04 +0000 Subject: [PATCH 2/2] gofmt fix. --- pkg/kubelet/token/token_manager_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/kubelet/token/token_manager_test.go b/pkg/kubelet/token/token_manager_test.go index 1344f45915f..a92ed4412c9 100644 --- a/pkg/kubelet/token/token_manager_test.go +++ b/pkg/kubelet/token/token_manager_test.go @@ -153,8 +153,8 @@ func TestRequiresRefresh(t *testing.T) { expectRefresh: true, }, { - now: start.Add(0 * time.Minute), // expiry will be overwritten by the tweak below. + now: start.Add(0 * time.Minute), exp: start.Add(60 * time.Minute), expectRefresh: false, requestTweaks: func(tr *authenticationv1.TokenRequest) {