Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(inferenceservice): added integration tests to inferenceservice reconcile function #574

Merged

Conversation

Al-Pragliola
Copy link
Contributor

@Al-Pragliola Al-Pragliola commented Nov 19, 2024

Description

This pull request introduces integration tests for the new inferenceservice reconcile feature, and I chose to use envtest to test the functionality, as it is the de facto standard for testing controller-like behavior. Since envtest is not a real Kubernetes cluster, I had to mock responses from the model registry, as you can see in the suite_test.go file, and check that the inference-service-id label is added to the kserve inferenceservice CR. I also found some bugs in the reconciler thanks to the tests, and fixed them in this PR.

NOTE: The large chunk of code in this PR comes from the CRD that needs to be added to the envtest cluster to make it handle inference services.

How Has This Been Tested?

make test

Merge criteria:

  • All the commits have been signed-off (To pass the DCO check)
  • The commits have meaningful messages; the author will squash them after approval or in case of manual merges will ask to merge with squash.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work.
  • Code changes follow the kubeflow contribution guidelines.

Copy link
Member

@tarilabs tarilabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you very much @Al-Pragliola some minor comments, otherwise

/lgtm

already!

@@ -0,0 +1,16330 @@
---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: instead of having this file locally, can we use from kserve repo like:

https://github.com/kserve/kserve/blob/release-0.13/charts/kserve-crd/templates/serving.kserve.io_inferenceservices.yaml

by indicating a link of sort to envtest?

Comment on lines -245 to +247
return fmt.Sprintf("%s.%s.svc.cluster.local:%d", name, namespace, *restApiPort), nil
return fmt.Sprintf("http://%s.%s.svc.cluster.local:%d", name, namespace, *restApiPort), nil
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't hardcoding http:// be a problem midstream/downstream of Kubeflow where Distributions may default to mTLS? 🤔

Copy link
Contributor Author

@Al-Pragliola Al-Pragliola Nov 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would leave it like that for a default configuration and let the user decide by using the label modelregistry.kubeflow.org/url for every other scenario mLTS/external route/etc

Signed-off-by: Alessio Pragliola <seth.pro@gmail.com>
@Al-Pragliola Al-Pragliola force-pushed the al-pragliola-inferenceservice-tests branch from 7e39107 to bee3508 Compare November 25, 2024 17:34
Signed-off-by: Alessio Pragliola <seth.pro@gmail.com>
Copy link
Member

@tarilabs tarilabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for following up on the comments @Al-Pragliola

/lgtm
/approve

@google-oss-prow google-oss-prow bot added the lgtm label Nov 26, 2024
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tarilabs

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow bot merged commit 257b85b into kubeflow:main Nov 26, 2024
17 checks passed
@Al-Pragliola Al-Pragliola deleted the al-pragliola-inferenceservice-tests branch November 26, 2024 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants