-
Notifications
You must be signed in to change notification settings - Fork 195
feat(api): Introduce InferenceModelRewrite API #1816
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
Conversation
✅ Deploy Preview for gateway-api-inference-extension ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
/assign @ahg-g @kfswain @nirrozenbaum @danehans Can you help take a look? I also put the implementation in another PR #1820 |
| // +listType=map | ||
| // +listMapKey=type | ||
| // +kubebuilder:validation:MaxItems=8 | ||
| // +kubebuilder:default={{type: "Accepted", status: "Unknown", reason:"Pending", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we going to keep it in a "Pending" reason but still actuate on it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, I was following the pattern we have in InferenceObejctive:
| // +kubebuilder:default={{type: "Ready", status: "Unknown", reason:"Pending", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"}} |
But since for phase 1, it is a config-only CRD, for now I removed the default value. wdyt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC this was an artifact of the initial API review, we were asked to have a default status on all of our objects. This status will never be removed tho as nothing actually reconciles these APIs, EPP just reads them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, I suggest to keep it as is then, and we figure out how it is reconciled later similar to infObj
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool, added it back in 9927c8d
| type InferenceModelRewriteSpec struct { | ||
| // PoolRef is a reference to the inference pool. | ||
| // +kubebuilder:validation:Required | ||
| PoolRef PoolObjectReference `json:"poolRef"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend making PoolRef a pointer so that in the future we may relax validation here and make it optional.
One idea I have is this: if PoolRef is set, then the pool's EPP is responsible for this re-write; if not set, then that is BBR's signal that it should do it since this is a pool agnostic re-write. wdyt @kfswain @robscott @nirrozenbaum @zetxqx?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sounds good 👍🏻
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, I updated the PoolRef to a pointer, but I still keep the // +kubebuilder:validation:Required for now. We can always remove it if BBR also support it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGTM
|
/lgtm We are discussing removing the default condition for this and the infObj api, but I think we should do that in separate PR that does it for both. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ahg-g, zetxqx 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 |
What type of PR is this?
What this PR does / why we need it:
This PR introduces the new InferenceModelRewrite Custom Resource Definition (CRD) and its corresponding proposal
document.
Key changes in this PR include:
This PR is purely declarative and does not include any controller or data plane logic. The implementation of the EPP
enhancements will follow in a subsequent PR.
For full details, please see the proposal document (docs/proposals/inferenceomodelrewrite-api/README.md).
Which issue(s) this PR fixes:
Fixes partially #1811
Does this PR introduce a user-facing change?: