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
Add 'GetInstalledPackageSummaries' impl #3787
Conversation
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
@@ -238,3 +239,107 @@ func (s *Server) GetAvailablePackageDetail(ctx context.Context, request *corev1. | |||
AvailablePackageDetail: availablePackageDetail, | |||
}, nil | |||
} | |||
|
|||
// GetInstalledPackageSummaries returns the installed packagesmanaged by the 'kapp_controller' plugin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a typo above
// GetInstalledPackageSummaries returns the installed packagesmanaged by the 'kapp_controller' plugin | |
// GetInstalledPackageSummaries returns the installed packages managed by the 'kapp_controller' plugin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW: I just use the suggested change feature because it clearly shows what is meant in many situations better than words do, but feel free to just do the changes yourself (ie. no-one cares if you commit the suggestion or just do the changes yourself as you move through :) )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for catching the typo! I also use this feature the same way; it's a great manner of showing others what you suggest. When it's an isolated change, I rather apply the suggestion, but in this case, as I have to move through different parts and branches it feels more natural doing the changes myself.
As usual, thanks for your kind and detailed explanations :P
return nil, status.Errorf(codes.InvalidArgument, "unable to intepret page token %q: %v", request.GetPaginationOptions().GetPageToken(), err) | ||
} | ||
|
||
// Assume the default cluster if none is specified |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not need these conditions. We had them originally because flux wasn't/isn't supporting multi-cluster, but the client always sends the cluster and we use it in the gateway urls. I'd prefer to use InvalidArgument
if the request does not contain the full context. But open to changing that if you've a good reason?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I mentioned in #3784 (comment), let me leave it as is right now. I'm adding a card/issue to discuss what should be doing regarding this. I mean, I'm ok throwing an error, but I'd like to verify first this choose is uniform and consistent with the rest of the functions/plugins.
} | ||
|
||
// retrieve the list of installed packages | ||
pkgInstalls, err := s.getPkgInstalls(ctx, cluster, namespace) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should (at least eventually) be paginating this request, rather than requesting everything every time. Not a priority now though (bigger fish to fry :P (more important things to do right now ))
go func(i int, pkgInstall *packagingv1alpha1.PackageInstall) error { | ||
defer wg.Done() | ||
// fetch additional information from the package metadata | ||
// TODO(agamez): if the repository where the package belongs to is not installed, it will throw an error; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is the repository relevant here? With carvel I thought the repository is just syncing/updating the Package
and PackageMetadata
CRs... why would we need the repository CR here? Or maybe you were just meaning the package metadata?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, it was me that removed a PackageRepository
(therefore deleting the associated Package
and PackageMetadata
) and noticed that behavior. From a UX point of view, if a user decides to delete the, let's say, the Bitnami repo, but they still have a package installed, if we throw an error here... the package won't be manageable by kubeapps anymore; forcing the user to manually delete it.
What we did in the past for Helm is return the data we possibly can retrieve and then, the UI will decide which actions will be displayed to users. Currently, we say sth like: "ey, we don't have enough info about this pkg, you only can delete it"
So the point of this ToDo is just to keep in mind this possible use case, so that we can later decide what to do.
defer wg.Done() | ||
// fetch additional information from the package metadata | ||
// TODO(agamez): if the repository where the package belongs to is not installed, it will throw an error; | ||
// decide whether we should ignore it or it is ok with returning an error |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding the PackageMetadata
, it's definitely an error if it is not present for a given Package
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as in #3787 (comment), currently returning error though. It is something we can decide after when we polish up the UI/UX.
// TODO(agamez): the slice with make is filled with <nil>, in case of an error in the | ||
// i goroutine, the i-th <nil> stub will remain. Check if 'errgroup' works here, but I haven't | ||
// been able so far. | ||
// An alternative is using channels to perform a fine-grained control... but not sure if it worths |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah. You'd normally avoid multiple go-routines writing to the same slice and instead collect the processed data via a channel as you've noted. But I know you're doing it carefully here so that each go routine is responsible for one index only. Stepping back, I'm not sure why the nil's here would be an issue for you anyway given that we should return an error (and a nil value) if an error has been returned, I'd think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I'd have liked to dig into the goroutines+channels (it's one of my pending topics in Go; btw, now I have a lot of interesting Greg's code to learn from, so thank you!) but I didn't want to spend more time here (I mean, before landing something we can start iterating from).
given that we should return an error (and a nil value) if an error has been returned, I'd think?
That's the point, I'm not so sure we should return a "nil, error" if a goroutine (=single package) fails.
See #3784 (comment)
I'm ok reverting back to the hard-error way, but also happy to discuss longer-term ideas like letting users decide or at least returning "values,error", so that the client/UI was able to decide.
@@ -134,3 +136,51 @@ func (s *Server) getAvailablePackageDetail(pkgMetadata *datapackagingv1alpha1.Pa | |||
|
|||
return availablePackageDetail, nil | |||
} | |||
|
|||
func (s *Server) getInstalledPackageSummary(pkgInstall *packagingv1alpha1.PackageInstall, pkgMetadata *datapackagingv1alpha1.PackageMetadata, pkgVersionsMap map[string][]pkgSemver, cluster string) (*corev1.InstalledPackageSummary, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd normally reserve the get
prefix for a function if it is getting/fetching something... ie something that is network constrained. What you're doing here is creating an installed package summary based on data that's already been fetched (ie. no network here). Maybe installedPackageSummaryFromData
or something without get
would be clearer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, I'm with the Java folks who like using getters everywhere, but sounds fair :P However, I feel like I do need a verb for a function name, so... what about buildInstalledPackageSummary(...
?
// a url, so convert to a data-url. | ||
iconUrl := "" | ||
if pkgMetadata.Spec.IconSVGBase64 != "" { | ||
iconUrl = fmt.Sprintf("data:image/svg+xml;base64,%s", pkgMetadata.Spec.IconSVGBase64) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if this is one of the things causing the slowness... some of the SVG's are quite big (300k) and we're having to copy them to each and return via the network (rather than a URL to a resource). If so, definitely a place where caching may help us.
In the mean-time, it might be worth replacing the fmt.Sprintf
here with a https://pkg.go.dev/strings#Builder so that we're not copying the string when assigned below. Instead we can just using builder.String()
in the final struct below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another thought: if we find that it is the collection of all the svg data being fetched across the network for each installed package detail and sent all together in the one response that is the issue, we could even add an extra endpoint just to this kapp-controller plugin for AvailablePackageIcon
, expose it via the gateway, then populate the IconURL of the summary request with the gateway endpoint. This would mean that the response to GetInstalledPackageSummaries
(and GetAvailablePackageSummaries
) would just have a normal URL for the icon which would be fetched separately by the browser.
We'd still want to avoid pulling the icon data over the network from the k8s server when getting the metadata for other fields though. Have to see if that's possible.
Identifier: pkgInstall.Name, | ||
}, | ||
LatestMatchingVersion: &corev1.PackageAppVersion{ | ||
PkgVersion: versions[0].version.String(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is necessarily true, is it? (Maybe leave at least a comment). I mean, if the PackageInstall
has a versionSelection.constraint
of 2.0.0
, and versions has a 3.0.0, 2.1.0 and 2.0.0, then the latest matching version is still 2.0.0, isn't it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, absolutely; I added a temporary value for populating the field, but just forgot to add a comment explaining it 😅
Adding a TODO for now.
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
* Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> Conflicts: cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_ctrl_packages.go cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_data_adapters.go cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_test.go
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Conflicts: cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_ctrl_packages.go cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_data_adapters.go cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_test.go
Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
…3816) * Add required files for the Carvel plugin impl (#3783) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl (#3784) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl (#3785) * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl (#3786) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl (#3785) * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageSummaries' impl (#3787) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl (#3785) * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageDetail' impl (#3788) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageDetail Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix wrong secret name in test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl (#3785) * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'CreateInstalledPackage' impl (#3789) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'CreateInstalledPackage' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageDetail Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix wrong secret name in test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add targetCluster but throw an error if not matching with pkg one Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestCreateInstalledPackage Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove populated secrets in the create test. Minor renames Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'UpdateInstalledPackage' impl (#3790) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'CreateInstalledPackage' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'UpdateInstalledPackage' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageDetail Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix wrong secret name in test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add targetCluster but throw an error if not matching with pkg one Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestCreateInstalledPackage Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add basic TestUpdateInstalledPackage Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix wrong pkg cluster Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove populated secrets in the create test. Minor renames Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'DeleteInstalledPackage' impl (#3791) * Add required files for the Carvel plugin impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageVersions' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetAvailablePackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageSummaries' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetInstalledPackageDetail' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'CreateInstalledPackage' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'UpdateInstalledPackage' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'DeleteInstalledPackage' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove old tests. Fix TestGetClient test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetAvailablePackageVersions Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageSummaries Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetInstalledPackageDetail Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix wrong secret name in test Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add targetCluster but throw an error if not matching with pkg one Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestCreateInstalledPackage Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add basic TestUpdateInstalledPackage Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix wrong pkg cluster Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Remove populated secrets in the create test. Minor renames Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestDeleteInstalledPackage Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add 'GetPackageRepositories' impl (#3792) * Add 'GetPackageRepositories' impl Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix nil pointer Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add TestGetPackageRepositories Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Merge manually some changes Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Changes after code review Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Fix example plugin name in values.yaml Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Add "try again" button in the installed pkgs view Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com> * Initial WIP GetInstalledPackageResourceRefs Signed-off-by: Antonio Gamez Diaz <agamez@vmware.com>
Description of the change
Initial implementation of the
GetInstalledPackageSummaries
operationBenefits
An initial and very limited Carvel support in Kubeapps
Possible drawbacks
N/A
Applicable issues
Additional information
N/A