Skip to content

Commit 23d9a6b

Browse files
committed
Allow TLSSecrets to be specified under .spec.router.ingress
1 parent 630fa0f commit 23d9a6b

37 files changed

+777
-321
lines changed

api/apps/v1alpha1/common_types.go

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ type Expose struct {
4545
Ingress Ingress `json:"ingress,omitempty"`
4646
}
4747

48-
// +kubebuilder:validation:XValidation:rule="!(has(self.gateway) && has(self.ingressClass))", message="ingressClass and gateway cannot be specified together"
48+
// +kubebuilder:validation:XValidation:rule="!(has(self.gateway) && has(self.ingress))", message="ingress and gateway cannot be specified together"
4949
type Router struct {
5050
// HostDomainName is the domain name of the hostname matched by the router.
51-
// The hostname is constructed as "<nimServiceName>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
52-
// eg. example.com for "<nimServiceName>.example.com"
51+
// The hostname is constructed as "<nimServiceName>.<namespace>.<hostDomainName>", where the <nimServiceName> a subdomain of the matched hostname.
52+
// eg. example.com for "<nimServiceName>.<namespace>.example.com"
5353
// +kubebuilder:validation:MinLength=1
5454
// +kubebuilder:validation:MaxLength=63
5555
// +kubebuilder:validation:Pattern=`^(([a-z0-9][a-z0-9\-]*[a-z0-9])|[a-z0-9]+\.)*([a-z]+|xn\-\-[a-z0-9]+)\.?$`
@@ -58,23 +58,36 @@ type Router struct {
5858
// Annotations for the router, e.g. for ingress class or gateway
5959
Annotations map[string]string `json:"annotations,omitempty"`
6060

61-
// IngressClass is the class of the ingress controller to use for the created ingress.
62-
IngressClass *string `json:"ingressClass,omitempty"`
61+
// Ingress is the ingress controller to use for the created ingress.
62+
Ingress *RouterIngress `json:"ingress,omitempty"`
6363

6464
// Gateway is the gateway to use for the created HTTPRoute.
6565
Gateway *Gateway `json:"gateway,omitempty"`
6666
}
6767

68+
type RouterIngress struct {
69+
// +kubebuilder:validation:MinLength=1
70+
// IngressClass is the ingress class to use for the created ingress.
71+
IngressClass string `json:"ingressClass"`
72+
73+
// TLSSecretName is the name of the secret containing the TLS certificate and key.
74+
TLSSecretName string `json:"tlsSecretName,omitempty"`
75+
}
76+
6877
type Gateway struct {
6978
// +kubebuilder:validation:MinLength=1
7079
// Namespace of the gateway
7180
Namespace string `json:"namespace"`
7281
// +kubebuilder:validation:MinLength=1
7382
// Name of the gateway
7483
Name string `json:"name"`
84+
85+
// +kubebuilder:default:=true
86+
// HTTPRoutesEnabled is a flag to enable HTTPRoutes for the created gateway.
87+
HTTPRoutesEnabled bool `json:"httpRoutesEnabled,omitempty"`
7588
}
7689

77-
// ExposeV1 defines attributes to expose the service.
90+
// DEPRECATED ExposeV1 defines attributes to expose the service.
7891
type ExposeV1 struct {
7992
Service Service `json:"service,omitempty"`
8093
Ingress IngressV1 `json:"ingress,omitempty"`
@@ -106,8 +119,8 @@ type Service struct {
106119
Annotations map[string]string `json:"annotations,omitempty"`
107120
}
108121

122+
// Deprecated: Use .spec.router.ingress instead.
109123
// IngressV1 defines attributes for ingress
110-
//
111124
// +kubebuilder:validation:XValidation:rule="(has(self.spec) && has(self.enabled) && self.enabled) || !has(self.enabled) || !self.enabled", message="spec cannot be nil when ingress is enabled"
112125
type IngressV1 struct {
113126
Enabled *bool `json:"enabled,omitempty"`
@@ -217,8 +230,8 @@ func (i *IngressV1) GenerateNetworkingV1IngressSpec(name string) networkingv1.In
217230
return ingressSpec
218231
}
219232

220-
func (r *Router) GenerateGatewayHTTPRouteSpec(name string) gatewayv1.HTTPRouteSpec {
221-
if r.Gateway == nil {
233+
func (r *Router) GenerateGatewayHTTPRouteSpec(namespace, name string, port int32) gatewayv1.HTTPRouteSpec {
234+
if r.Gateway == nil || !r.Gateway.HTTPRoutesEnabled {
222235
return gatewayv1.HTTPRouteSpec{}
223236
}
224237

@@ -231,15 +244,15 @@ func (r *Router) GenerateGatewayHTTPRouteSpec(name string) gatewayv1.HTTPRouteSp
231244
},
232245
},
233246
},
234-
Hostnames: []gatewayv1.Hostname{gatewayv1.Hostname(r.getHostname(name))},
247+
Hostnames: []gatewayv1.Hostname{gatewayv1.Hostname(r.getHostname(namespace, name))},
235248
Rules: []gatewayv1.HTTPRouteRule{
236249
{
237250
BackendRefs: []gatewayv1.HTTPBackendRef{
238251
{
239252
BackendRef: gatewayv1.BackendRef{
240253
BackendObjectReference: gatewayv1.BackendObjectReference{
241254
Name: gatewayv1.ObjectName(name),
242-
Port: ptr.To(gatewayv1.PortNumber(DefaultAPIPort)),
255+
Port: ptr.To(gatewayv1.PortNumber(port)),
243256
},
244257
},
245258
},
@@ -257,20 +270,20 @@ func (r *Router) GenerateGatewayHTTPRouteSpec(name string) gatewayv1.HTTPRouteSp
257270
}
258271
}
259272

260-
func (r *Router) getHostname(name string) string {
261-
return fmt.Sprintf("%s.%s", name, r.HostDomainName)
273+
func (r *Router) getHostname(namespace, name string) string {
274+
return fmt.Sprintf("%s.%s.%s", name, namespace, r.HostDomainName)
262275
}
263276

264-
func (r *Router) GenerateIngressSpec(name string) networkingv1.IngressSpec {
265-
if r.IngressClass == nil {
277+
func (r *Router) GenerateIngressSpec(namespace, name string) networkingv1.IngressSpec {
278+
if r.Ingress == nil {
266279
return networkingv1.IngressSpec{}
267280
}
268281

269-
return networkingv1.IngressSpec{
270-
IngressClassName: r.IngressClass,
282+
ingressSpec := networkingv1.IngressSpec{
283+
IngressClassName: ptr.To(r.Ingress.IngressClass),
271284
Rules: []networkingv1.IngressRule{
272285
{
273-
Host: r.getHostname(name),
286+
Host: r.getHostname(namespace, name),
274287
IngressRuleValue: networkingv1.IngressRuleValue{
275288
HTTP: &networkingv1.HTTPIngressRuleValue{
276289
Paths: []networkingv1.HTTPIngressPath{
@@ -292,6 +305,16 @@ func (r *Router) GenerateIngressSpec(name string) networkingv1.IngressSpec {
292305
},
293306
},
294307
}
308+
309+
if r.Ingress.TLSSecretName != "" {
310+
ingressSpec.TLS = []networkingv1.IngressTLS{
311+
{
312+
Hosts: []string{r.getHostname(namespace, name)},
313+
SecretName: r.Ingress.TLSSecretName,
314+
},
315+
}
316+
}
317+
return ingressSpec
295318
}
296319

297320
func (r *Expose) GenerateIngressSpec(name string) networkingv1.IngressSpec {

api/apps/v1alpha1/nemo_customizer_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ const (
6767
)
6868

6969
// NemoCustomizerSpec defines the desired state of NemoCustomizer.
70-
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingressClass))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingressClass."
70+
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingress))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingress."
7171
type NemoCustomizerSpec struct {
7272
Image Image `json:"image"`
7373
Command []string `json:"command,omitempty"`
@@ -638,7 +638,7 @@ func (n *NemoCustomizer) IsAutoScalingEnabled() bool {
638638

639639
// IsIngressEnabled returns true if ingress is enabled for NemoCustomizer deployment.
640640
func (n *NemoCustomizer) IsIngressEnabled() bool {
641-
return (n.Spec.Router.IngressClass != nil && *n.Spec.Router.IngressClass != "") ||
641+
return (n.Spec.Router.Ingress != nil && n.Spec.Router.Ingress.IngressClass != "") ||
642642
(n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled) // TODO deprecate this once we have removed the .spec.expose.ingress field from the spec
643643
}
644644

@@ -648,15 +648,15 @@ func (n *NemoCustomizer) GetIngressSpec() networkingv1.IngressSpec {
648648
if n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled {
649649
return n.Spec.Expose.Ingress.GenerateNetworkingV1IngressSpec(n.GetName())
650650
}
651-
return n.Spec.Router.GenerateIngressSpec(n.GetName())
651+
return n.Spec.Router.GenerateIngressSpec(n.GetNamespace(), n.GetName())
652652
}
653653

654654
func (n *NemoCustomizer) IsHTTPRouteEnabled() bool {
655-
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.Name != "" && n.Spec.Router.Gateway.Namespace != ""
655+
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.HTTPRoutesEnabled
656656
}
657657

658658
func (n *NemoCustomizer) GetHTTPRouteSpec() gatewayv1.HTTPRouteSpec {
659-
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetName())
659+
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetNamespace(), n.GetName(), n.GetServicePort())
660660
}
661661

662662
// IsServiceMonitorEnabled returns true if servicemonitor is enabled for NemoCustomizer deployment.

api/apps/v1alpha1/nemo_datastore_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const (
5858
)
5959

6060
// NemoDatastoreSpec defines the desired state of NemoDatastore.
61-
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingressClass))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingressClass."
61+
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingress))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingress."
6262
type NemoDatastoreSpec struct {
6363
Image Image `json:"image"`
6464
Command []string `json:"command,omitempty"`
@@ -767,12 +767,12 @@ func (n *NemoDatastore) IsAutoScalingEnabled() bool {
767767

768768
// IsIngressEnabled returns true if ingress is enabled for NemoDatastore deployment.
769769
func (n *NemoDatastore) IsIngressEnabled() bool {
770-
return (n.Spec.Router.IngressClass != nil && *n.Spec.Router.IngressClass != "") ||
770+
return (n.Spec.Router.Ingress != nil && n.Spec.Router.Ingress.IngressClass != "") ||
771771
(n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled) // TODO deprecate this once we have removed the .spec.expose.ingress field from the spec
772772
}
773773

774774
func (n *NemoDatastore) IsHTTPRouteEnabled() bool {
775-
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.Name != "" && n.Spec.Router.Gateway.Namespace != ""
775+
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.HTTPRoutesEnabled
776776
}
777777

778778
// GetIngressSpec returns the Ingress spec NemoDatastore deployment.
@@ -781,11 +781,11 @@ func (n *NemoDatastore) GetIngressSpec() networkingv1.IngressSpec {
781781
if n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled {
782782
return n.Spec.Expose.Ingress.GenerateNetworkingV1IngressSpec(n.GetName())
783783
}
784-
return n.Spec.Router.GenerateIngressSpec(n.GetName())
784+
return n.Spec.Router.GenerateIngressSpec(n.GetNamespace(), n.GetName())
785785
}
786786

787787
func (n *NemoDatastore) GetHTTPRouteSpec() gatewayv1.HTTPRouteSpec {
788-
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetName())
788+
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetNamespace(), n.GetName(), n.GetServicePort())
789789
}
790790

791791
// IsServiceMonitorEnabled returns true if servicemonitor is enabled for NemoDatastore deployment.

api/apps/v1alpha1/nemo_entitystore_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ const (
5959
)
6060

6161
// NemoEntitystoreSpec defines the desired state of NemoEntitystore.
62-
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingressClass))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingressClass."
62+
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingress))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingress."
6363
type NemoEntitystoreSpec struct {
6464
Image Image `json:"image"`
6565
Command []string `json:"command,omitempty"`
@@ -394,7 +394,7 @@ func (n *NemoEntitystore) IsAutoScalingEnabled() bool {
394394

395395
// IsIngressEnabled returns true if ingress is enabled for NemoEntitystore deployment.
396396
func (n *NemoEntitystore) IsIngressEnabled() bool {
397-
return (n.Spec.Router.IngressClass != nil && *n.Spec.Router.IngressClass != "") ||
397+
return (n.Spec.Router.Ingress != nil && n.Spec.Router.Ingress.IngressClass != "") ||
398398
(n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled) // TODO deprecate this once we have removed the .spec.expose.ingress field from the spec
399399
}
400400

@@ -404,15 +404,15 @@ func (n *NemoEntitystore) GetIngressSpec() networkingv1.IngressSpec {
404404
if n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled {
405405
return n.Spec.Expose.Ingress.GenerateNetworkingV1IngressSpec(n.GetName())
406406
}
407-
return n.Spec.Router.GenerateIngressSpec(n.GetName())
407+
return n.Spec.Router.GenerateIngressSpec(n.GetNamespace(), n.GetName())
408408
}
409409

410410
func (n *NemoEntitystore) IsHTTPRouteEnabled() bool {
411-
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.Name != "" && n.Spec.Router.Gateway.Namespace != ""
411+
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.HTTPRoutesEnabled
412412
}
413413

414414
func (n *NemoEntitystore) GetHTTPRouteSpec() gatewayv1.HTTPRouteSpec {
415-
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetName())
415+
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetNamespace(), n.GetName(), n.GetServicePort())
416416
}
417417

418418
// IsServiceMonitorEnabled returns true if servicemonitor is enabled for NemoEntitystore deployment.

api/apps/v1alpha1/nemo_evaluator_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ const (
5757
)
5858

5959
// NemoEvaluatorSpec defines the desired state of NemoEvaluator.
60-
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingressClass))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingressClass."
60+
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingress))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingress."
6161
type NemoEvaluatorSpec struct {
6262
Image Image `json:"image"`
6363
Command []string `json:"command,omitempty"`
@@ -584,12 +584,12 @@ func (n *NemoEvaluator) IsAutoScalingEnabled() bool {
584584

585585
// IsIngressEnabled returns true if ingress is enabled for NemoEvaluator deployment.
586586
func (n *NemoEvaluator) IsIngressEnabled() bool {
587-
return (n.Spec.Router.IngressClass != nil && *n.Spec.Router.IngressClass != "") ||
587+
return (n.Spec.Router.Ingress != nil && n.Spec.Router.Ingress.IngressClass != "") ||
588588
(n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled) // TODO deprecate this once we have removed the .spec.expose.ingress field from the spec
589589
}
590590

591591
func (n *NemoEvaluator) IsHTTPRouteEnabled() bool {
592-
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.Name != "" && n.Spec.Router.Gateway.Namespace != ""
592+
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.HTTPRoutesEnabled
593593
}
594594

595595
// GetIngressSpec returns the Ingress spec NemoEvaluator deployment.
@@ -598,11 +598,11 @@ func (n *NemoEvaluator) GetIngressSpec() networkingv1.IngressSpec {
598598
if n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled {
599599
return n.Spec.Expose.Ingress.GenerateNetworkingV1IngressSpec(n.GetName())
600600
}
601-
return n.Spec.Router.GenerateIngressSpec(n.GetName())
601+
return n.Spec.Router.GenerateIngressSpec(n.GetNamespace(), n.GetName())
602602
}
603603

604604
func (n *NemoEvaluator) GetHTTPRouteSpec() gatewayv1.HTTPRouteSpec {
605-
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetName())
605+
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetNamespace(), n.GetName(), n.GetServicePort())
606606
}
607607

608608
// IsServiceMonitorEnabled returns true if servicemonitor is enabled for NemoEvaluator deployment.

api/apps/v1alpha1/nemo_guardrails_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const (
5858
)
5959

6060
// NemoGuardrailSpec defines the desired state of NemoGuardrail.
61-
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingressClass))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingressClass."
61+
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingress))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingress."
6262
type NemoGuardrailSpec struct {
6363
Image Image `json:"image"`
6464
Command []string `json:"command,omitempty"`
@@ -541,7 +541,7 @@ func (n *NemoGuardrail) IsAutoScalingEnabled() bool {
541541

542542
// IsIngressEnabled returns true if ingress is enabled for NemoGuardrail deployment.
543543
func (n *NemoGuardrail) IsIngressEnabled() bool {
544-
return (n.Spec.Router.IngressClass != nil && *n.Spec.Router.IngressClass != "") ||
544+
return (n.Spec.Router.Ingress != nil && n.Spec.Router.Ingress.IngressClass != "") ||
545545
(n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled) // TODO deprecate this once we have removed the .spec.expose.ingress field from the spec
546546
}
547547

@@ -551,15 +551,15 @@ func (n *NemoGuardrail) GetIngressSpec() networkingv1.IngressSpec {
551551
if n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled {
552552
return n.Spec.Expose.Ingress.GenerateNetworkingV1IngressSpec(n.GetName())
553553
}
554-
return n.Spec.Router.GenerateIngressSpec(n.GetName())
554+
return n.Spec.Router.GenerateIngressSpec(n.GetNamespace(), n.GetName())
555555
}
556556

557557
func (n *NemoGuardrail) IsHTTPRouteEnabled() bool {
558-
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.Name != "" && n.Spec.Router.Gateway.Namespace != ""
558+
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.HTTPRoutesEnabled
559559
}
560560

561561
func (n *NemoGuardrail) GetHTTPRouteSpec() gatewayv1.HTTPRouteSpec {
562-
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetName())
562+
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetNamespace(), n.GetName(), n.GetServicePort())
563563
}
564564

565565
// IsServiceMonitorEnabled returns true if servicemonitor is enabled for NemoGuardrail deployment.

api/apps/v1alpha1/nimservice_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ const (
9090

9191
// NIMServiceSpec defines the desired state of NIMService.
9292
// +kubebuilder:validation:XValidation:rule="!(has(self.multiNode) && has(self.scale) && has(self.scale.enabled) && self.scale.enabled)", message="autoScaling must be nil or disabled when multiNode is set"
93-
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingressClass))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingressClass."
93+
// +kubebuilder:validation:XValidation:rule="!(has(self.expose.ingress.enabled) && self.expose.ingress.enabled && has(self.router.ingress))", message=".spec.expose.ingress is deprecated, and will be removed in a future release. If .spec.expose.ingress is set, please do not set .spec.router.ingress."
9494
type NIMServiceSpec struct {
9595
Image Image `json:"image"`
9696
Command []string `json:"command,omitempty"`
@@ -943,7 +943,7 @@ func (n *NIMService) IsAutoScalingEnabled() bool {
943943

944944
// IsIngressEnabled returns true if ingress is enabled for NIMService deployment.
945945
func (n *NIMService) IsIngressEnabled() bool {
946-
return (n.Spec.Router.IngressClass != nil && *n.Spec.Router.IngressClass != "") || (n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled)
946+
return (n.Spec.Router.Ingress != nil && n.Spec.Router.Ingress.IngressClass != "") || (n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled)
947947
}
948948

949949
// GetIngressSpec returns the Ingress spec NIMService deployment.
@@ -952,15 +952,15 @@ func (n *NIMService) GetIngressSpec() networkingv1.IngressSpec {
952952
if n.Spec.Expose.Ingress.Enabled != nil && *n.Spec.Expose.Ingress.Enabled {
953953
return n.Spec.Expose.GenerateIngressSpec(n.GetName())
954954
}
955-
return n.Spec.Router.GenerateIngressSpec(n.GetName())
955+
return n.Spec.Router.GenerateIngressSpec(n.GetNamespace(), n.GetName())
956956
}
957957

958958
func (n *NIMService) IsHTTPRouteEnabled() bool {
959-
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.Name != "" && n.Spec.Router.Gateway.Namespace != ""
959+
return n.Spec.Router.Gateway != nil && n.Spec.Router.Gateway.HTTPRoutesEnabled
960960
}
961961

962962
func (n *NIMService) GetHTTPRouteSpec() gatewayv1.HTTPRouteSpec {
963-
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetName())
963+
return n.Spec.Router.GenerateGatewayHTTPRouteSpec(n.GetNamespace(), n.GetName(), n.GetServicePort())
964964
}
965965

966966
// IsServiceMonitorEnabled returns true if servicemonitor is enabled for NIMService deployment.

0 commit comments

Comments
 (0)