def test_lightgbm_kserve(): service_name = "isvc-lightgbm" predictor = V1beta1PredictorSpec( min_replicas=1, lightgbm=V1beta1LightGBMSpec( storage_uri="gs://kfserving-examples/models/lightgbm/iris", resources=V1ResourceRequirements( requests={"cpu": "100m", "memory": "256Mi"}, limits={"cpu": "100m", "memory": "256Mi"}, ), ), ) isvc = V1beta1InferenceService( api_version=constants.KSERVE_V1BETA1, kind=constants.KSERVE_KIND, metadata=client.V1ObjectMeta( name=service_name, namespace=KSERVE_TEST_NAMESPACE ), spec=V1beta1InferenceServiceSpec(predictor=predictor), ) kserve_client = KServeClient(config_file=os.environ.get("KUBECONFIG", "~/.kube/config")) kserve_client.create(isvc) kserve_client.wait_isvc_ready(service_name, namespace=KSERVE_TEST_NAMESPACE) res = predict(service_name, "./data/iris_input_v3.json") assert res["predictions"][0][0] > 0.5 kserve_client.delete(service_name, KSERVE_TEST_NAMESPACE)
def _get_resource_requirements(self): """Get the resource requirements that are configured. This will construct and return the V1ResourceRequirements object to be used as the value of resource property of a container. The resource values are those provided when the S3 data mover was initialized. """ resources = V1ResourceRequirements() requests = {} if self.cpu_request is not None: requests['cpu'] = self.cpu_request if self.memory_request is not None: requests['memory'] = self.memory_request if requests: resources.requests = requests limits = {} if self.cpu_limit is not None: limits['cpu'] = self.cpu_limit if self.memory_limit is not None: limits['memory'] = self.memory_limit if limits: resources.limits = limits return resources