-
Notifications
You must be signed in to change notification settings - Fork 68
Closed
Milestone
Description
It would be great to see something that incorporates all the new features:
- catalogd polling
Operator.spec.versionranges- semver-based upgrade constraint policy
- rukpak bundle health
Proposed demo script:
- Create and push a scratch-based FBC image for
demo-catalog:latestcontaining a bundlev2.0.0-alpha1 - Create a
Catalogpointing to a tag for (1) with a short polling interval (15s) - Create an
Operatorthat specifiesspec.version: 2.0.x - Observe a resolution failure because no bundles exist in that range
- Highlight: pre-releases are excluded when range implies non-prerelease versions.
- Update the catalog image with a new bundle,
v2.0.0, and push to the samedemo-catalog:latesttag. - Without modifying the
Operatoror theCatalog, observe that the resolution succeeds in ~15s and a bundle deployment is created.- Highlight: Operator controller reconciles
Operators whenCatalogpolling is enabled and the next poll resolves to a new SHA.
- Highlight: Operator controller reconciles
- Watch the bundle deployment and observe its updates. See the
Healthycondition transition fromFalsetoTrueand watch as the Healthy condition message changes to reflect the current health status.- Highlight: BD installed condition still tells you whether the BD was successfully applied
- Highlight: BD healthy condition gives you details about what is going on with the bundle after it has been applied.
- Update the catalog image with a new bundle
v2.1.0, and again push to the samedemo-catalog:latesttag - Without modifying the
Operatoror theCatalog, observe no upgrade occurs:- Highlight:
Operator.spec.versionlimits versions to the 2.0 z-stream - Future work idea: perhaps we can put something on the Operator status that says there are successors available that fall outside the specified version range?
- Highlight:
- Update the catalog image with a new bundle
v2.0.1, and again push to the samedemo-catalog:latesttag - Without modifying the Operator or the
Catalog, observe that an upgrade occurs tov2.0.1- Highlight: Again,
Operator.spec.versionlimits versions to the 2.0 z-stream.v2.0.1is in the range. An upgrade proceeds automatically without a change to theOperatorobject.
- Highlight: Again,
- Update
Operator.spec.versionto2.1.x - Observe that an upgrade occurs to
v2.1.0- Highlight: change to
Operatorresults in re-resolution
- Highlight: change to
- Update the catalog image with a new bundle
v3.0.0, and again push to the samedemo-catalog:latesttag. - Update Operator.spec.version to
3.0.x - Observe a resolution failure.
- Highlight: Operator controller understands semver and assumes that a major version bump could break existing users, and therefore refuses to upgrade.
- Update
Operatorto setspec.upgradeConstraintPolicy: Ignore - Observe resolution and upgrade to
v3.0.0succeed.- Highlight: Administrators have an escape hatch to override OLM's safety mechanisms and allow upgrades across major versions.
- In a single update, set the
Operatorwith.spec.version: 2.1.xandspec.upgradeConstraintPolicy: Enforce - Observe resolution fail
- Highlight: downgrades are disallowed by default
- Update
Operatorto setspec.upgradeConstraintPolicy: Ignore - Observe resolution and downgrade to
v2.1.0succeed.- Highlight: Administrators have an escape hatch to override OLM's safety mechanisms and allow downgrades
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done