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

Provide a replacement for the old querier mechanism #1116

Open
jchunkins opened this issue Jun 20, 2023 · 3 comments
Open

Provide a replacement for the old querier mechanism #1116

jchunkins opened this issue Jun 20, 2023 · 3 comments

Comments

@jchunkins
Copy link
Contributor

Original Question in Slack

I started a discussion regarding a replacement for the old querier mechanism in slack which I have included below:

We have code that ties into the old querier mechanism from operator-registry where we would do the following:

  1. convert declarative config to model representation using model, err := declcfg.ConvertToModel(cfg)
  2. get the querier using querier, err = registry.NewQuerier(model)
  3. use the querier so we can get the same results as would be provided via the GRPC interface, but without actual GRPC calls.

With the changes that went in sometime in January, this mechanism was replaced with the JSON cache. To do something similar to what I described above I’d either need public access to things that are currently private, (e.g. JSON.packageIndex) or I need a function like func FromDeclCfg(*cfg declcfg.DeclarativeConfig) *JSON that allows me to have a JSON instance built from a declarative config.

Given what I’ve described, is there some other option I’ve not considered or do we need a code change to make this happen?

Potential PRs To-date

After discussion with @joelanford, he created PR #1111 which would allow the JSON cache to be instantiated without incurring unnecessary processing for the use case described above. He would like to explore other options that don't rely on the cache mechanism to make for a cleaner API.

@jchunkins
Copy link
Contributor Author

@joelanford I see that PR's related to this issue have been closed. We still have the problem where we're still relying on the Querier interface (we had to copy querier.go and define var umask which is needed by that code), so some form of way forward is still needed.

@joelanford
Copy link
Member

Yeah, I don't think the direction of that PR had any legs. But definitely understood that this is still an open problem. I'm thinking we need a different approach that doesn't use the cache. But that might mean a bit more refactoring of the pkgIndex to make it reusable outside of cache contexts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants