-
Notifications
You must be signed in to change notification settings - Fork 707
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate Kubeapps catalogs post index.yaml #6179
Comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
A few notes regarding caching available charts in an OCI repository:
which is using the OCI
|
In the other direction, we could include the Bitnami catalog by using the artifact hub API: https://artifacthub.io/api/v1/packages/search?repo=bitnami&limit=20&offset=0 or similar to obtain a catalog for Kubeapps to display, but this only works for publicly available chart indexes (unless a similar private hub was available internally). For example, I think we should solve this in a way such that a company who has their own version of a public catalog (such as Bitnami but with custom base images or whatever) in their own private OCI repo, can continue to use Kubeapps, which is where this direction falls short. |
I've created a proposal for a small stateless gRPC OCI Catalog service which provides a generic gRPC call for listing repositories but includes implementations for specific providers. |
With the implementation task #6263 created, I'm closing this investigation, though happy to re-open or discuss any feedback of course. |
### Description of the change Update Kubeapps documentation to include the proposal for OCI Catalog in #6179 ### Benefits List of proposals updated and available for any community user. ### Possible drawbacks N/A ### Applicable issues - relates #6179 ### Additional information Also updated the link to the GitHub account for each author.
Summary
Kubeapps as a catalog of apps
From inception, Kubeapps’ main functionality is to present a catalog of applications (Helm Charts) that can be installed, upgraded and deleted on a Kubernetes cluster. Presenting a UI for a catalog of applications in Kubeapps was trivial because a traditional Helm repository provides an index.yaml file containing all data required for a catalog.
Initial OCI support in Helm and Kubeapps
Helm has also supported the installation of Charts from an OCI registry in an experimental form for some time and Kubeapps followed suit shortly after with the ability to include charts from OCI registries in the catalog. This feature was limited by the fact that there is no standard way to query an OCI registry for the list of charts. So instead, Kubeapps users are required to list the Helm charts explicitly that are to be included in the catalog when adding an OCI registry source. This worked fine for the level of support required in Kubeapps for OCI charts until recently.
OCI as the default, but without an index
At the beginning of 2022 Helm 3.8 was released with the OCI support enabled by default. In December 2022 Harbor 2.7 was released which began Harbor’s deprecation of its non-OCI Helm repository support (chartmuseum), which was then removed completely in the Harbor 2.8 release in April 2023. In the same month VMware’s Bitnami Application Catalog announced that Bitnami Helm Charts are now generally available as OCI packages in DockerHub and in fact, the Bitnami Catalog is defaulting to OCI packages for charts. Importantly, as part of this move, the consumption of Bitnami Helm Charts via the index.yaml is being deprecated.
This presents a problem for the main function of Kubeapps - presenting a catalog of applications - because the OCI distribution specification does not have a well defined way to list charts (repositories) within an OCI Registry. It does have a /v2/_catalog? endpoint, but this is not implemented in a standard way, or even at all for some registries (importantly, Docker’s), nor is it useful for larger public registries with namespaced repositories. Yet Kubeapps requires the ability to display a catalog of applications for an OCI registry (or a namespace thereof).
Background and rationale
Without a standard OCI API for listing namespaced charts/repositories in a registry, Kubeapps will need to either:
registry-1.docker.io
in thebitnamicharts
namespace or similarly charts in a harbor registry", encapsulating the different APIs required).Description
Current usage of Kubeapps by different companies leads me to think that the last of the above options will be more important: being able to specify an OCI registry and have Kubeapps include the list of charts from that registry (without having to explicitly list which apps/repositories they are interested in).
I've created a proposal for a small stateless gRPC OCI Catalog service which provides a generic gRPC call for listing repositories but includes implementations for specific providers.
Acceptance criteria
A formalized list of conditions that ensure that the feature can be considered as finished.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: