Skip to content

Commit 92730bc

Browse files
isaacisaachawley
authored andcommitted
Improve performance by using cached secrets
Querying the api for secrets here significantly slows down the creation of ingress objects. In most cases we will already have the secret in a store.
1 parent d0a2e1d commit 92730bc

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

internal/controller/controller.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -882,10 +882,17 @@ func (lbc *LoadBalancerController) createIngress(ing *extensions.Ingress) (*ngin
882882
ingEx.TLSSecrets = make(map[string]*api_v1.Secret)
883883
for _, tls := range ing.Spec.TLS {
884884
secretName := tls.SecretName
885-
secret, err := lbc.client.Core().Secrets(ing.Namespace).Get(secretName, meta_v1.GetOptions{})
885+
secretKey := ing.Namespace + "/" + secretName
886+
887+
secretObject, secretExists, err := lbc.secretLister.GetByKey(secretKey)
886888
if err != nil {
887-
return nil, fmt.Errorf("Error retrieving secret %v for Ingress %v: %v", secretName, ing.Name, err)
889+
return nil, fmt.Errorf("error getting secret %v from store: %v", secretKey, err)
890+
}
891+
if !secretExists {
892+
return nil, fmt.Errorf("secret %v not found for Ingress %v", secretKey, ing.Name)
888893
}
894+
secret := secretObject.(*api_v1.Secret)
895+
889896
err = nginx.ValidateTLSSecret(secret)
890897
if err != nil {
891898
return nil, fmt.Errorf("Error validating secret %v for Ingress %v: %v", secretName, ing.Name, err)

0 commit comments

Comments
 (0)