Skip to content
This repository has been archived by the owner on Aug 12, 2024. It is now read-only.

Support transforming registry+v1 bundles to plain k8s bundles #67

Open
exdx opened this issue Feb 28, 2022 · 6 comments
Open

Support transforming registry+v1 bundles to plain k8s bundles #67

exdx opened this issue Feb 28, 2022 · 6 comments
Labels
good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Milestone

Comments

@exdx
Copy link
Member

exdx commented Feb 28, 2022

The current operator ecosystem is built around the registry+v1 operator bundle format (which includes details like always including a CSV manifest under /manifests, bundle properties, additional installation information in the /metadata directory, etc). It has been in-use for over two years and is well defined and understood by the community.

The rukpak project is building out a new set of OLM APIs, that are clusterwide in scope, and the focus is on supporting a different bundle format from the beginning: a bundle containing a set of plain k8s yaml manifests. This bundle format is more declarative and intuitive for newer users, but is very different from the existing registry+v1 format. To avoid fragmenting the ecosystem and encourage adoption of the newer APIs, it would be ideal to provide tooling to convert a registry+v1 bundle to a plain k8s bundle. The tool could be a CLI tool as well as a library that rukpak provisioners can import and use.

@exdx exdx added the priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. label Feb 28, 2022
@joelanford
Copy link
Member

There's at least one complication I ran into around a general registry+v1 -> plain transformer: certificate generation and rotation for webhooks.

Registry+v1 bundles that include webhook configurations require certificates to be configured. OLM manages these certificates internally today. During the conversion process, something has to account for these certificates.

The two obvious options are:

  1. Rely on cert-manager APIs (for plain manifest bundles that aren't converted from registry+v1 bundles, this seems like the obvious choice for bundle authors, so it seems like a reasonable choice for conversion)
  2. Depend on the provisioner itself to provide the certificate generation/rotation logic (much like OLM does today)

Option 1 would mean:

  • that we could build a fully offline conversion tool for bundle authors that want to convert existing registry+v1 content.
  • potentially that a bundle could state "core.rukpak.io/registry+v1" for its class, and the corresponding bundle instance could state "core.rukpak.io/k8s" (or whatever we're calling it). in that case, we'd only need to build a bundle controller (and not a bundle instance controller) for the "core.rukpak.io/registry+v1" provisioner class

Option 2 would mean a full provisioner implementation since the bundle instance controller would need to handle the certificates.

@timflannagan timflannagan added this to the backlog milestone Feb 28, 2022
@exdx
Copy link
Member Author

exdx commented Jun 6, 2022

Related to #396

@timflannagan
Copy link
Contributor

Related to #449.

@awgreene
Copy link
Member

#396 can be used as a starting point for someone interested in delivering this feature. #396 has a few post-merge comments that should be addressed in the PR submitted to master.

Marking this as a good first issue.

@awgreene awgreene added good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. and removed needs-grooming labels Jul 21, 2022
@github-actions
Copy link

This issue has become stale because it has been open 60 days with no activity. The maintainers of this repo will remove this label during issue triage or it will be removed automatically after an update. Adding the lifecycle/frozen label will cause this issue to ignore lifecycle events.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 20, 2022
@tylerslaton tylerslaton added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 29, 2022
@tylerslaton
Copy link
Contributor

This relates heavily to a previous bundle conversion branch that we had. In order to close this issue out we should work to update the work done on it to the recent RukPak changes.

https://github.com/operator-framework/rukpak/tree/bundle-convert-package

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
good first issue Denotes an issue ready for a new contributor, according to the "help wanted" guidelines. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

No branches or pull requests

5 participants