Skip to content

Commit e6eada2

Browse files
authored
reference docs: FBC property updates (#312)
Signed-off-by: Joe Lanford <[email protected]>
1 parent 33368fa commit e6eada2

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

content/en/docs/Reference/file-based-catalogs.md

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,21 @@ The `olm.gvk.required` property [cue][cuelang-spec] schema is:
387387
}
388388
```
389389

390+
#### `olm.csv.metadata`
391+
392+
`olm.csv.metadata` properties are used to include informational metadata about a bundle. This property is optional, and
393+
there can be at most one of these properties per bundle. Bundles that include this property should not include any
394+
`olm.bundle.object` properties. This property supersedes the `olm.bundle.object` property.
395+
396+
> **NOTE**: Core OLM does not require a `olm.csv.metadata` property to be included on bundles. However, the OLM Package
397+
> Server (used by tooling such as the kubectl operator plugin and the OpenShift console) does require these properties
398+
> to be able to serve metadata about the packages in a catalog. In order to satisfy the needs of the package server, catalog
399+
> maintainers should use this property to include the CSV metadata for all bundles that are channel heads.
400+
401+
As of `opm` version 1.28.0, this property is automatically generated by when migrating SQLite catalogs with `opm migrate`
402+
and when rendering SQLite catalogs and registry+v1 bundles with `opm render`. Catalogs containing `olm.csv.metadata`
403+
properties must be served by `opm` binaries with version at least `1.28.0`.
404+
390405
#### `olm.constraint`
391406

392407
An [`olm.constraint` property][generic-constraint-ep] defines a dependency constraint of a particular type.
@@ -552,40 +567,27 @@ Example:
552567
[generic-constraint-ep]: https://github.com/operator-framework/enhancements/blob/master/enhancements/generic-constraints.md
553568
[compound-constraint-ep]: https://github.com/operator-framework/enhancements/blob/master/enhancements/compound-bundle-constraints.md
554569

555-
#### `olm.deprecated`
570+
#### `olm.bundle.object` (deprecated)
556571

557-
An `olm.deprecated` property defines an `olm.bundle` object which is not installable. Historically, bundle deprecation mechanisms required this property on the `olm.bundle` object(s). This was necessary for SQLite-based catalogs that required all `olm.bundle` objects contributing to valid upgrade edges be present to avoid foreign key violations.
558-
559-
For file-based catalogs, we can simply omit the `olm.bundle` and maintain a valid upgrade graph. Since this property no longer serves any function in file-based catalogs, `opm render` will exclude `olm.bundle`s that contain this property.
560-
561-
#### `olm.bundle.object` (alpha)
562-
563-
`olm.bundle.object` properties are used to inline (or reference) a bundle's manifests directly in the catalog.
572+
`olm.bundle.object` properties are used to inline a bundle's manifests directly in the catalog.
564573

565574
> **NOTE**: Core OLM does not require `olm.bundle.object` properties to be included on bundles. However, the OLM Package
566575
> Server (used by tooling such as the kubectl operator plugin and the OpenShift console) does require these properties
567576
> to be able to serve metadata about the packages in a catalog. In order to satisfy the needs of the package server, catalog
568577
> maintainers should use this property to include the CSV for all bundles that are channel heads.
569578
>
570-
> This property is in _alpha_ because it will likely be rendered obsolete when updates can be made to the OLM Package
571-
> Server to no longer require manifests in the catalog.
579+
> This property is _deprecated_ because it causes major performance issues when loading and serving file-based catalogs.
580+
> The `olm.csv.metadata` property, which serves the exact same purpose, should be used instead.
572581

573582
A bundle object property can contain inlined data using the `value.data` field, which must be the base64-encoded string
574583
of that manifest.
575584

576-
Alternately, a bundle object property can be a reference to a file relative to the location of the file in which the
577-
bundle is declared. Any referenced files must be within the catalog root.
578-
579585
The `olm.bundle.object` property [cue][cuelang-spec] schema is:
580586
```cue
581587
582588
#PropertyBundleObject: {
583589
type: "olm.bundle.object"
584-
value: #propertyBundleObjectRef | #propertyBundleObjectData
585-
}
586-
587-
#propertyBundleObjectRef: {
588-
ref: string & !=""
590+
value: #propertyBundleObjectData
589591
}
590592
591593
#propertyBundleObjectData: {

0 commit comments

Comments
 (0)