Description
In order for us to support sourcing bundles directly, as is requested in #597, we need the ClusterExtension API to be structured such that one and exactly one sourcing mechanism can be specified.
A discriminated union is a good solution to this problem. If this path is chosen, special attention should be paid to the definition of a discriminated union because it likely requires very specific validations to exist.
The fields that are currently in the spec root that are related to catalog sourcing are:
- packageName
- version
- channel
- upgradeConstraintPolicy
These fields should be moved to a discriminated union type that is specific to sourcing from catalogs.
Here's a rough sketch of what the new structure could look like:
spec:
source:
type: Catalog
catalog:
packageName: foo
channel: bar
version: 1.0.0
upgradeConstraintPolicy: Enforce
If we have the above structure, there will be a logical place to add support for direct bundle installs in the future, like so:
spec:
source:
type: BundleImage
bundleImage:
ref: quay.io/acme-co/widget-operator-bundle:v1.0.0
Metadata
Metadata
Assignees
Type
Projects
Status