-
Notifications
You must be signed in to change notification settings - Fork 34
Use FBC as the only API for exposing catalog content on cluster #38
Description
Motivation:
Right now, the content of a file-based catalog(distributed in an OCI container image) is exposed on cluster using Package and BundleMetadata APIs. However, this translation layer adds another layer of APIs, that must be maintained and supported, besides the FBC API, without adding any extra value to the goal of exposing the catalog metadata on cluster. Since the FBC API itself is
a) Already an API we will be maintaining and providing support guarantees for
b) Is sufficient to communicate all of the information in the catalog to the on-cluster consumers (as opposed to the legacy sqlite db API that needed the translation in order to be interpretable/consumable)
the FBC API should be exposed without any translation on cluster.
Goal:
One way to go about this is consolidating the Package/BundleMetadata APIs to a single CatalogMetadata API, that contains the schemas in it's spec field.
For eg, for a package foo that has bundles foo.v0.1.0 and foo.v0.2.0, the following CatalogMetadata objects would be created:
kind: CatalogMetdata
metadata:
labels:
catalog: bar
name: foo.v0.1.0
package: foo
schema: olm.bundle
name: foo.v0.1.0
spec:
catalog: bar
package: foo
schema: olm.bundle
content:
<fbc blob rendered as yaml>
.
.kind: CatalogMetdata
metadata:
labels:
catalog: bar
name: foo.v0.2.0
package: foo
schema: olm.bundle
name: foo.v0.2.0
spec:
catalog: bar
package: foo
schema: olm.bundle
content:
<fbc blob rendered as yaml>
.
.kind: CatalogMetdata
metadata:
labels:
catalog: bar
name: foo.v0.1.0
package: foo
schema: olm.package
name: foo
spec:
catalog: bar
package: foo
schema: olm.package
content:
<fbc blob rendered as yaml>
.
.This would allow clients to query for the content on cluster in a kube native way by taking advantage of the label selectors, and read the content off of the CatalogMetadata objects.
$ kubectl get catalogmetadata -l package=foo
NAME CATALOG SCHEMA PACKAGE
foo bar olm.package foo
foo.v0.1.0 bar olm.bundle foo
foo.v0.2.0 bar olm.bundle foo Acceptance Criteria:
- Package and bundle metadata api are removed and replaced with catalog metadata api
- spec.content of the api has individual FBC blobs
- labels mentioned in description are implemented for each CR
Metadata
Metadata
Assignees
Labels
Type
Projects
Status