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
Clean up library code, unit tests and documentation details
1. Move bundle funcs to /pkg as a bundle package
2. ix some minor errors in unit test.
3. Modify bundle doc to reflect recent changes
+ operator-sdk information
+ Folder structure
4. Add bundle command to opm binary as hidden commands
+ The bundle commands are only available for internal development use
as a part of opm binary.
5. Move bundle doc under /docs/design.
Signed-off-by: Vu Dinh <[email protected]>
An `Operator Bundle` is a container image that stores Kubernetes manifests and metadata associated with an operator. A bundle is meant to present a specific version of an operator.
3
+
An `Operator Bundle` is a container image that stores Kubernetes manifests and metadata associated with an operator. A bundle is meant to present a *specific* version of an operator.
4
4
5
5
## Operator Bundle Overview
6
6
@@ -13,7 +13,7 @@ The operator manifests refers to a set of Kubernetes manifest(s) the defines the
13
13
* API(s) provided and required.
14
14
* Related images.
15
15
16
-
An `Operator Bundle` is built as scratch (non-runnable) container image that contains operator manifests and specific metadata in designated directories inside the image. Then, it can be pushed and pulled from an OCI-compliant container registry. Ultimately, an operator bundle will be used by [Operator Registry](https://github.com/operator-framework/operator-registry) and [Operator-Lifecycle-Manager (OLM)](https://github.com/operator-framework/operator-lifecycle-manager) to install an operator in OLM-enabled clusters.
16
+
An `Operator Bundle` is built as a scratch (non-runnable) container image that contains operator manifests and specific metadata in designated directories inside the image. Then, it can be pushed and pulled from an OCI-compliant container registry. Ultimately, an operator bundle will be used by [Operator Registry](https://github.com/operator-framework/operator-registry) and [Operator-Lifecycle-Manager (OLM)](https://github.com/operator-framework/operator-lifecycle-manager) to install an operator in OLM-enabled clusters.
17
17
18
18
### Bundle Annotations
19
19
@@ -34,19 +34,19 @@ annotations:
34
34
```
35
35
36
36
*Notes:*
37
-
* In case of a mismatch, the `annotations.yaml` file is authoritative because on-cluster operator-registry that relies on these annotations has access to the yaml file only.
37
+
* In case of a mismatch, the `annotations.yaml` file is authoritative because the on-cluster operator-registry that relies on these annotations has access to the yaml file only.
38
38
* The potential use case for the `LABELS` is - an external off-cluster tool can inspect the image to check the type of a given bundle image without downloading the content.
39
39
40
40
This example uses [Operator Registry Manifests](https://github.com/operator-framework/operator-registry#manifest-format) format to build an operator bundle image. The source directory of an operator registry bundle has the following layout.
The `--directory` or `-d` specifies the directory where the operator manifests are located. The `annotations.yaml` and `Dockerfile`are generated in the same directory where the manifests folder is located (not where the YAML manifests are located). For example:
114
+
The `--directory` or `-d` specifies the directory where the operator manifests are located. The `Dockerfile`is generated in the same directory where the YAML manifests are located while the `annotations.yaml` file is located in a folder named `metadata`. For example:
The `--directory` or `-d` specifies the directory where the operator manifests are located. The `--tag` or `-t` specifies the image tag that you want the operator bundle image to have. By using `build` command, the `annotations.yaml` and `Dockerfile` are automatically generated in the background.
140
137
141
138
The default image builder is `Docker`. However, ` Buildah` and `Podman` are also supported. An image builder can specified via `--image-builder` or `-b` optional tag in `build` command. For example:
* If there are `annotations.yaml` and `Dockerfile` existing in the directory, they will be overwritten.
145
+
* The directory where the operator manifests are located must must be inside the context of the build which in this case is inside the directory where you run the command.
0 commit comments