Skip to content

Commit 13c7ffb

Browse files
camilamacedo86timflannagan
authored andcommitted
doc: clarifies opm usage and what tool can help with bundles
Signed-off-by: Camila Macedo <[email protected]> Upstream-repository: operator-registry Upstream-commit: fddabccc2ca92f125d8757809e9c03e27b0f4904
1 parent 76e4014 commit 13c7ffb

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

staging/operator-registry/README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ Operator Registry runs in a Kubernetes or OpenShift cluster to provide operator
77

88
This project provides the following binaries:
99

10-
* `opm`, which generates and updates registry databases as well as the index images that encapsulate them.
11-
* `initializer`, which takes as an input a directory of operator manifests and outputs a sqlite database containing the same data for querying
12-
* Deprecated - use `opm registry|index add` instead
10+
* `opm`, which generates and updates registry databases as well as the index images that encapsulate them.
11+
* `initializer`, which takes as an input a directory of operator manifests and outputs a sqlite database containing the same data for querying.
1312
* `registry-server`, which takes a sqlite database loaded with manifests, and exposes a gRPC interface to it.
1413
* Deprecated - use `opm registry serve` instead
1514
* `configmap-server`, which takes a kubeconfig and a configmap reference, and parses the configmap into the sqlite database before exposing it via the same interface as `registry-server`.
@@ -23,8 +22,9 @@ And libraries:
2322
* `pkg/lib` - providing external interfaces for interacting with this project as an api that defines a set of standards for operator bundles and indexes.
2423
* `pkg/containertools` - providing an interface to interact with and shell out to common container tooling binaries (if installed on the environment)
2524

26-
# Manifest format
25+
**NOTE:** The purpose of `opm` tool is to help who needs to manage index catalogues for OLM instances. However, if you are looking for a tool to help you to integrate your operator project with OLM then you should use [Operator-SDK](https://github.com/operator-framework/operator-sdk).
2726

27+
# Manifest format
2828

2929
We refer to a directory of files with one ClusterServiceVersion as a "bundle". A bundle typically includes a ClusterServiceVersion and the CRDs that define the owned APIs of the CSV in its manifest directory, though additional objects may be included. It also includes an annotations file in its metadata folder which defines some higher level aggregate data that helps to describe the format and package information about how the bundle should be added into an index of bundles.
3030

@@ -46,7 +46,7 @@ When loading manifests into the database, the following invariants are validated
4646

4747
Bundle directories are identified solely by the fact that they contain a ClusterServiceVersion, which provides an amount of freedom for layout of manifests.
4848

49-
Check out the [operator bundle design](docs/design/operator-bundle.md) for more detail on the bundle format.
49+
Check out the [operator bundle design](docs/design/operator-bundle.md) for more detail on the bundle format.
5050

5151
# Bundle images
5252

@@ -65,6 +65,8 @@ podman push quay.io/my-container-registry-namespace/my-manifest-bundle:latest
6565

6666
Of course, this build step can be done with any other OCI spec container tools like `docker`, `buildah`, `libpod`, etc.
6767

68+
Note that you do not need to create your bundle manually. [Operator-SDK](https://github.com/operator-framework/operator-sdk) provide features and helpers to build, to update, to validate and to test bundles for projects which follows the SDK layout or not. For more information check its documentations over [Integration with OLM](https://sdk.operatorframework.io/docs/olm-integration)
69+
6870
# Building an index of Operators using `opm`
6971

7072
Now that you have published the container image containing your manifests, how do you actually make that bundle available to other users' Kubernetes clusters so that the Operator Lifecycle Manager can install the operator? This is where the meat of the `operator-registry` project comes in. OLM has the concept of [CatalogSources](https://operator-framework.github.io/olm-book/docs/glossary.html#catalogsources) which define a reference to what packages are available to install onto a cluster. To make your bundle available, you can add the bundle to a container image which the CatalogSource points to. This image contains a database of pointers to bundle images that OLM can pull and extract the manifests from in order to install an operator. So, to make your operator available to OLM, you can generate an index image via opm with your bundle reference included:

0 commit comments

Comments
 (0)