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

Investigate and propose package repositories API with similar core interface to packages API. #3496

Closed
absoludity opened this issue Sep 24, 2021 · 15 comments · Fixed by #4308, #4353, #4376, #4476 or #4514
Assignees
Labels
component/apis-server Issue related to kubeapps api-server kind/feature An issue that reports a feature (approved) to be implemented
Projects

Comments

@absoludity
Copy link
Contributor

As we close in on the basic functionality for the packages API, we'll need to begin investigating and proposing a similar core API for package repositories, so that as a user I can use the Kubeapps UI to interact with AppRepositories (helm and oci) as well as flux sources.

We've recently had contributions for remote components that are conditionally used in different views, which will be something we'll want to begin using (though not remote, restricted to our internal services) both in the packages API as well as the package repositories API, where I assume the UX will be quite different for the various repository types (more so than packages).

@absoludity absoludity created this issue from a note in Kubeapps (Next iteration discussion) Sep 24, 2021
@ppbaena ppbaena added this to the App repository refactor milestone Sep 24, 2021
@ppbaena ppbaena moved this from Next iteration discussion to Committed in Kubeapps Sep 27, 2021
@stale
Copy link

stale bot commented Oct 9, 2021

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.

@stale stale bot added the stale Automatic label to stale issues due inactivity to be closed if no further action label Oct 9, 2021
@absoludity absoludity added component/apis-server Issue related to kubeapps api-server priority/low labels Oct 10, 2021
@stale stale bot removed the stale Automatic label to stale issues due inactivity to be closed if no further action label Oct 10, 2021
@absoludity
Copy link
Contributor Author

I'm not sure why this is committed: I'd expect it to be prioritised and scheduled to come after #3403 which I'm starting now?

@gfichtenholt
Copy link
Contributor

I am starting work on this now. My plan of action is this: for each operation (CRUD)

  1. update design doc https://docs.google.com/document/d/1z03msZRGsRvcRaom-yrvEwIWcEfNy6fSA5Zg28gjYvA/edit?usp=sharing with corresponding messages and rpc func
  2. once (1) is reviewed, add corresponding stubs in core packages.proto and each plug-in .proto
  3. add implementation for flux plugin and unit tests

Let me know it sounds good or if I missed anything. Thanks

@absoludity
Copy link
Contributor Author

Great, thanks Greg.

I am starting work on this now. My plan of action is this: for each operation (CRUD)

1. update design doc https://docs.google.com/document/d/1z03msZRGsRvcRaom-yrvEwIWcEfNy6fSA5Zg28gjYvA/edit?usp=sharing with corresponding messages and rpc func

2. once (1) is reviewed, add corresponding stubs in core packages.proto and each plug-in .proto

Sounds good. I wasn't sure whether we'd want this is the packages API or as a separate repositories API which can also be implemented by plugins - that was part of what needs to be thought through. Perhaps it is simpler to just do it in the packages API as you've thought, if each packaging system has its own take on an app repository anyway.

3. add implementation for flux plugin and unit tests

I'm not sure, but thought that implementing the helm plugin may be higher priority since it allows us to switch over the existing frontend code, but no worries if you'd rather leave that for someone else.

@gfichtenholt
Copy link
Contributor

Will need to check with Pepe on this. He did ask me to get started on this monday but did not clarify whether he wanted me to also take care the direct helm implementation of this.

@absoludity
Copy link
Contributor Author

Yep, fine either way, I more thought that it's important to ensure that the new API satisfies the requirements of the existing helm functionality. It doesn't bother me who does it as long as we work with this in mind.

@ppbaena ppbaena added the kind/feature An issue that reports a feature (approved) to be implemented label Oct 18, 2021
@ppbaena ppbaena moved this from Committed to In progress in Kubeapps Oct 25, 2021
@gfichtenholt
Copy link
Contributor

TODO after basic CRUD is finished:
from discussion on vmware kubeapps slack channel: also investigate whether there is a generic use case for a manual "refresh repo" API. @absoludity said: "If it makes sense generally, then we should consider it. I wasn't sure if flux provided a way to force a HelmRepo to resync before it's meant to. Probably worth checking what's possible with carvel here too. If it turns out it only makes sense for Helm, then it's no problem to just do it for helm (and not include in the core), but otherwise I have no problem including it in the core api."

@gfichtenholt gfichtenholt reopened this Apr 14, 2022
Kubeapps automation moved this from Done to In progress Apr 14, 2022
Kubeapps automation moved this from In progress to Done Apr 23, 2022
gfichtenholt added a commit that referenced this issue Apr 23, 2022
…lar core interface to packages API. #3496  (#4594)

* attempt #2

* 1st checkin

* 2nd checkin

* 2nd checkin

* Michael's feedback
@gfichtenholt gfichtenholt reopened this Apr 23, 2022
Kubeapps automation moved this from Done to In progress Apr 23, 2022
gfichtenholt added a commit to gfichtenholt/kubeapps that referenced this issue Apr 26, 2022
Kubeapps automation moved this from In progress to Done Apr 27, 2022
gfichtenholt added a commit that referenced this issue Apr 27, 2022
…lar core interface to packages API. #3496  (#4618)

* attempt #2

* step 7 for  Investigate and propose package repositories API with similar core interface to packages API. #3496

* 2nd checkin

* attempt #2

* fixed some errors and improved handling in integration tests
@gfichtenholt gfichtenholt reopened this Apr 27, 2022
Kubeapps automation moved this from Done to In progress Apr 27, 2022
@gfichtenholt gfichtenholt reopened this Apr 29, 2022
@gfichtenholt
Copy link
Contributor

At this point I'd say this issue can be closed. The API has been proposed in the design spec. Implented in core stubs and flux plugin. Now we just need to write a UX for it and implement it in remaining plugins, all of which could be separate issues

@absoludity
Copy link
Contributor Author

Excellent Greg. I've moved it into the done lane on the board rather than closing it (closing it makes it disappear from the board before our meeting).

Good timing too! I think @castelblanque is ready to start :)

@castelblanque
Copy link
Collaborator

Great! Actually, I'm starting with Helm today 😄

@ppbaena
Copy link
Collaborator

ppbaena commented May 11, 2022

Let me know if we can close this issue @gfichtenholt.

@gfichtenholt
Copy link
Contributor

Let me know if we can close this issue @gfichtenholt.

As far as I'm concerned, yes. @absoludity didn't want to close it just yet (see above). So please check with him. Thanks

@absoludity
Copy link
Contributor Author

Let me know if we can close this issue @gfichtenholt.

As far as I'm concerned, yes. @absoludity didn't want to close it just yet (see above). So please check with him. Thanks

I just meant until the iteration meeting, which was two days ago (noticed closed issues were removed from the board, where we normally review them). Fine to close :)

@ppbaena
Copy link
Collaborator

ppbaena commented May 12, 2022

Thanks!

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 kind/feature An issue that reports a feature (approved) to be implemented
Projects
Archived in project
Kubeapps
  
In progress
4 participants