From 0de8f08c1a5576d438f758f5466958f557b434ba Mon Sep 17 00:00:00 2001 From: Alex Dellapenta Date: Tue, 25 Jun 2024 09:04:38 -0600 Subject: [PATCH] Rm Bundle API from 4.16 OLMv1 TP --- .../olm-rukpak-bundle-immutability.adoc | 0 {modules => _unused_topics}/olm-rukpak-bundle.adoc | 0 .../olm-rukpak-registry-bundle.adoc | 2 +- modules/olm-rukpak-about.adoc | 6 +++--- modules/olm-rukpak-bd.adoc | 4 ++-- modules/olm-rukpak-provisioner.adoc | 9 +++++---- operators/olm_v1/arch/olmv1-components.adoc | 2 -- operators/olm_v1/arch/olmv1-rukpak.adoc | 7 +------ operators/understanding/olm-packaging-format.adoc | 14 +++----------- 9 files changed, 15 insertions(+), 29 deletions(-) rename {modules => _unused_topics}/olm-rukpak-bundle-immutability.adoc (100%) rename {modules => _unused_topics}/olm-rukpak-bundle.adoc (100%) rename {modules => _unused_topics}/olm-rukpak-registry-bundle.adoc (72%) diff --git a/modules/olm-rukpak-bundle-immutability.adoc b/_unused_topics/olm-rukpak-bundle-immutability.adoc similarity index 100% rename from modules/olm-rukpak-bundle-immutability.adoc rename to _unused_topics/olm-rukpak-bundle-immutability.adoc diff --git a/modules/olm-rukpak-bundle.adoc b/_unused_topics/olm-rukpak-bundle.adoc similarity index 100% rename from modules/olm-rukpak-bundle.adoc rename to _unused_topics/olm-rukpak-bundle.adoc diff --git a/modules/olm-rukpak-registry-bundle.adoc b/_unused_topics/olm-rukpak-registry-bundle.adoc similarity index 72% rename from modules/olm-rukpak-registry-bundle.adoc rename to _unused_topics/olm-rukpak-registry-bundle.adoc index 679d85c3cb..c0877f9a7b 100644 --- a/modules/olm-rukpak-registry-bundle.adoc +++ b/_unused_topics/olm-rukpak-registry-bundle.adoc @@ -6,4 +6,4 @@ [id="olm-rukpak-registry-bundle_{context}"] = Registry bundle spec -A registry bundle, or `registry+v1` bundle, contains a set of static Kubernetes YAML manifests organized in the legacy Operator Lifecycle Manager (OLM) bundle format. +A registry bundle, or `registry+v1` bundle, contains a set of static Kubernetes YAML manifests organized in the {olmv0-first} bundle format. diff --git a/modules/olm-rukpak-about.adoc b/modules/olm-rukpak-about.adoc index 91944d2edf..9b4e1743d1 100644 --- a/modules/olm-rukpak-about.adoc +++ b/modules/olm-rukpak-about.adoc @@ -19,9 +19,9 @@ endif::[] RukPak is a pluggable solution for packaging and distributing cloud-native content. It supports advanced strategies for installation, updates, and policy. -RukPak provides a content ecosystem for installing a variety of artifacts on a Kubernetes cluster. Artifact examples include Git repositories, Helm charts, and OLM bundles. RukPak can then manage, scale, and upgrade these artifacts in a safe way to enable powerful cluster extensions. +RukPak provides a content ecosystem for installing artifacts on a Kubernetes cluster. In {product-title} 4.16, RukPak supports {olmv0-first} bundles as artifacts. RukPak can then manage, scale, and upgrade these artifacts in a safe way to enable powerful cluster extensions. -At its core, RukPak is a small set of APIs and controllers. The APIs are packaged as custom resource definitions (CRDs) that express what content to install on a cluster and how to create a running deployment of the content. The controllers watch for the APIs. +At its core, RukPak is a set of controllers and the `BundleDeployment` API. The API is packaged as a custom resource definition (CRD) that expresses what content to install on a cluster and how to create a running deployment of the content. The controllers watch for the API. .Common terminology @@ -34,4 +34,4 @@ A Git repository that contains a bundle within a directory Provisioner:: Controllers that install and manage content on a Kubernetes cluster Bundle deployment:: -Generates deployed instances of a bundle +Generates deployed instances of a bundle \ No newline at end of file diff --git a/modules/olm-rukpak-bd.adoc b/modules/olm-rukpak-bd.adoc index c98f9e7628..dc02b73d78 100644 --- a/modules/olm-rukpak-bd.adoc +++ b/modules/olm-rukpak-bd.adoc @@ -6,13 +6,13 @@ [id="olm-rukpak-bd_{context}"] = BundleDeployment +In {product-title} 4.16, the RukPak `BundleDeployment` indicates when a bundle should be active. This includes pivoting from older versions of an active bundle. + [WARNING] ==== A `BundleDeployment` object changes the state of a Kubernetes cluster by installing and removing objects. It is important to verify and trust the content that is being installed and limit access, by using RBAC, to the `BundleDeployment` API to only those who require those permissions. ==== -The RukPak `BundleDeployment` API points to a `Bundle` object and indicates that it should be active. This includes pivoting from older versions of an active bundle. A `BundleDeployment` object might also include an embedded spec for a desired bundle. - Much like pods generate instances of container images, a bundle deployment generates a deployed version of a bundle. A bundle deployment can be seen as a generalization of the pod concept. The specifics of how a bundle deployment makes changes to a cluster based on a referenced bundle is defined by the provisioner that is configured to watch that bundle deployment. diff --git a/modules/olm-rukpak-provisioner.adoc b/modules/olm-rukpak-provisioner.adoc index 1301f2ed99..5be8f08a42 100644 --- a/modules/olm-rukpak-provisioner.adoc +++ b/modules/olm-rukpak-provisioner.adoc @@ -7,10 +7,11 @@ [id="olm-rukpak-provisioner_{context}"] = About provisioners -RukPak consists of a series of controllers, known as _provisioners_, that install and manage content on a Kubernetes cluster. RukPak also provides two primary APIs: `Bundle` and `BundleDeployment`. These components work together to bring content onto the cluster and install it, generating resources within the cluster. +RukPak consists of a series of controllers, known as _provisioners_, that install and manage content on a Kubernetes cluster. A provisioner works together with a `BundleDeployment` object to bring content onto the cluster and install it, generating resources within the cluster. -Currently, the _registry provisioner_ is implemented and bundled with RukPak. The registry provisioner sources and unpacks Operator Lifecycle Manager (OLM) `registry+v1` bundles. +Currently, the _registry provisioner_ is implemented and included with RukPak. A _registry bundle_, or `registry+v1` bundle, contains a set of static Kubernetes YAML manifests organized in the {olmv0-first} bundle format. The registry provisioner sources and unpacks registry bundles. -A provisioner is assigned a unique ID and is responsible for reconciling `Bundle` and `BundleDeployment` objects with a `spec.provisionerClassName` field that matches that particular ID. For example, the registry provisioner is able to unpack a given `registry+v1` bundle onto a cluster and then instantiate it, making the content of the bundle available in the cluster. +A provisioner is assigned a unique ID and is responsible for reconciling bundles and `BundleDeployment` objects with a `spec.provisionerClassName` field that matches that particular ID. For example, the registry provisioner is able to unpack a given `registry+v1` bundle onto a cluster and then instantiate it, making the content of the bundle available in the cluster. + +A provisioner places a watch on `BundleDeployment` resources that refer to the provisioner explicitly. For a given bundle, the provisioner unpacks the contents of the bundle onto the cluster. Then, given a `BundleDeployment` resource referring to that bundle, the provisioner installs the bundle contents and is responsible for managing the lifecycle of those resources. -A provisioner places a watch on both `Bundle` and `BundleDeployment` resources that refer to the provisioner explicitly. For a given bundle, the provisioner unpacks the contents of the `Bundle` resource onto the cluster. Then, given a `BundleDeployment` resource referring to that bundle, the provisioner installs the bundle contents and is responsible for managing the lifecycle of those resources. diff --git a/operators/olm_v1/arch/olmv1-components.adoc b/operators/olm_v1/arch/olmv1-components.adoc index 0d8317b170..6cc1b481de 100644 --- a/operators/olm_v1/arch/olmv1-components.adoc +++ b/operators/olm_v1/arch/olmv1-components.adoc @@ -14,7 +14,5 @@ include::snippets/technology-preview.adoc[] Operator Controller:: xref:../../../operators/olm_v1/arch/olmv1-operator-controller.adoc#olmv1-operator-controller[Operator Controller] is the central component of {olmv1} that extends Kubernetes with an API through which users can install and manage the lifecycle of Operators and extensions. It consumes information from catalogd. RukPak:: xref:../../../operators/olm_v1/arch/olmv1-rukpak.adoc#olmv1-rukpak[RukPak] is a pluggable solution for packaging and distributing cloud-native content. It supports advanced strategies for installation, updates, and policy. -+ -RukPak provides a content ecosystem for installing a variety of artifacts on a Kubernetes cluster. Artifact examples include Git repositories, Helm charts, and OLM bundles. RukPak can then manage, scale, and upgrade these artifacts in a safe way to enable powerful cluster extensions. Catalogd:: xref:../../../operators/olm_v1/arch/olmv1-catalogd.adoc#olmv1-catalogd[Catalogd] is a Kubernetes extension that unpacks file-based catalog (FBC) content packaged and shipped in container images for consumption by on-cluster clients. As a component of the {olmv1} microservices architecture, catalogd hosts metadata for Kubernetes extensions packaged by the authors of the extensions, and as a result helps users discover installable content. diff --git a/operators/olm_v1/arch/olmv1-rukpak.adoc b/operators/olm_v1/arch/olmv1-rukpak.adoc index 1160dbcd5a..5e3b182405 100644 --- a/operators/olm_v1/arch/olmv1-rukpak.adoc +++ b/operators/olm_v1/arch/olmv1-rukpak.adoc @@ -13,14 +13,9 @@ include::snippets/technology-preview.adoc[] include::modules/olm-rukpak-about.adoc[leveloffset=+1] include::modules/olm-rukpak-provisioner.adoc[leveloffset=+1] - -include::modules/olm-rukpak-bundle.adoc[leveloffset=+1] -include::modules/olm-rukpak-bundle-immutability.adoc[leveloffset=+2] -include::modules/olm-rukpak-registry-bundle.adoc[leveloffset=+2] - [role="_additional-resources"] .Additional resources -* xref:../../../operators/understanding/olm-packaging-format.adoc#olm-bundle-format_olm-packaging-format[Legacy OLM bundle format] +* xref:../../../operators/understanding/olm-packaging-format.adoc#olm-bundle-format_olm-packaging-format[{olmv0-caps} bundle format] include::modules/olm-rukpak-bd.adoc[leveloffset=+1] diff --git a/operators/understanding/olm-packaging-format.adoc b/operators/understanding/olm-packaging-format.adoc index 0ecdb1a6b8..def006c420 100644 --- a/operators/understanding/olm-packaging-format.adoc +++ b/operators/understanding/olm-packaging-format.adoc @@ -79,17 +79,9 @@ include::modules/olm-rukpak-about.adoc[leveloffset=+1] [role="_additional-resources"] .Additional resources -* xref:../../operators/olm_v1/index.adoc#olmv1-about[About Operator Lifecycle Manager 1.0 (Technology Preview)] - -include::modules/olm-rukpak-bundle.adoc[leveloffset=+2] -include::modules/olm-rukpak-bundle-immutability.adoc[leveloffset=+3] -include::modules/olm-rukpak-registry-bundle.adoc[leveloffset=+3] -[role="_additional-resources"] -.Additional resources - -* xref:../../operators/understanding/olm-packaging-format.adoc#olm-bundle-format_olm-packaging-format[Legacy OLM bundle format] - -include::modules/olm-rukpak-bd.adoc[leveloffset=+2] +* xref:../../operators/olm_v1/index.adoc#olmv1-about[About {olmv1} (Technology Preview)] +* xref:../../operators/understanding/olm-packaging-format.adoc#olm-bundle-format_olm-packaging-format[{olmv0-caps} bundle format] include::modules/olm-rukpak-provisioner.adoc[leveloffset=+2] +include::modules/olm-rukpak-bd.adoc[leveloffset=+2] endif::openshift-dedicated,openshift-rosa[]