Skip to content

Conversation

shmuelk
Copy link
Contributor

@shmuelk shmuelk commented Jun 24, 2025

This PR adds a factory function for the DecisionTree filter along with tests for the added factory function.

In addition there is a small refactoring in cmd/epp/runner/runner.go that was requested in PR #1039

This PR fixes issue #1011

Copy link

netlify bot commented Jun 24, 2025

Deploy Preview for gateway-api-inference-extension ready!

Name Link
🔨 Latest commit 293a4f0
🔍 Latest deploy log https://app.netlify.com/projects/gateway-api-inference-extension/deploys/685d670f51e87700084ba5fc
😎 Deploy Preview https://deploy-preview-1053--gateway-api-inference-extension.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jun 24, 2025
@k8s-ci-robot k8s-ci-robot requested review from ahg-g and robscott June 24, 2025 08:31
@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Jun 24, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @shmuelk. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jun 24, 2025
@ahg-g
Copy link
Contributor

ahg-g commented Jun 24, 2025

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jun 24, 2025
@ahg-g
Copy link
Contributor

ahg-g commented Jun 24, 2025

/assign @liu-cong

Copy link
Contributor

@liu-cong liu-cong left a comment

Choose a reason for hiding this comment

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

/lgtm

Thanks! Just a few nits.

return loadDecisionTree(&parameters, handle)
}

func loadDecisionTree(parameters *decisionTreeFilterParameters, handle plugins.Handle) (framework.Filter, error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Prefer returning the concrete type (*DecisionTreeFilter) than the interface

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

return result, nil
}

func loadDecisionTreeEntry(entry *decisionTreeFilterEntry, handle plugins.Handle) (framework.Filter, error) {
Copy link
Contributor

Choose a reason for hiding this comment

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

same nit, return concrete type

Copy link
Contributor Author

@shmuelk shmuelk Jun 25, 2025

Choose a reason for hiding this comment

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

This function doesn't always return a DecisionTreeFilter, it may return a framework.Filter.

if err != nil {
return nil, err
}
if result.Current == nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

loadDecisionTreeEntry should make sure if error is nil, the result is always valid, so no need to check again

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done


func loadDecisionTreeEntry(entry *decisionTreeFilterEntry, handle plugins.Handle) (framework.Filter, error) {
if entry == nil {
return nil, nil
Copy link
Contributor

Choose a reason for hiding this comment

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

I prefer the entry is never nil, and the caller should make sure it only calls loadDecisionTreeEntry when the entry is not nil.

Ideally when error is nil, the result is alway valid and safe to use

Copy link
Collaborator

Choose a reason for hiding this comment

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

Ideally when error is nil, the result is alway valid and safe to use

++

However, I do think it's reasonable to nil check and return an error in this case. Or you'll still need to do the nil check discussed here: https://github.com/kubernetes-sigs/gateway-api-inference-extension/pull/1053/files#r2164883752

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done. The caller now checks the entries before calling loadDecisionTreeEntry


if entry.PluginRef != nil {
instance := handle.Plugins().Plugin(*entry.PluginRef)
if instance == nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

This is unrelated but I think the handle should provide a GetPlugin() method and return an error if the plugin ref doesn't exist. That way is more explicit and less error prone.

Copy link
Contributor

Choose a reason for hiding this comment

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

++, agree with one small difference.
I suggest GetPlugin to return (plugin, bool) same as map does (bool - if key was found or not)

Copy link
Contributor Author

@shmuelk shmuelk Jun 25, 2025

Choose a reason for hiding this comment

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

map[key], doesn't have to return a bool. There were reviews in which w were told to remove the bool and check for nll instead.

In general getters in Go do not have the prefix Get unlike for example Java.

Copy link
Contributor

Choose a reason for hiding this comment

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

It's more idiomatic in go to have the Plugin method to either return a bool or error to indicate the failure scenario. Maybe I was missing some context but I am not sure why checking nil is preferred.

Just calling this out but not related to this PR thought

@k8s-ci-robot k8s-ci-robot added lgtm "Looks good to me", indicates that a PR is ready to be merged. do-not-merge/invalid-commit-message Indicates that a PR should not merge because it has an invalid commit message. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 24, 2025
@shmuelk
Copy link
Contributor Author

shmuelk commented Jun 25, 2025

/retest

@shmuelk shmuelk force-pushed the decision-tree-factory branch from daf6a59 to ad7f764 Compare June 25, 2025 11:57
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed do-not-merge/invalid-commit-message Indicates that a PR should not merge because it has an invalid commit message. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 25, 2025
@shmuelk
Copy link
Contributor Author

shmuelk commented Jun 25, 2025

I had done a rebase but the automation had issues with the commits from the dependency bot.

I re-did the rebase and force pushed.

Copy link
Contributor

@liu-cong liu-cong left a comment

Choose a reason for hiding this comment

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

/lgtm


if entry.PluginRef != nil {
instance := handle.Plugins().Plugin(*entry.PluginRef)
if instance == nil {
Copy link
Contributor

Choose a reason for hiding this comment

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

It's more idiomatic in go to have the Plugin method to either return a bool or error to indicate the failure scenario. Maybe I was missing some context but I am not sure why checking nil is preferred.

Just calling this out but not related to this PR thought

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 25, 2025
@nirrozenbaum
Copy link
Contributor

@shmuelk one conflict to solve and I think this is ready for merge.

@k8s-ci-robot k8s-ci-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 25, 2025
@nirrozenbaum
Copy link
Contributor

@shmuelk can you squash commits so past PRs(and their authors) won’t appear on your PR?

@shmuelk shmuelk closed this Jun 26, 2025
@shmuelk shmuelk force-pushed the decision-tree-factory branch from 4ce4092 to b4d1e67 Compare June 26, 2025 15:08
@k8s-ci-robot k8s-ci-robot added size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. and removed lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 26, 2025
shmuelk added 4 commits June 26, 2025 18:12
Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
@shmuelk shmuelk reopened this Jun 26, 2025
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Jun 26, 2025
@shmuelk
Copy link
Contributor Author

shmuelk commented Jun 26, 2025

@liu-cong I was asked to redo the history. Please re-approve

@shmuelk
Copy link
Contributor Author

shmuelk commented Jun 26, 2025

/retest

@nirrozenbaum
Copy link
Contributor

/lgtm
/approve

Thanks! 🙏🏼

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 26, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: nirrozenbaum, shmuelk

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 26, 2025
@k8s-ci-robot k8s-ci-robot merged commit 8dc40a5 into kubernetes-sigs:main Jun 26, 2025
9 checks passed
@shmuelk shmuelk deleted the decision-tree-factory branch June 26, 2025 16:46
EyalPazz pushed a commit to EyalPazz/gateway-api-inference-extension that referenced this pull request Jul 9, 2025
…s-sigs#1053)

* Added a factory function for the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Added tests of the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Registered the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Refactored the configuration loading

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
BenjaminBraunDev pushed a commit to BenjaminBraunDev/gateway-api-inference-extension that referenced this pull request Aug 12, 2025
…s-sigs#1053)

* Added a factory function for the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Added tests of the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Registered the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Refactored the configuration loading

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
BenjaminBraunDev pushed a commit to BenjaminBraunDev/gateway-api-inference-extension that referenced this pull request Aug 14, 2025
Add APIs for the instantiated plugins to the EPP Handle (kubernetes-sigs#1039)

* Added plugin instance APIs to plugins.Handle

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* An implementation of the new plugins.Handle APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Moved all configuration loading code to new package

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updates due to new and moved APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Cleanup of old configuration loading code

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

chore(deps): bump the kubernetes group with 6 updates (kubernetes-sigs#1050)

Bumps the kubernetes group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.33.1` | `0.33.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.33.1` | `0.33.2` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.33.1` | `0.33.2` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.33.1` | `0.33.2` |
| [k8s.io/code-generator](https://github.com/kubernetes/code-generator) | `0.33.1` | `0.33.2` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.33.1` | `0.33.2` |

Updates `k8s.io/api` from 0.33.1 to 0.33.2
- [Commits](kubernetes/api@v0.33.1...v0.33.2)

Updates `k8s.io/apiextensions-apiserver` from 0.33.1 to 0.33.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](kubernetes/apiextensions-apiserver@v0.33.1...v0.33.2)

Updates `k8s.io/apimachinery` from 0.33.1 to 0.33.2
- [Commits](kubernetes/apimachinery@v0.33.1...v0.33.2)

Updates `k8s.io/client-go` from 0.33.1 to 0.33.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.33.1...v0.33.2)

Updates `k8s.io/code-generator` from 0.33.1 to 0.33.2
- [Commits](kubernetes/code-generator@v0.33.1...v0.33.2)

Updates `k8s.io/component-base` from 0.33.1 to 0.33.2
- [Commits](kubernetes/component-base@v0.33.1...v0.33.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

remove datastore dependency from the scheduler (kubernetes-sigs#1049)

* remove datastore dependency from the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* added back comments on snapshotting pods from datastore before calling schedule

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* removed fake datastore from conformance scheduler test

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

Add subsetting logic for epp (kubernetes-sigs#981)

feat: Added a factory function for the DecisionTree filter (kubernetes-sigs#1053)

* Added a factory function for the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Added tests of the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Registered the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Refactored the configuration loading

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

Adding pprof endpoints to metrics port (kubernetes-sigs#1069)

feat: Add a context.Context to the plugins.HAndle interface (kubernetes-sigs#1076)

* Added a context.Context to the plugins.Handle interface

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes to tests due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

convert subset filter from a plugin to logic in director (kubernetes-sigs#1088)

* convert subset filter from a plugin to logic in director

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* replace interface{} with any

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* make linter happy

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* address code review comments

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

chore(deps): bump golang.org/x/sync from 0.14.0 to 0.15.0 (kubernetes-sigs#1096)

Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.14.0 to 0.15.0.
- [Commits](golang/sync@v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Introduce plugins.TypedName to be used for Plugin base implementation (kubernetes-sigs#1086)

* introduce TypedName to reduce boilerplate, modify plugins

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* implement GetTypedName()

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* Remove Type() and Name() from Plugin interface

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* use TypedName as private field, not embedded

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

---------

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

move the conversion from pod metrics to scheduler pod representation one level up (kubernetes-sigs#1104)

* move the converstion from pod metrics to scheduler pod representation one level up

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* minor change in helper func

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

handle picking multiple destinations in scheduling layer (kubernetes-sigs#1059)

* implement multiple destination as the output of the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* updated max score picker unit tests to cover multiple pods

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* imports

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* unit-test fix

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

refactor: 🔨 use the more explicit singular form (kubernetes-sigs#1129)
BenjaminBraunDev pushed a commit to BenjaminBraunDev/gateway-api-inference-extension that referenced this pull request Aug 22, 2025
Add APIs for the instantiated plugins to the EPP Handle (kubernetes-sigs#1039)

* Added plugin instance APIs to plugins.Handle

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* An implementation of the new plugins.Handle APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Moved all configuration loading code to new package

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updates due to new and moved APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Cleanup of old configuration loading code

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

chore(deps): bump the kubernetes group with 6 updates (kubernetes-sigs#1050)

Bumps the kubernetes group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.33.1` | `0.33.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.33.1` | `0.33.2` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.33.1` | `0.33.2` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.33.1` | `0.33.2` |
| [k8s.io/code-generator](https://github.com/kubernetes/code-generator) | `0.33.1` | `0.33.2` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.33.1` | `0.33.2` |

Updates `k8s.io/api` from 0.33.1 to 0.33.2
- [Commits](kubernetes/api@v0.33.1...v0.33.2)

Updates `k8s.io/apiextensions-apiserver` from 0.33.1 to 0.33.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](kubernetes/apiextensions-apiserver@v0.33.1...v0.33.2)

Updates `k8s.io/apimachinery` from 0.33.1 to 0.33.2
- [Commits](kubernetes/apimachinery@v0.33.1...v0.33.2)

Updates `k8s.io/client-go` from 0.33.1 to 0.33.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.33.1...v0.33.2)

Updates `k8s.io/code-generator` from 0.33.1 to 0.33.2
- [Commits](kubernetes/code-generator@v0.33.1...v0.33.2)

Updates `k8s.io/component-base` from 0.33.1 to 0.33.2
- [Commits](kubernetes/component-base@v0.33.1...v0.33.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

remove datastore dependency from the scheduler (kubernetes-sigs#1049)

* remove datastore dependency from the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* added back comments on snapshotting pods from datastore before calling schedule

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* removed fake datastore from conformance scheduler test

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

Add subsetting logic for epp (kubernetes-sigs#981)

feat: Added a factory function for the DecisionTree filter (kubernetes-sigs#1053)

* Added a factory function for the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Added tests of the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Registered the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Refactored the configuration loading

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

Adding pprof endpoints to metrics port (kubernetes-sigs#1069)

feat: Add a context.Context to the plugins.HAndle interface (kubernetes-sigs#1076)

* Added a context.Context to the plugins.Handle interface

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes to tests due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

convert subset filter from a plugin to logic in director (kubernetes-sigs#1088)

* convert subset filter from a plugin to logic in director

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* replace interface{} with any

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* make linter happy

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* address code review comments

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

chore(deps): bump golang.org/x/sync from 0.14.0 to 0.15.0 (kubernetes-sigs#1096)

Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.14.0 to 0.15.0.
- [Commits](golang/sync@v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Introduce plugins.TypedName to be used for Plugin base implementation (kubernetes-sigs#1086)

* introduce TypedName to reduce boilerplate, modify plugins

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* implement GetTypedName()

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* Remove Type() and Name() from Plugin interface

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* use TypedName as private field, not embedded

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

---------

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

move the conversion from pod metrics to scheduler pod representation one level up (kubernetes-sigs#1104)

* move the converstion from pod metrics to scheduler pod representation one level up

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* minor change in helper func

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

handle picking multiple destinations in scheduling layer (kubernetes-sigs#1059)

* implement multiple destination as the output of the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* updated max score picker unit tests to cover multiple pods

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* imports

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* unit-test fix

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

refactor: 🔨 use the more explicit singular form (kubernetes-sigs#1129)
BenjaminBraunDev pushed a commit to BenjaminBraunDev/gateway-api-inference-extension that referenced this pull request Aug 29, 2025
Add APIs for the instantiated plugins to the EPP Handle (kubernetes-sigs#1039)

* Added plugin instance APIs to plugins.Handle

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* An implementation of the new plugins.Handle APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Moved all configuration loading code to new package

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updates due to new and moved APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Cleanup of old configuration loading code

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

chore(deps): bump the kubernetes group with 6 updates (kubernetes-sigs#1050)

Bumps the kubernetes group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.33.1` | `0.33.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.33.1` | `0.33.2` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.33.1` | `0.33.2` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.33.1` | `0.33.2` |
| [k8s.io/code-generator](https://github.com/kubernetes/code-generator) | `0.33.1` | `0.33.2` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.33.1` | `0.33.2` |

Updates `k8s.io/api` from 0.33.1 to 0.33.2
- [Commits](kubernetes/api@v0.33.1...v0.33.2)

Updates `k8s.io/apiextensions-apiserver` from 0.33.1 to 0.33.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](kubernetes/apiextensions-apiserver@v0.33.1...v0.33.2)

Updates `k8s.io/apimachinery` from 0.33.1 to 0.33.2
- [Commits](kubernetes/apimachinery@v0.33.1...v0.33.2)

Updates `k8s.io/client-go` from 0.33.1 to 0.33.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.33.1...v0.33.2)

Updates `k8s.io/code-generator` from 0.33.1 to 0.33.2
- [Commits](kubernetes/code-generator@v0.33.1...v0.33.2)

Updates `k8s.io/component-base` from 0.33.1 to 0.33.2
- [Commits](kubernetes/component-base@v0.33.1...v0.33.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

remove datastore dependency from the scheduler (kubernetes-sigs#1049)

* remove datastore dependency from the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* added back comments on snapshotting pods from datastore before calling schedule

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* removed fake datastore from conformance scheduler test

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

Add subsetting logic for epp (kubernetes-sigs#981)

feat: Added a factory function for the DecisionTree filter (kubernetes-sigs#1053)

* Added a factory function for the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Added tests of the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Registered the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Refactored the configuration loading

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

Adding pprof endpoints to metrics port (kubernetes-sigs#1069)

feat: Add a context.Context to the plugins.HAndle interface (kubernetes-sigs#1076)

* Added a context.Context to the plugins.Handle interface

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes to tests due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

convert subset filter from a plugin to logic in director (kubernetes-sigs#1088)

* convert subset filter from a plugin to logic in director

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* replace interface{} with any

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* make linter happy

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* address code review comments

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

chore(deps): bump golang.org/x/sync from 0.14.0 to 0.15.0 (kubernetes-sigs#1096)

Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.14.0 to 0.15.0.
- [Commits](golang/sync@v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Introduce plugins.TypedName to be used for Plugin base implementation (kubernetes-sigs#1086)

* introduce TypedName to reduce boilerplate, modify plugins

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* implement GetTypedName()

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* Remove Type() and Name() from Plugin interface

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* use TypedName as private field, not embedded

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

---------

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

move the conversion from pod metrics to scheduler pod representation one level up (kubernetes-sigs#1104)

* move the converstion from pod metrics to scheduler pod representation one level up

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* minor change in helper func

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

handle picking multiple destinations in scheduling layer (kubernetes-sigs#1059)

* implement multiple destination as the output of the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* updated max score picker unit tests to cover multiple pods

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* imports

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* unit-test fix

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

refactor: 🔨 use the more explicit singular form (kubernetes-sigs#1129)
BenjaminBraunDev pushed a commit to BenjaminBraunDev/gateway-api-inference-extension that referenced this pull request Sep 9, 2025
Add APIs for the instantiated plugins to the EPP Handle (kubernetes-sigs#1039)

* Added plugin instance APIs to plugins.Handle

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* An implementation of the new plugins.Handle APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Moved all configuration loading code to new package

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updates due to new and moved APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Cleanup of old configuration loading code

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

chore(deps): bump the kubernetes group with 6 updates (kubernetes-sigs#1050)

Bumps the kubernetes group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.33.1` | `0.33.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.33.1` | `0.33.2` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.33.1` | `0.33.2` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.33.1` | `0.33.2` |
| [k8s.io/code-generator](https://github.com/kubernetes/code-generator) | `0.33.1` | `0.33.2` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.33.1` | `0.33.2` |

Updates `k8s.io/api` from 0.33.1 to 0.33.2
- [Commits](kubernetes/api@v0.33.1...v0.33.2)

Updates `k8s.io/apiextensions-apiserver` from 0.33.1 to 0.33.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](kubernetes/apiextensions-apiserver@v0.33.1...v0.33.2)

Updates `k8s.io/apimachinery` from 0.33.1 to 0.33.2
- [Commits](kubernetes/apimachinery@v0.33.1...v0.33.2)

Updates `k8s.io/client-go` from 0.33.1 to 0.33.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.33.1...v0.33.2)

Updates `k8s.io/code-generator` from 0.33.1 to 0.33.2
- [Commits](kubernetes/code-generator@v0.33.1...v0.33.2)

Updates `k8s.io/component-base` from 0.33.1 to 0.33.2
- [Commits](kubernetes/component-base@v0.33.1...v0.33.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

remove datastore dependency from the scheduler (kubernetes-sigs#1049)

* remove datastore dependency from the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* added back comments on snapshotting pods from datastore before calling schedule

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* removed fake datastore from conformance scheduler test

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

Add subsetting logic for epp (kubernetes-sigs#981)

feat: Added a factory function for the DecisionTree filter (kubernetes-sigs#1053)

* Added a factory function for the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Added tests of the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Registered the factory function of the DecisionTreeFilter

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Refactored the configuration loading

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

Adding pprof endpoints to metrics port (kubernetes-sigs#1069)

feat: Add a context.Context to the plugins.HAndle interface (kubernetes-sigs#1076)

* Added a context.Context to the plugins.Handle interface

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Changes to tests due to changes in internal APIs

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

convert subset filter from a plugin to logic in director (kubernetes-sigs#1088)

* convert subset filter from a plugin to logic in director

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* replace interface{} with any

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* make linter happy

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* address code review comments

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

chore(deps): bump golang.org/x/sync from 0.14.0 to 0.15.0 (kubernetes-sigs#1096)

Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.14.0 to 0.15.0.
- [Commits](golang/sync@v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Introduce plugins.TypedName to be used for Plugin base implementation (kubernetes-sigs#1086)

* introduce TypedName to reduce boilerplate, modify plugins

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* implement GetTypedName()

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* Remove Type() and Name() from Plugin interface

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

* use TypedName as private field, not embedded

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

---------

Signed-off-by: Etai Lev Ran <elevran@gmail.com>

move the conversion from pod metrics to scheduler pod representation one level up (kubernetes-sigs#1104)

* move the converstion from pod metrics to scheduler pod representation one level up

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* minor change in helper func

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

handle picking multiple destinations in scheduling layer (kubernetes-sigs#1059)

* implement multiple destination as the output of the scheduler

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* updated max score picker unit tests to cover multiple pods

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* imports

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

* unit-test fix

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

---------

Signed-off-by: Nir Rozenbaum <nirro@il.ibm.com>

refactor: 🔨 use the more explicit singular form (kubernetes-sigs#1129)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants