You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: staging/operator-registry/README.md
+7-5Lines changed: 7 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -7,9 +7,8 @@ Operator Registry runs in a Kubernetes or OpenShift cluster to provide operator
7
7
8
8
This project provides the following binaries:
9
9
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.
13
12
*`registry-server`, which takes a sqlite database loaded with manifests, and exposes a gRPC interface to it.
14
13
* Deprecated - use `opm registry serve` instead
15
14
*`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:
23
22
*`pkg/lib` - providing external interfaces for interacting with this project as an api that defines a set of standards for operator bundles and indexes.
24
23
*`pkg/containertools` - providing an interface to interact with and shell out to common container tooling binaries (if installed on the environment)
25
24
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).
27
26
27
+
# Manifest format
28
28
29
29
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.
30
30
@@ -46,7 +46,7 @@ When loading manifests into the database, the following invariants are validated
46
46
47
47
Bundle directories are identified solely by the fact that they contain a ClusterServiceVersion, which provides an amount of freedom for layout of manifests.
48
48
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.
Of course, this build step can be done with any other OCI spec container tools like `docker`, `buildah`, `libpod`, etc.
67
67
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
+
68
70
# Building an index of Operators using `opm`
69
71
70
72
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