Skip to content

The Operator Controller can provide Deppy with a set of constraints and return a solution set consisting of entity IDs. #74

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

Closed
awgreene opened this issue Dec 7, 2022 · 4 comments

Comments

@awgreene
Copy link
Member

awgreene commented Dec 7, 2022

User Story:

  • As a Deppy user, I would like to provide Deppy a list of constraints and Entity Sources and be returned a solution set consisting of entity IDs.

Acceptance Criteria:

  • If a solution set is found, the list of entity IDs are returned.
  • If no solution set is found, an error explaining why the constraints could not be met is returned.
  • The operator CR's status is updated to reflect that an entity satisfying it's constraints have been found.
@joelanford
Copy link
Member

Is this issue in the correct repository?

@awgreene
Copy link
Member Author

awgreene commented Jan 3, 2023

@joelanford this Issue focuses on the Operator Controller using the Deppy Library to to find the entity IDs so it's in the correct repository. Probably warrants a better description though.

@awgreene awgreene changed the title Deppy can take a set of constraints and return a solution set consisting of entity IDs. The Operator Controller can provide Deppy with a set of constraints and return a solution set consisting of entity IDs. Jan 3, 2023
@varshaprasad96
Copy link
Member

varshaprasad96 commented Jan 5, 2023

This is an attempt to break down the issue and understand the implementation required to integrate with Deppy. Please correct me if I'm wrong. Also, I have a few follow up questions which would be helpful in understanding the next steps.

The process involved here is to provide Deppy with entity sources and constraint generators so that we can call the "DeppySolver" (https://github.com/operator-framework/deppy/blob/36fa82370999fb0fa8c6a04f9fff228e58e5bc3b/pkg/deppy/solver/solver.go#L26).

  1. Entity Source - This in my mind are the list of packages which need to be installed. It includes the dependencies - for ex., prometheus-0.0.1, requires x-0.0.2, y-0.1.0 etc.
  2. Constraint generator - The constraint generator needs a variable source . These are basically the OLM constraints as introduced by OLM constraints deppy#55.

The questions which I have are:

  • How does the Operator Controller get the inputs for (1) and (2), given the Operator API spec only has the package name. Do we query the bundleDeployments available (installed by rukpak provisioner) on the cluster?
  • Are the constraint generator values from FBC / Venners (https://olm.operatorframework.io/docs/reference/file-based-catalogs/#specification) and does "relatedImages" reflect the dependencies. If so, it doesn't seem like operator api has access to bundle. What is the entry point or how can the operator controller get the required inputs.

@perdasilva
Copy link
Contributor

I think #101 closes this

@github-project-automation github-project-automation bot moved this from Todo to Done in OLM v1 Jan 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

4 participants