Merge TLS only if TLS factory is set

Since `storage.tls` is optional, we should check it existence before
calling its methods.
This commit is contained in:
Weihang Lo 2021-07-12 18:24:21 +08:00
parent 9865ae859c
commit b45d8a455e
No known key found for this signature in database
GPG Key ID: E278F18FE21F0701

View File

@ -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