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

Have interceptors record what routing table version(s) they are aware of #225

Closed
arschles opened this issue Aug 16, 2021 · 6 comments
Closed
Labels
stale All issues that are marked as stale due to inactivity
Milestone

Comments

@arschles
Copy link
Collaborator

arschles commented Aug 16, 2021

In #206, interceptors have to stay up to date on a namespace-global routing table. It would be helpful to provide a way for interceptors to confirm that they have gotten a specific version of the routing table.

Use-Case

I imagine the most common use case for this functionality would be to ensure that all interceptors are aware of the most up to date routing table.

Specification

The implementation can vary, but I can think of a few possible and feasible user interfaces:

  • Have all interceptors write to some Kubernetes object indicating what version of the routing table they are currently aware of. We may find value in having them append to the object so that some observer can see history of each observer.
    • One possible negative to this approach is that there may be a significant amount of garbage generated as changes to the routing table mount, and as interceptors come and go
  • Expose an RPC endpoint on all interceptors that indicates what version they are aware of (and possibly a history of all versions they've been aware of, again for debuggability).
    • To fetch the currently-known versions of all interceptors, an observer would fetch the endpoints for the interceptor's admin Service, then issue the RPC to each interceptor. The scaler currently does something similar with /queue endpoints.

Note that since the routing table is stored in a ConfigMap, the aforementioned version numbers can be the same thing as the Kubernetes resource version.

cc/ @yaron2 since this is related to #206 and #183

@arschles arschles changed the title Allow interceptors to confirm that they got the most up to date routing table Have interceptors record what routing table version(s) they are aware of Aug 16, 2021
@khaosdoctor
Copy link
Contributor

I think the easiest way to do this is to have a simple endpoint on the admin server that will just echo the configMap resource version the interceptor has. The operator can compare that to the latest one fetched from the configMap itself and request an update if needed (there would be the need of an endpoint for that too)

@arschles
Copy link
Collaborator Author

@khaosdoctor, that would be the second bullet, correct?

@khaosdoctor
Copy link
Contributor

Yep, just agreeing with that haha

@arschles
Copy link
Collaborator Author

perfect - just wanted to make sure we're on the same page. after #206 (which I'm planning on merging very soon) are you interested in taking this one on?

@arschles arschles added this to the v0.3.0 milestone Oct 8, 2021
@arschles arschles modified the milestones: v0.3.0, v0.2.1 Nov 16, 2021
@stale
Copy link

stale bot commented Jan 15, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale All issues that are marked as stale due to inactivity label Jan 15, 2022
@stale
Copy link

stale bot commented Jan 22, 2022

This issue has been automatically closed due to inactivity.

@stale stale bot closed this as completed Jan 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale All issues that are marked as stale due to inactivity
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants