From b45d8a455e68c4881aa604e48a11f2001e18e35b Mon Sep 17 00:00:00 2001 From: Weihang Lo Date: Mon, 12 Jul 2021 18:24:21 +0800 Subject: [PATCH] Merge TLS only if TLS factory is set Since `storage.tls` is optional, we should check it existence before calling its methods. --- storage/kubernetes/controller.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/storage/kubernetes/controller.go b/storage/kubernetes/controller.go index 2e82e96..8dd2041 100644 --- a/storage/kubernetes/controller.go +++ b/storage/kubernetes/controller.go @@ -130,23 +130,25 @@ func (s *storage) saveInK8s(secret *v1.Secret) (*v1.Secret, error) { return secret, nil } - if existing, err := s.storage.Get(); err == nil && s.tls != nil { - if newSecret, updated, err := s.tls.Merge(existing, secret); err == nil && updated { - secret = newSecret - } - } - targetSecret, err := s.targetSecret() if err != nil { return nil, err } - if newSecret, updated, err := s.tls.Merge(targetSecret, secret); err != nil { - return nil, err - } else if !updated { - return newSecret, nil - } else { - secret = newSecret + if s.tls != nil { + if existing, err := s.storage.Get(); err == nil { + if newSecret, updated, err := s.tls.Merge(existing, secret); err == nil && updated { + secret = newSecret + } + } + + if newSecret, updated, err := s.tls.Merge(targetSecret, secret); err != nil { + return nil, err + } else if !updated { + return newSecret, nil + } else { + secret = newSecret + } } targetSecret.Annotations = secret.Annotations