Skip to content

Commit 33d2d8c

Browse files
Nathanael Liechtishraddhabang
Nathanael Liechti
authored andcommitted
fix: ca-filter causing expontentially more api-calls (kubernetes-sigs#3608)
due to missing cache
1 parent ca11ce5 commit 33d2d8c

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

pkg/ingress/cert_discovery.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package ingress
22

33
import (
44
"context"
5-
"slices"
65
"strings"
76
"sync"
87
"time"
@@ -16,6 +15,7 @@ import (
1615
"github.com/pkg/errors"
1716
"k8s.io/apimachinery/pkg/util/cache"
1817
"k8s.io/apimachinery/pkg/util/sets"
18+
"k8s.io/utils/strings/slices"
1919
"sigs.k8s.io/aws-load-balancer-controller/pkg/aws/services"
2020
)
2121

@@ -153,18 +153,18 @@ func (d *acmCertDiscovery) loadDomainsForCertificate(ctx context.Context, certAR
153153
certDetail := resp.Certificate
154154

155155
// check if cert is issued from an allowed CA
156+
// otherwise empty-out the list of domains
157+
domains := sets.String{}
156158
if len(d.allowedCAARNs) == 0 || slices.Contains(d.allowedCAARNs, awssdk.StringValue(certDetail.CertificateAuthorityArn)) {
157-
domains := sets.NewString(aws.StringValueSlice(certDetail.SubjectAlternativeNames)...)
158-
switch aws.StringValue(certDetail.Type) {
159-
case acm.CertificateTypeImported:
160-
d.certDomainsCache.Set(certARN, domains, d.importedCertDomainsCacheTTL)
161-
case acm.CertificateTypeAmazonIssued, acm.CertificateTypePrivate:
162-
d.certDomainsCache.Set(certARN, domains, d.privateCertDomainsCacheTTL)
163-
}
164-
return domains, nil
159+
domains = sets.NewString(aws.StringValueSlice(certDetail.SubjectAlternativeNames)...)
165160
}
166-
return sets.String{}, nil
167-
161+
switch aws.StringValue(certDetail.Type) {
162+
case acm.CertificateTypeImported:
163+
d.certDomainsCache.Set(certARN, domains, d.importedCertDomainsCacheTTL)
164+
case acm.CertificateTypeAmazonIssued, acm.CertificateTypePrivate:
165+
d.certDomainsCache.Set(certARN, domains, d.privateCertDomainsCacheTTL)
166+
}
167+
return domains, nil
168168
}
169169

170170
func (d *acmCertDiscovery) domainMatchesHost(domainName string, tlsHost string) bool {

0 commit comments

Comments
 (0)