Skip to content
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

Implement retrieval of metadata from OCI repositories #7038

Open
absoludity opened this issue Nov 6, 2023 · 0 comments
Open

Implement retrieval of metadata from OCI repositories #7038

absoludity opened this issue Nov 6, 2023 · 0 comments
Labels
component/apis-server Issue related to kubeapps api-server component/plugin-helm Issue related to kubeapps plugin to manage Helm packages component/ui Issue related to kubeapps UI kind/feature An issue that reports a feature (approved) to be implemented kind/proposal An issue that reports a new feature proposal to be discussed

Comments

@absoludity
Copy link
Contributor

Summary
Last iteration we investigated the use of the referral API for linking chart/app metadata to Helm charts in an OCI repository (using Harbor), together with a rough implementation (for public OCI repos only) demonstrating how that data can be fetched for display within the application details.

To turn that demo into landable code, we'll need to support private OCI repositories, test the code to avoid future regressions, improve the UX (see below) and enable downloading of the displayed metadata.

Acceptance criteria

  • Example code for attaching metadata images to charts, with the recommended annotations for human readability,
  • Implementation of the gRPC request for getting metadatas for a chart, from both a public or private OCI repository, with relevant tests,

Then, given items of metadata in the OCI repository that refer to the main chart in a public or private OCI repository, when displaying the application details in Kubeapps, we will show:

  • A human readable title for the metadata (eg. "Source-code Bill of Materials") when the standard "org.opencontainers.image.title" annotation is defined (see pre-defined-annotation-keys), defaulting to the less-friendly media type when the annotation is not defined.
  • Further details such as the sha and any "org.opencontainers.image.description" if populated (possibly in a tool-tip given the limited space available)
  • A clickable link that will begin downloading the metadata, proxied via the Kubeapps backend with the users' credentials so they can inspect the metadata locally (we may need to limit the size of the metadata for this, as we don't want to tie-up our apis service streaming binary data, but need to proxy it from the backend where we have access to user credentials).
@absoludity absoludity added the kind/proposal An issue that reports a new feature proposal to be discussed label Nov 6, 2023
@github-project-automation github-project-automation bot moved this to 🗂 Backlog in Kubeapps Nov 6, 2023
@absoludity absoludity added kind/feature An issue that reports a feature (approved) to be implemented component/ui Issue related to kubeapps UI component/apis-server Issue related to kubeapps api-server component/plugin-helm Issue related to kubeapps plugin to manage Helm packages labels Nov 6, 2023
@absoludity absoludity moved this from 🗂 Backlog to 🗒 Todo in Kubeapps Nov 6, 2023
@ppbaena ppbaena moved this from 🗒 Todo to 🏗 In Progress in Kubeapps Nov 7, 2023
absoludity added a commit that referenced this issue Nov 16, 2023
…7088)

### Description of the change

Splitting up changes in #6997 while adding proper tests etc. This PR
updates the proto messages to the final desired output.

### Applicable issues

<!-- Enter any applicable Issues here (You can reference an issue using
#) -->

- ref #7038

Signed-off-by: Michael Nelson <[email protected]>
absoludity added a commit that referenced this issue Nov 27, 2023
### Description of the change

After a small refactor to re-use an existing test function, this PR adds
the implementation for fetching the referrers of an OCI chart.

This includes using the annotations in the referrers for the
name/description returned (for better UX) as well as an http fake for
handling the OCI requests in tests.

### Applicable issues

- ref #7038

### Additional information

---------

Signed-off-by: Michael Nelson <[email protected]>
antgamdia added a commit that referenced this issue Feb 9, 2024
…lient (#7147)

### Description of the change

Adds the action, reducer and client helper for fetching the available
package metadatas.

### Benefits

Just clears the way for adding the request and UX update in the view.

### Applicable issues

- ref #7038

---------

Signed-off-by: Michael Nelson <[email protected]>
Signed-off-by: Antonio Gamez Diaz <[email protected]>
Co-authored-by: Michael Nelson <[email protected]>
Co-authored-by: Antonio Gámez, PhD <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/apis-server Issue related to kubeapps api-server component/plugin-helm Issue related to kubeapps plugin to manage Helm packages component/ui Issue related to kubeapps UI kind/feature An issue that reports a feature (approved) to be implemented kind/proposal An issue that reports a new feature proposal to be discussed
Projects
Status: 🏗 In Progress
Development

No branches or pull requests

2 participants