diff --git a/internal/ingress/annotations/proxyssl/main.go b/internal/ingress/annotations/proxyssl/main.go index c40bc85e0..27fbeb607 100644 --- a/internal/ingress/annotations/proxyssl/main.go +++ b/internal/ingress/annotations/proxyssl/main.go @@ -17,6 +17,7 @@ limitations under the License. package proxyssl import ( + "errors" "fmt" "regexp" "sort" @@ -190,28 +191,28 @@ func (p proxySSL) Parse(ing *networking.Ingress) (interface{}, error) { config := &Config{} proxysslsecret, err := parser.GetStringAnnotation(proxySSLSecretAnnotation, ing, p.annotationConfig.Annotations) - if err != nil { + if err != nil && !errors.Is(err, ing_errors.ErrMissingAnnotations) { return &Config{}, err - } + } else if err == nil { + ns, _, err := k8s.ParseNameNS(proxysslsecret) + if err != nil { + return &Config{}, ing_errors.NewLocationDenied(err.Error()) + } - ns, _, err := k8s.ParseNameNS(proxysslsecret) - if err != nil { - return &Config{}, ing_errors.NewLocationDenied(err.Error()) - } + secCfg := p.r.GetSecurityConfiguration() + // We don't accept different namespaces for secrets. + if !secCfg.AllowCrossNamespaceResources && ns != ing.Namespace { + return &Config{}, ing_errors.NewLocationDenied("cross namespace secrets are not supported") + } - secCfg := p.r.GetSecurityConfiguration() - // We don't accept different namespaces for secrets. - if !secCfg.AllowCrossNamespaceResources && ns != ing.Namespace { - return &Config{}, ing_errors.NewLocationDenied("cross namespace secrets are not supported") + proxyCert, err := p.r.GetAuthCertificate(proxysslsecret) + if err != nil { + e := fmt.Errorf("error obtaining certificate: %w", err) + return &Config{}, ing_errors.LocationDeniedError{Reason: e} + } + config.AuthSSLCert = *proxyCert } - proxyCert, err := p.r.GetAuthCertificate(proxysslsecret) - if err != nil { - e := fmt.Errorf("error obtaining certificate: %w", err) - return &Config{}, ing_errors.LocationDeniedError{Reason: e} - } - config.AuthSSLCert = *proxyCert - config.Ciphers, err = parser.GetStringAnnotation(proxySSLCiphersAnnotation, ing, p.annotationConfig.Annotations) if err != nil { if ing_errors.IsValidationError(err) {