From 2817222beac0d7d5403ace086a7a003247a05693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Hern=C3=A1ndez?= <23639005+israel-hdez@users.noreply.github.com> Date: Wed, 12 Jun 2024 14:14:52 -0600 Subject: [PATCH 1/2] Allow KServe to have its own local gateways for Serverless mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These changes introduce the possibility to configure KServe with its own Istio local gateway, to partially decouple KServe from the Knative local gateway. Typically, it is OK to re-use the already configured Knative local gateway for KServe uses (as long as configs do not conflict). However, there are cases where having a dedicated local gateway for KServe is beneficial. Just to give some examples: * To have the ability to use strict mTLS in Istio * To reduce some pressure on the Knative local gateway by having a dedicated gateway deployment (it still would hit Knative gateway, but only once, rather than twice) * To be able to configure TLS on cluster-local hostnames (Knative support is still experimental) To have a dedicated Gateway in KServe, similar configurations to Knative are need to be done. At the very least, and if not having a dedicated gateway deployment, a v1/Service and an Istio Gateway resource need to be created for KServe. Such resources would need to be configured in _localGateway_ and _localGatewayService_. KServe still needs to rely on Knative routing for the KSVCs it creates. Thus, after handling an incoming request and resolving its target, it needs to be forwarded to be handled by Knative. This is the reason for introducing a new `knativeLocalGatewayService` in the ConfigMap. The removed `ingressService` seems to be unused. Apparently, it became unused when the v1alpa1 API of the InferenceServices was deprecated and removed. Signed-off-by: Edgar Hernández <23639005+israel-hdez@users.noreply.github.com> --- charts/kserve-resources/README.md | 2 +- .../kserve-resources/templates/configmap.yaml | 13 +- charts/kserve-resources/values.yaml | 2 +- config/configmap/inferenceservice.yaml | 12 +- .../inferenceservice-disable-istio.yaml | 1 - .../configmap/inferenceservice-ingress.yaml | 1 - .../test/configmap/inferenceservice.yaml | 1 - hack/violation_exceptions.list | 1 - pkg/apis/serving/v1beta1/configmap.go | 30 ++-- pkg/apis/serving/v1beta1/configmap_test.go | 54 +++++++ pkg/apis/serving/v1beta1/openapi_generated.go | 2 +- pkg/apis/serving/v1beta1/swagger.json | 2 +- .../inferenceservice/controller_test.go | 2 - .../rawkube_controller_test.go | 3 - .../reconcilers/ingress/ingress_reconciler.go | 6 +- .../ingress/ingress_reconciler_test.go | 151 +++++++++--------- .../v1beta1/inferenceservice/suite_test.go | 1 - python/kserve/docs/V1beta1IngressConfig.md | 2 +- .../kserve/models/v1beta1_ingress_config.py | 30 ++-- .../test/test_v1beta1_ingress_config.py | 3 +- 20 files changed, 188 insertions(+), 131 deletions(-) diff --git a/charts/kserve-resources/README.md b/charts/kserve-resources/README.md index 2cee4c9eefc..f7a73a9bf59 100644 --- a/charts/kserve-resources/README.md +++ b/charts/kserve-resources/README.md @@ -26,9 +26,9 @@ $ helm install kserve oci://ghcr.io/kserve/charts/kserve --version v0.12.1 | kserve.controller.gateway.domainTemplate | string | `"{{ .Name }}-{{ .Namespace }}.{{ .IngressDomain }}"` | | | kserve.controller.gateway.ingressGateway.className | string | `"istio"` | | | kserve.controller.gateway.ingressGateway.gateway | string | `"knative-serving/knative-ingress-gateway"` | | -| kserve.controller.gateway.ingressGateway.gatewayService | string | `"istio-ingressgateway.istio-system.svc.cluster.local"` | | | kserve.controller.gateway.localGateway.gateway | string | `"knative-serving/knative-local-gateway"` | | | kserve.controller.gateway.localGateway.gatewayService | string | `"knative-local-gateway.istio-system.svc.cluster.local"` | | +| kserve.controller.gateway.localGateway.knativeGatewayService | string | `""` | | | kserve.controller.gateway.urlScheme | string | `"http"` | | | kserve.controller.image | string | `"kserve/kserve-controller"` | | | kserve.controller.nodeSelector | object | `{}` | | diff --git a/charts/kserve-resources/templates/configmap.yaml b/charts/kserve-resources/templates/configmap.yaml index e5e8ff6ca49..3f4dec1c9cc 100644 --- a/charts/kserve-resources/templates/configmap.yaml +++ b/charts/kserve-resources/templates/configmap.yaml @@ -193,7 +193,6 @@ data: ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", "localGateway" : "knative-serving/knative-local-gateway", "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", "ingressDomain" : "example.com", @@ -210,9 +209,15 @@ data: # NOTE: This configuration only applicable for serverless deployment with Istio configured as network layer. "ingressGateway" : "knative-serving/knative-ingress-gateway", - # ingressService specifies the hostname of the ingress service. + # knativeLocalGatewayService specifies the hostname of the Knative's local gateway serivice. + # The default KServe configurations are re-using the Istio local gateways for Knative. In this case, this + # knativeLocalGatewayService field can be left unset. When unset, the value of "localGatewayService" will be used. + # However, sometimes it may be better to have local gateways specifically for KServe (e.g. when enabling strict mTLS in Istio). + # Under such setups where KServe is needed to have its own local gateways, the values of the "localGateway" and + # "localGatewayService" should point to the KServe local gateways. Then, this knativeLocalGatewayService field + # should point to the Knative's local gateway service. # NOTE: This configuration only applicable for serverless deployment with Istio configured as network layer. - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", + "knativeLocalGatewayService": "", # localGateway specifies the gateway which handles the network traffic within the cluster. # NOTE: This configuration only applicable for serverless deployment with Istio configured as network layer. @@ -507,7 +512,7 @@ data: ingress: |- { "ingressGateway" : "{{ .Values.kserve.controller.gateway.ingressGateway.gateway }}", - "ingressService" : "{{ .Values.kserve.controller.gateway.ingressGateway.gatewayService }}", + "knativeLocalGatewayService" : "{{ .Values.kserve.controller.gateway.localGateway.knativeGatewayService }}", "localGateway" : "{{ .Values.kserve.controller.gateway.localGateway.gateway }}", "localGatewayService" : "{{ .Values.kserve.controller.gateway.localGateway.gatewayService }}", "ingressClassName" : "{{ .Values.kserve.controller.gateway.ingressGateway.className }}", diff --git a/charts/kserve-resources/values.yaml b/charts/kserve-resources/values.yaml index cf6f599bc75..d831401117a 100644 --- a/charts/kserve-resources/values.yaml +++ b/charts/kserve-resources/values.yaml @@ -42,9 +42,9 @@ kserve: localGateway: gateway: knative-serving/knative-local-gateway gatewayService: knative-local-gateway.istio-system.svc.cluster.local + knativeGatewayService: "" ingressGateway: gateway: knative-serving/knative-ingress-gateway - gatewayService: istio-ingressgateway.istio-system.svc.cluster.local className: istio nodeSelector: {} tolerations: [] diff --git a/config/configmap/inferenceservice.yaml b/config/configmap/inferenceservice.yaml index f79aa0039ac..d9e73aac70c 100644 --- a/config/configmap/inferenceservice.yaml +++ b/config/configmap/inferenceservice.yaml @@ -204,7 +204,6 @@ data: ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", "localGateway" : "knative-serving/knative-local-gateway", "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", "ingressDomain" : "example.com", @@ -221,9 +220,15 @@ data: # NOTE: This configuration only applicable for serverless deployment with Istio configured as network layer. "ingressGateway" : "knative-serving/knative-ingress-gateway", - # ingressService specifies the hostname of the ingress service. + # knativeLocalGatewayService specifies the hostname of the Knative's local gateway serivice. + # The default KServe configurations are re-using the Istio local gateways for Knative. In this case, this + # knativeLocalGatewayService field can be left unset. When unset, the value of "localGatewayService" will be used. + # However, sometimes it may be better to have local gateways specifically for KServe (e.g. when enabling strict mTLS in Istio). + # Under such setups where KServe is needed to have its own local gateways, the values of the "localGateway" and + # "localGatewayService" should point to the KServe local gateways. Then, this knativeLocalGatewayService field + # should point to the Knative's local gateway service. # NOTE: This configuration only applicable for serverless deployment with Istio configured as network layer. - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", + "knativeLocalGatewayService": "", # localGateway specifies the gateway which handles the network traffic within the cluster. # NOTE: This configuration only applicable for serverless deployment with Istio configured as network layer. @@ -506,7 +511,6 @@ data: ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", "localGateway" : "knative-serving/knative-local-gateway", "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", "ingressDomain" : "example.com", diff --git a/config/overlays/test/configmap/inferenceservice-disable-istio.yaml b/config/overlays/test/configmap/inferenceservice-disable-istio.yaml index 92b11eca24c..c96d934e11f 100644 --- a/config/overlays/test/configmap/inferenceservice-disable-istio.yaml +++ b/config/overlays/test/configmap/inferenceservice-disable-istio.yaml @@ -7,7 +7,6 @@ data: ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", "localGateway" : "knative-serving/knative-local-gateway", "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", "ingressDomain" : "example.com", diff --git a/config/overlays/test/configmap/inferenceservice-ingress.yaml b/config/overlays/test/configmap/inferenceservice-ingress.yaml index 07f2a7ded09..323784eb21a 100644 --- a/config/overlays/test/configmap/inferenceservice-ingress.yaml +++ b/config/overlays/test/configmap/inferenceservice-ingress.yaml @@ -7,7 +7,6 @@ data: ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", "ingressClassName" : "istio", diff --git a/config/overlays/test/configmap/inferenceservice.yaml b/config/overlays/test/configmap/inferenceservice.yaml index f9ba5fb5d67..3ec32684cf7 100644 --- a/config/overlays/test/configmap/inferenceservice.yaml +++ b/config/overlays/test/configmap/inferenceservice.yaml @@ -36,7 +36,6 @@ data: ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", "ingressClassName" : "istio", diff --git a/hack/violation_exceptions.list b/hack/violation_exceptions.list index ce9f95bea4a..140cb3d00c8 100644 --- a/hack/violation_exceptions.list +++ b/hack/violation_exceptions.list @@ -31,7 +31,6 @@ API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,ExplainerExtensionSpec,StorageURI API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,ExplainersConfig,ARTExplainer API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,ExplainersConfig,AlibiExplainer -API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,IngressConfig,IngressServiceName API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,IngressConfig,LocalGatewayServiceName API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,ModelStatus,ModelCopies API rule violation: names_match,github.com/kserve/kserve/pkg/apis/serving/v1beta1,ModelStatus,ModelRevisionStates diff --git a/pkg/apis/serving/v1beta1/configmap.go b/pkg/apis/serving/v1beta1/configmap.go index 375f1aec670..ce8f4d55921 100644 --- a/pkg/apis/serving/v1beta1/configmap.go +++ b/pkg/apis/serving/v1beta1/configmap.go @@ -66,17 +66,17 @@ type InferenceServicesConfig struct { // +kubebuilder:object:generate=false type IngressConfig struct { - IngressGateway string `json:"ingressGateway,omitempty"` - IngressServiceName string `json:"ingressService,omitempty"` - LocalGateway string `json:"localGateway,omitempty"` - LocalGatewayServiceName string `json:"localGatewayService,omitempty"` - IngressDomain string `json:"ingressDomain,omitempty"` - IngressClassName *string `json:"ingressClassName,omitempty"` - DomainTemplate string `json:"domainTemplate,omitempty"` - UrlScheme string `json:"urlScheme,omitempty"` - DisableIstioVirtualHost bool `json:"disableIstioVirtualHost,omitempty"` - PathTemplate string `json:"pathTemplate,omitempty"` - DisableIngressCreation bool `json:"disableIngressCreation,omitempty"` + IngressGateway string `json:"ingressGateway,omitempty"` + KnativeLocalGatewayService string `json:"knativeLocalGatewayService,omitempty"` + LocalGateway string `json:"localGateway,omitempty"` + LocalGatewayServiceName string `json:"localGatewayService,omitempty"` + IngressDomain string `json:"ingressDomain,omitempty"` + IngressClassName *string `json:"ingressClassName,omitempty"` + DomainTemplate string `json:"domainTemplate,omitempty"` + UrlScheme string `json:"urlScheme,omitempty"` + DisableIstioVirtualHost bool `json:"disableIstioVirtualHost,omitempty"` + PathTemplate string `json:"pathTemplate,omitempty"` + DisableIngressCreation bool `json:"disableIngressCreation,omitempty"` } // +kubebuilder:object:generate=false @@ -112,8 +112,8 @@ func NewIngressConfig(clientset kubernetes.Interface) (*IngressConfig, error) { return nil, fmt.Errorf("unable to parse ingress config json: %v", err) } - if ingressConfig.IngressGateway == "" || ingressConfig.IngressServiceName == "" { - return nil, fmt.Errorf("invalid ingress config - ingressGateway and ingressService are required") + if ingressConfig.IngressGateway == "" { + return nil, fmt.Errorf("invalid ingress config - ingressGateway is required") } if ingressConfig.PathTemplate != "" { // TODO: ensure that the generated path is valid, that is: @@ -128,6 +128,10 @@ func NewIngressConfig(clientset kubernetes.Interface) (*IngressConfig, error) { return nil, fmt.Errorf("invalid ingress config - ingressDomain is required if pathTemplate is given") } } + + if len(ingressConfig.KnativeLocalGatewayService) == 0 { + ingressConfig.KnativeLocalGatewayService = ingressConfig.LocalGatewayServiceName + } } if ingressConfig.DomainTemplate == "" { diff --git a/pkg/apis/serving/v1beta1/configmap_test.go b/pkg/apis/serving/v1beta1/configmap_test.go index 1410eeee8ff..33266adca4a 100644 --- a/pkg/apis/serving/v1beta1/configmap_test.go +++ b/pkg/apis/serving/v1beta1/configmap_test.go @@ -18,6 +18,7 @@ package v1beta1 import ( ctx "context" + "fmt" logger "log" "testing" @@ -30,6 +31,27 @@ import ( fakeclient "sigs.k8s.io/controller-runtime/pkg/client/fake" ) +var ( + KnativeIngressGateway = "knative-serving/knative-ingress-gateway" + KnativeLocalGatewayService = "test-destination" + KnativeLocalGateway = "knative-serving/knative-local-gateway" + LocalGatewayService = "knative-local-gateway.istio-system.svc.cluster.local" + UrlScheme = "https" + IngressDomain = "example.com" + AdditionalDomain = "additional-example.com" + AdditionalDomainExtra = "additional-example-extra.com" + IngressConfigData = fmt.Sprintf(`{ + "ingressGateway" : "%s", + "knativeLocalGatewayService" : "%s", + "localGateway" : "%s", + "localGatewayService" : "%s", + "ingressDomain": "%s", + "urlScheme": "https", + "additionalIngressDomains": ["%s","%s"] + }`, KnativeIngressGateway, KnativeLocalGatewayService, KnativeLocalGateway, LocalGatewayService, IngressDomain, + AdditionalDomain, AdditionalDomainExtra) +) + func createFakeClient() client.WithWatch { clientBuilder := fakeclient.NewClientBuilder() fakeClient := clientBuilder.Build() @@ -91,10 +113,42 @@ func TestNewIngressConfig(t *testing.T) { g := gomega.NewGomegaWithT(t) clientset := fakeclientset.NewSimpleClientset(&v1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{Name: constants.InferenceServiceConfigMapName, Namespace: constants.KServeNamespace}, + Data: map[string]string{ + IngressConfigKeyName: IngressConfigData, + }, + }) + ingressCfg, err := NewIngressConfig(clientset) + g.Expect(err).Should(gomega.BeNil()) + g.Expect(ingressCfg).ShouldNot(gomega.BeNil()) + + g.Expect(ingressCfg.IngressGateway).To(gomega.Equal(KnativeIngressGateway)) + g.Expect(ingressCfg.KnativeLocalGatewayService).To(gomega.Equal(KnativeLocalGatewayService)) + g.Expect(ingressCfg.LocalGateway).To(gomega.Equal(KnativeLocalGateway)) + g.Expect(ingressCfg.LocalGatewayServiceName).To(gomega.Equal(LocalGatewayService)) + g.Expect(ingressCfg.UrlScheme).To(gomega.Equal(UrlScheme)) + g.Expect(ingressCfg.IngressDomain).To(gomega.Equal(IngressDomain)) +} + +func TestNewIngressConfigDefaultKnativeService(t *testing.T) { + g := gomega.NewGomegaWithT(t) + clientset := fakeclientset.NewSimpleClientset(&v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{Name: constants.InferenceServiceConfigMapName, Namespace: constants.KServeNamespace}, + Data: map[string]string{ + IngressConfigKeyName: fmt.Sprintf(`{ + "ingressGateway" : "%s", + "localGateway" : "%s", + "localGatewayService" : "%s", + "ingressDomain": "%s", + "urlScheme": "https", + "additionalIngressDomains": ["%s","%s"] + }`, KnativeIngressGateway, KnativeLocalGateway, LocalGatewayService, IngressDomain, + AdditionalDomain, AdditionalDomainExtra), + }, }) ingressCfg, err := NewIngressConfig(clientset) g.Expect(err).Should(gomega.BeNil()) g.Expect(ingressCfg).ShouldNot(gomega.BeNil()) + g.Expect(ingressCfg.KnativeLocalGatewayService).To(gomega.Equal(LocalGatewayService)) } func TestNewDeployConfig(t *testing.T) { diff --git a/pkg/apis/serving/v1beta1/openapi_generated.go b/pkg/apis/serving/v1beta1/openapi_generated.go index 7d82faec4ca..00594d52629 100644 --- a/pkg/apis/serving/v1beta1/openapi_generated.go +++ b/pkg/apis/serving/v1beta1/openapi_generated.go @@ -5265,7 +5265,7 @@ func schema_pkg_apis_serving_v1beta1_IngressConfig(ref common.ReferenceCallback) Format: "", }, }, - "ingressService": { + "knativeLocalGatewayService": { SchemaProps: spec.SchemaProps{ Type: []string{"string"}, Format: "", diff --git a/pkg/apis/serving/v1beta1/swagger.json b/pkg/apis/serving/v1beta1/swagger.json index cff2c8ce734..69485e5ad02 100644 --- a/pkg/apis/serving/v1beta1/swagger.json +++ b/pkg/apis/serving/v1beta1/swagger.json @@ -2912,7 +2912,7 @@ "ingressGateway": { "type": "string" }, - "ingressService": { + "knativeLocalGatewayService": { "type": "string" }, "localGateway": { diff --git a/pkg/controller/v1beta1/inferenceservice/controller_test.go b/pkg/controller/v1beta1/inferenceservice/controller_test.go index 97b1ed931ba..c01f227a71f 100644 --- a/pkg/controller/v1beta1/inferenceservice/controller_test.go +++ b/pkg/controller/v1beta1/inferenceservice/controller_test.go @@ -76,7 +76,6 @@ var _ = Describe("v1beta1 inference service controller", func() { }`, "ingress": `{ "ingressGateway": "knative-serving/knative-ingress-gateway", - "ingressService": "test-destination", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService": "knative-local-gateway.istio-system.svc.cluster.local" }`, @@ -2078,7 +2077,6 @@ var _ = Describe("v1beta1 inference service controller", func() { copiedConfigs[key] = `{ "disableIstioVirtualHost": true, "ingressGateway": "knative-serving/knative-ingress-gateway", - "ingressService": "test-destination", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService": "knative-local-gateway.istio-system.svc.cluster.local" }` diff --git a/pkg/controller/v1beta1/inferenceservice/rawkube_controller_test.go b/pkg/controller/v1beta1/inferenceservice/rawkube_controller_test.go index 789983c7041..ad31abe91df 100644 --- a/pkg/controller/v1beta1/inferenceservice/rawkube_controller_test.go +++ b/pkg/controller/v1beta1/inferenceservice/rawkube_controller_test.go @@ -74,7 +74,6 @@ var _ = Describe("v1beta1 inference service controller", func() { }`, "ingress": `{ "ingressGateway": "knative-serving/knative-ingress-gateway", - "ingressService": "test-destination", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService": "knative-local-gateway.istio-system.svc.cluster.local" }`, @@ -1275,7 +1274,6 @@ var _ = Describe("v1beta1 inference service controller", func() { }`, "ingress": `{ "ingressGateway": "knative-serving/knative-ingress-gateway", - "ingressService": "test-destination", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService": "knative-local-gateway.istio-system.svc.cluster.local", "ingressDomain": "example.com" @@ -1707,7 +1705,6 @@ var _ = Describe("v1beta1 inference service controller", func() { }`, "ingress": `{ "ingressGateway": "knative-serving/knative-ingress-gateway", - "ingressService": "test-destination", "localGateway": "knative-serving/knative-local-gateway", "localGatewayService": "knative-local-gateway.istio-system.svc.cluster.local", "ingressDomain": "example.com", diff --git a/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler.go b/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler.go index 9a1e9121f93..335b9222c8c 100644 --- a/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler.go +++ b/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler.go @@ -341,7 +341,7 @@ func createIngress(isvc *v1beta1.InferenceService, useDefault bool, config *v1be Match: createHTTPMatchRequest(constants.ExplainPrefix(), serviceHost, network.GetServiceHostname(isvc.Name, isvc.Namespace), isInternal, config), Route: []*istiov1beta1.HTTPRouteDestination{ - createHTTPRouteDestination(config.LocalGatewayServiceName), + createHTTPRouteDestination(config.KnativeLocalGatewayService), }, Headers: &istiov1beta1.Headers{ Request: &istiov1beta1.Headers_HeaderOperations{ @@ -358,7 +358,7 @@ func createIngress(isvc *v1beta1.InferenceService, useDefault bool, config *v1be Match: createHTTPMatchRequest("", serviceHost, network.GetServiceHostname(isvc.Name, isvc.Namespace), isInternal, config), Route: []*istiov1beta1.HTTPRouteDestination{ - createHTTPRouteDestination(config.LocalGatewayServiceName), + createHTTPRouteDestination(config.KnativeLocalGatewayService), }, Headers: &istiov1beta1.Headers{ Request: &istiov1beta1.Headers_HeaderOperations{ @@ -421,7 +421,7 @@ func createIngress(isvc *v1beta1.InferenceService, useDefault bool, config *v1be Uri: "/", }, Route: []*istiov1beta1.HTTPRouteDestination{ - createHTTPRouteDestination(config.LocalGatewayServiceName), + createHTTPRouteDestination(config.KnativeLocalGatewayService), }, Headers: &istiov1beta1.Headers{ Request: &istiov1beta1.Headers_HeaderOperations{ diff --git a/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler_test.go b/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler_test.go index a9a701ae28c..d0be97175e8 100644 --- a/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler_test.go +++ b/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler_test.go @@ -41,6 +41,7 @@ func TestCreateVirtualService(t *testing.T) { annotations := map[string]string{"test": "test"} isvcAnnotations := map[string]string{"test": "test", "kubectl.kubernetes.io/last-applied-configuration": "test"} labels := map[string]string{"test": "test"} + knativeLocalGatewayService := "someIngressServiceName" domain := "example.com" serviceHostName := constants.InferenceServiceHostName(serviceName, namespace, domain) serviceInternalHostName := network.GetServiceHostname(serviceName, namespace) @@ -79,10 +80,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "predictor missing url", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -94,10 +95,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found predictor status", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -134,7 +135,7 @@ func TestCreateVirtualService(t *testing.T) { Match: predictorRouteMatch, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -149,10 +150,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "local cluster predictor", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -198,7 +199,7 @@ func TestCreateVirtualService(t *testing.T) { }, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -214,10 +215,10 @@ func TestCreateVirtualService(t *testing.T) { { name: "nil transformer status fails with status unknown", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -241,10 +242,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found transformer and predictor status", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -297,7 +298,7 @@ func TestCreateVirtualService(t *testing.T) { Match: predictorRouteMatch, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -313,10 +314,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found transformer and predictor status", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -369,7 +370,7 @@ func TestCreateVirtualService(t *testing.T) { Match: predictorRouteMatch, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -385,10 +386,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "nil explainer status fails with status unknown", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -412,10 +413,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found explainer and predictor status", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -495,7 +496,7 @@ func TestCreateVirtualService(t *testing.T) { }, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -509,7 +510,7 @@ func TestCreateVirtualService(t *testing.T) { Match: predictorRouteMatch, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -525,14 +526,14 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found predictor status with path template", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", - UrlScheme: "http", - IngressDomain: "my-domain.com", - PathTemplate: "/serving/{{ .Namespace }}/{{ .Name }}", - DisableIstioVirtualHost: false, + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + UrlScheme: "http", + IngressDomain: "my-domain.com", + PathTemplate: "/serving/{{ .Namespace }}/{{ .Name }}", + DisableIstioVirtualHost: false, }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -586,7 +587,7 @@ func TestCreateVirtualService(t *testing.T) { }, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -628,7 +629,7 @@ func TestCreateVirtualService(t *testing.T) { Uri: "/", }, Route: []*istiov1beta1.HTTPRouteDestination{ - createHTTPRouteDestination("knative-local-gateway.istio-system.svc.cluster.local"), + createHTTPRouteDestination(knativeLocalGatewayService), }, Headers: &istiov1beta1.Headers{ Request: &istiov1beta1.Headers_HeaderOperations{ @@ -644,10 +645,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found predictor status with default suffix", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: true, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -684,7 +685,7 @@ func TestCreateVirtualService(t *testing.T) { Match: predictorRouteMatch, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -699,10 +700,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "found transformer and predictor status with default suffix", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: true, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -755,7 +756,7 @@ func TestCreateVirtualService(t *testing.T) { Match: predictorRouteMatch, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, @@ -771,10 +772,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "transformer is not ready", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: true, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -821,10 +822,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "nil explainer status fails with status unknown", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -848,10 +849,10 @@ func TestCreateVirtualService(t *testing.T) { }, { name: "explainer is not ready", ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -911,10 +912,10 @@ func TestCreateVirtualService(t *testing.T) { }, }, ingressConfig: &v1beta1.IngressConfig{ - IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", - LocalGateway: constants.KnativeLocalGateway, - LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", + IngressGateway: constants.KnativeIngressGateway, + KnativeLocalGatewayService: knativeLocalGatewayService, + LocalGateway: constants.KnativeLocalGateway, + LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", }, useDefault: false, componentStatus: &v1beta1.InferenceServiceStatus{ @@ -962,7 +963,7 @@ func TestCreateVirtualService(t *testing.T) { }, Route: []*istiov1beta1.HTTPRouteDestination{ { - Destination: &istiov1beta1.Destination{Host: constants.LocalGatewayHost, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, + Destination: &istiov1beta1.Destination{Host: knativeLocalGatewayService, Port: &istiov1beta1.PortSelector{Number: constants.CommonDefaultHttpPort}}, Weight: 100, }, }, diff --git a/pkg/controller/v1beta1/inferenceservice/suite_test.go b/pkg/controller/v1beta1/inferenceservice/suite_test.go index 1bb29c5427e..1b891d6e793 100644 --- a/pkg/controller/v1beta1/inferenceservice/suite_test.go +++ b/pkg/controller/v1beta1/inferenceservice/suite_test.go @@ -105,7 +105,6 @@ var _ = BeforeSuite(func() { deployConfig := &v1beta1.DeployConfig{DefaultDeploymentMode: "Serverless"} ingressConfig := &v1beta1.IngressConfig{ IngressGateway: constants.KnativeIngressGateway, - IngressServiceName: "someIngressServiceName", LocalGateway: constants.KnativeLocalGateway, LocalGatewayServiceName: "knative-local-gateway.istio-system.svc.cluster.local", DisableIstioVirtualHost: false, diff --git a/python/kserve/docs/V1beta1IngressConfig.md b/python/kserve/docs/V1beta1IngressConfig.md index f81b653be58..3b47f6891e9 100644 --- a/python/kserve/docs/V1beta1IngressConfig.md +++ b/python/kserve/docs/V1beta1IngressConfig.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **ingress_class_name** | **str** | | [optional] **ingress_domain** | **str** | | [optional] **ingress_gateway** | **str** | | [optional] -**ingress_service** | **str** | | [optional] +**knative_local_gateway_service** | **str** | | [optional] **local_gateway** | **str** | | [optional] **local_gateway_service** | **str** | | [optional] **path_template** | **str** | | [optional] diff --git a/python/kserve/kserve/models/v1beta1_ingress_config.py b/python/kserve/kserve/models/v1beta1_ingress_config.py index f8596ae0109..a43da88e5b3 100644 --- a/python/kserve/kserve/models/v1beta1_ingress_config.py +++ b/python/kserve/kserve/models/v1beta1_ingress_config.py @@ -53,7 +53,7 @@ class V1beta1IngressConfig(object): 'ingress_class_name': 'str', 'ingress_domain': 'str', 'ingress_gateway': 'str', - 'ingress_service': 'str', + 'knative_local_gateway_service': 'str', 'local_gateway': 'str', 'local_gateway_service': 'str', 'path_template': 'str', @@ -67,14 +67,14 @@ class V1beta1IngressConfig(object): 'ingress_class_name': 'ingressClassName', 'ingress_domain': 'ingressDomain', 'ingress_gateway': 'ingressGateway', - 'ingress_service': 'ingressService', + 'knative_local_gateway_service': 'knativeLocalGatewayService', 'local_gateway': 'localGateway', 'local_gateway_service': 'localGatewayService', 'path_template': 'pathTemplate', 'url_scheme': 'urlScheme' } - def __init__(self, disable_ingress_creation=None, disable_istio_virtual_host=None, domain_template=None, ingress_class_name=None, ingress_domain=None, ingress_gateway=None, ingress_service=None, local_gateway=None, local_gateway_service=None, path_template=None, url_scheme=None, local_vars_configuration=None): # noqa: E501 + def __init__(self, disable_ingress_creation=None, disable_istio_virtual_host=None, domain_template=None, ingress_class_name=None, ingress_domain=None, ingress_gateway=None, knative_local_gateway_service=None, local_gateway=None, local_gateway_service=None, path_template=None, url_scheme=None, local_vars_configuration=None): # noqa: E501 """V1beta1IngressConfig - a model defined in OpenAPI""" # noqa: E501 if local_vars_configuration is None: local_vars_configuration = Configuration() @@ -86,7 +86,7 @@ def __init__(self, disable_ingress_creation=None, disable_istio_virtual_host=Non self._ingress_class_name = None self._ingress_domain = None self._ingress_gateway = None - self._ingress_service = None + self._knative_local_gateway_service = None self._local_gateway = None self._local_gateway_service = None self._path_template = None @@ -105,8 +105,8 @@ def __init__(self, disable_ingress_creation=None, disable_istio_virtual_host=Non self.ingress_domain = ingress_domain if ingress_gateway is not None: self.ingress_gateway = ingress_gateway - if ingress_service is not None: - self.ingress_service = ingress_service + if knative_local_gateway_service is not None: + self.knative_local_gateway_service = knative_local_gateway_service if local_gateway is not None: self.local_gateway = local_gateway if local_gateway_service is not None: @@ -243,25 +243,25 @@ def ingress_gateway(self, ingress_gateway): self._ingress_gateway = ingress_gateway @property - def ingress_service(self): - """Gets the ingress_service of this V1beta1IngressConfig. # noqa: E501 + def knative_local_gateway_service(self): + """Gets the knative_local_gateway_service of this V1beta1IngressConfig. # noqa: E501 - :return: The ingress_service of this V1beta1IngressConfig. # noqa: E501 + :return: The knative_local_gateway_service of this V1beta1IngressConfig. # noqa: E501 :rtype: str """ - return self._ingress_service + return self._knative_local_gateway_service - @ingress_service.setter - def ingress_service(self, ingress_service): - """Sets the ingress_service of this V1beta1IngressConfig. + @knative_local_gateway_service.setter + def knative_local_gateway_service(self, knative_local_gateway_service): + """Sets the knative_local_gateway_service of this V1beta1IngressConfig. - :param ingress_service: The ingress_service of this V1beta1IngressConfig. # noqa: E501 + :param knative_local_gateway_service: The knative_local_gateway_service of this V1beta1IngressConfig. # noqa: E501 :type: str """ - self._ingress_service = ingress_service + self._knative_local_gateway_service = knative_local_gateway_service @property def local_gateway(self): diff --git a/python/kserve/test/test_v1beta1_ingress_config.py b/python/kserve/test/test_v1beta1_ingress_config.py index 71974a82f7a..f1d58af05f8 100644 --- a/python/kserve/test/test_v1beta1_ingress_config.py +++ b/python/kserve/test/test_v1beta1_ingress_config.py @@ -50,8 +50,7 @@ def make_instance(self, include_optional): # model = kserve.models.v1beta1_ingress_config.V1beta1IngressConfig() # noqa: E501 if include_optional : return V1beta1IngressConfig( - ingress_gateway = '0', - ingress_service = '0' + ingress_gateway = '0' ) else : return V1beta1IngressConfig( From 44805adb94342021cc29eb81bad43d2c9e7a709c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Hern=C3=A1ndez?= <23639005+israel-hdez@users.noreply.github.com> Date: Thu, 13 Jun 2024 13:45:20 -0600 Subject: [PATCH 2/2] Update inferenceservice-configmap patch on ODH overlay MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Edgar Hernández <23639005+israel-hdez@users.noreply.github.com> --- .../odh/inferenceservice-config-patch.yaml | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/config/overlays/odh/inferenceservice-config-patch.yaml b/config/overlays/odh/inferenceservice-config-patch.yaml index 088c58efc11..4a122b4b644 100644 --- a/config/overlays/odh/inferenceservice-config-patch.yaml +++ b/config/overlays/odh/inferenceservice-config-patch.yaml @@ -12,19 +12,24 @@ data: "memoryLimit": "1Gi", "cpuRequest": "100m", "cpuLimit": "1", - "enableDirectPvcVolumeMount": true + "caBundleConfigMapName": "", + "caBundleVolumeMountPath": "/etc/ssl/custom-certs", + "enableDirectPvcVolumeMount": true, + "enableModelcar": false, + "cpuModelcar": "10m", + "memoryModelcar": "15Mi" } ingress: |- { "ingressGateway" : "knative-serving/knative-ingress-gateway", - "ingressService" : "istio-ingressgateway.istio-system.svc.cluster.local", - "localGateway" : "knative-serving/knative-local-gateway", - "localGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", + "knativeLocalGatewayService" : "knative-local-gateway.istio-system.svc.cluster.local", + "localGateway" : "istio-system/kserve-local-gateway", + "localGatewayService" : "kserve-local-gateway.istio-system.svc.cluster.local", "ingressDomain" : "example.com", "ingressClassName" : "istio", "domainTemplate": "{{ .Name }}-{{ .Namespace }}.{{ .IngressDomain }}", "urlScheme": "https", - "disableIstioVirtualHost": false, + "disableIstioVirtualHost": false, "disableIngressCreation": true } logger: |- @@ -42,7 +47,9 @@ data: "memoryRequest": "1Gi", "memoryLimit": "1Gi", "cpuRequest": "1", - "cpuLimit": "1" + "cpuLimit": "1", + "maxBatchSize": "32", + "maxLatency": "5000" } agent: |- { @@ -60,12 +67,3 @@ data: "cpuRequest": "100m", "cpuLimit": "1" } - deploy: |- - { - "defaultDeploymentMode": "Serverless" - } - metricsAggregator: |- - { - "enableMetricAggregation": "false", - "enablePrometheusScraping" : "false" - }