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

Operator controller uses deppy to find solutions for existing operator CRs #63

Closed
awgreene opened this issue Nov 23, 2022 · 1 comment
Closed

Comments

@awgreene
Copy link
Member

awgreene commented Nov 23, 2022

User Story: As a user, I would like the operator controller to be able to identify if it can install a set of bundles that satisfies the existing operator CRs.

Why is this important?

  • Deppy is being developed as a framework, which will allow other projects to import Deppy as a library that can be used to identify if a set of entities can satisfy a set of constraints. The Operator Controller will then rely on the Deppy library to decide which operator must be installed on cluster based on:
    -- user constraints
    -- cluster constraints
    -- dependency constraints
    -- constraints introduced by operators currently installed
  • The initial delivery tracked in this epic will only focus on supporting the following constraints:
    -- PackageName Constraints: Allowing users to specify that an entity must be from a particular package
    -- GVK Uniqueness Constraints: Allowing users to specify that GVKs introduced to the cluster must be provided by a single entity.
  • Multiple operator CRs can introduce multiple PackageName constraints.

Acceptance Criteria:

  • Deppy should be embedded in the Operator Controller, possibly behind an interface so it can easily be moved to its own standalone service.
  • The operator controller can:
    -- identify when an operator CR cannot be satisfied.
    -- identify solutions when they exist.
  • The output from Deppy will provide a list of references to bundles that were selected. These references will then be used by the operator controller to create RukPak bundleDeployments. The format of the references needs to be determined as a part of this ticket.
@oceanc80
Copy link

oceanc80 commented Nov 30, 2022

Assumptions:

  • We will cache the catalog sources locally on the Operator Controller side
  • We will use registryv1 bundles and the existing CatalogSources
  • We will only allow the Operator api to communicate restraints. (Existing operators will not influence resolution).

Prereqs:

Action Items:

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

2 participants