Skip to content

Commit fc3cddf

Browse files
committed
apply suggestions
1 parent 5ef3486 commit fc3cddf

File tree

2 files changed

+42
-36
lines changed

2 files changed

+42
-36
lines changed

internal/controller/gateway_controller.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -231,16 +231,19 @@ func (r *GatewayReconciler) processListenerConfig(tctx *translator.TranslateCont
231231
if ref.Namespace != nil {
232232
ns = string(*ref.Namespace)
233233
}
234-
if err := r.Get(context.Background(), client.ObjectKey{
235-
Namespace: ns,
236-
Name: string(ref.Name),
237-
}, &secret); err != nil {
238-
log.Error(err, "failed to get secret", "namespace", ns, "name", string(ref.Name))
239-
terror = err
240-
break
234+
if ref.Kind != nil && *ref.Kind == gatewayv1.Kind("Secret") {
235+
if err := r.Get(context.Background(), client.ObjectKey{
236+
Namespace: ns,
237+
Name: string(ref.Name),
238+
}, &secret); err != nil {
239+
log.Error(err, "failed to get secret", "namespace", ns, "name", string(ref.Name))
240+
terror = err
241+
break
242+
}
243+
log.Info("Setting secret for listener", "listener", listener.Name, "secret", secret.Name, " namespace", ns)
244+
tctx.Secrets[types.NamespacedName{Namespace: ns, Name: string(ref.Name)}] = &secret
241245
}
242-
log.Info("Setting secret for listener", "listener", listener.Name, "secret", secret.Name, " namespace", ns)
243-
tctx.Secrets[types.NamespacedName{Namespace: ns, Name: string(ref.Name)}] = &secret
246+
244247
}
245248
}
246249
return terror

internal/controlplane/translator/gateway.go

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -45,34 +45,37 @@ func (t *Translator) translateSecret(tctx *TranslateContext, listener gatewayv1.
4545
if ref.Namespace != nil {
4646
ns = string(*ref.Namespace)
4747
}
48-
sslObj := &v1.Ssl{
49-
Snis: []string{},
48+
if listener.TLS.CertificateRefs[0].Kind != nil && *listener.TLS.CertificateRefs[0].Kind == "Secret" {
49+
sslObj := &v1.Ssl{
50+
Snis: []string{},
51+
}
52+
name := listener.TLS.CertificateRefs[0].Name
53+
secret := tctx.Secrets[types.NamespacedName{Namespace: ns, Name: string(ref.Name)}]
54+
if secret.Data == nil {
55+
log.Error("secret data is nil", "secret", secret)
56+
return nil, fmt.Errorf("no secret data found for %s/%s", ns, name)
57+
}
58+
cert, key, err := extractKeyPair(secret, true)
59+
if err != nil {
60+
return nil, err
61+
}
62+
sslObj.Cert = string(cert)
63+
sslObj.Key = string(key)
64+
// Dashboard doesn't allow wildcard hostname
65+
if listener.Hostname != nil && *listener.Hostname != "" {
66+
sslObj.Snis = append(sslObj.Snis, string(*listener.Hostname))
67+
}
68+
hosts, err := extractHost(cert)
69+
if err != nil {
70+
return nil, err
71+
}
72+
sslObj.Snis = append(sslObj.Snis, hosts...)
73+
// Note: Dashboard doesn't allow duplicate certificate across ssl objects
74+
sslObj.ID = id.GenID(sslObj.Cert)
75+
sslObj.Labels = label.GenLabel(obj)
76+
sslObjs = append(sslObjs, sslObj)
5077
}
51-
name := listener.TLS.CertificateRefs[0].Name
52-
secret := tctx.Secrets[types.NamespacedName{Namespace: ns, Name: string(ref.Name)}]
53-
if secret.Data == nil {
54-
log.Error("secret data is nil", "secret", secret)
55-
return nil, fmt.Errorf("no secret data found for %s/%s", ns, name)
56-
}
57-
cert, key, err := extractKeyPair(secret, true)
58-
if err != nil {
59-
return nil, err
60-
}
61-
sslObj.Cert = string(cert)
62-
sslObj.Key = string(key)
63-
// Dashboard doesn't allow wildcard hostname
64-
if listener.Hostname != nil && *listener.Hostname != "" {
65-
sslObj.Snis = append(sslObj.Snis, string(*listener.Hostname))
66-
}
67-
hosts, err := extractHost(cert)
68-
if err != nil {
69-
return nil, err
70-
}
71-
sslObj.Snis = append(sslObj.Snis, hosts...)
72-
// Note: Dashboard doesn't allow duplicate certificate across ssl objects
73-
sslObj.ID = id.GenID(sslObj.Cert)
74-
sslObj.Labels = label.GenLabel(obj)
75-
sslObjs = append(sslObjs, sslObj)
78+
7679
}
7780
// Only supported on TLSRoute. The certificateRefs field is ignored in this mode.
7881
case gatewayv1.TLSModePassthrough:

0 commit comments

Comments
 (0)