Skip to content

Add support for honoring upgrade edges defined in the catalog #231

Closed
@awgreene

Description

@awgreene

Background
OLM V0 had a concept of an upgrade graph, which defined linear upgrade graphs that users had to proceed through, learn more here: https://olm.operatorframework.io/docs/concepts/olm-architecture/operator-catalog/creating-an-update-graph/

Story

  • As an OLM V1 user, I would like to respect upgrade edges defined by operator authors.

Demo Script:

  1. Install OLM v1.
  2. Create an Operator CR that uses the spec.Version field to install operator Foo at version n.
  3. Wait for the operator Foo to install
  4. Attempt to change the spec.Version to version m, which is not a supported upgrade edge
  5. Check that the upgrade fails because it isn't a valid upgrade edge
  6. Update the spec.Version field to n+1, which is a supported upgrade edge.
  7. Check that the upgrade proceeds as expected.

Out of Scope

  • If operator foo is installed at version n, we will not proceed if the user updates the spec.Version field to a value that could be reached after a series of upgrades. IE: Fail if operator foo is installed at version n and then the user updates the spec.Version field to n+2.
  • There is no expectation of reporting available upgrade edges in the operator CR Status.

Things to consider:

  • How can we map installed content to catalog content
  • How can we respect bundle replaces fields
  • How can we respect bundle skips fields
  • How can Variable source that considers installed content

Proposed issues:

Follow Ups:

  • Update the demo script to reference an actual operator and version.
  • Create an issue to consider skipRange

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions