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

Add 'GetInstalledPackageSummaries' impl #3787

Merged
merged 28 commits into from Nov 24, 2021
Merged

Add 'GetInstalledPackageSummaries' impl #3787

merged 28 commits into from Nov 24, 2021

Conversation

antgamdia
Copy link
Contributor

Description of the change

Initial implementation of the GetInstalledPackageSummaries operation

Benefits

An initial and very limited Carvel support in Kubeapps

Possible drawbacks

N/A

Applicable issues

Additional information

N/A

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a typo above

Suggested change
// GetInstalledPackageSummaries returns the installed packagesmanaged by the 'kapp_controller' plugin
// GetInstalledPackageSummaries returns the installed packages managed by the 'kapp_controller' plugin

Copy link
Contributor

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 :) )

Copy link
Contributor Author

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
Copy link
Contributor

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?

Copy link
Contributor Author

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)
Copy link
Contributor

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;
Copy link
Contributor

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?

Copy link
Contributor Author

@antgamdia antgamdia Nov 24, 2021

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
Copy link
Contributor

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.

Copy link
Contributor Author

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
Copy link
Contributor

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?

Copy link
Contributor Author

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) {
Copy link
Contributor

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.

Copy link
Contributor Author

@antgamdia antgamdia Nov 24, 2021

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)
Copy link
Contributor

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?

Copy link
Contributor

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(),
Copy link
Contributor

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?

Copy link
Contributor Author

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>
Base automatically changed from carvel-8 to carvel November 24, 2021 19:38
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>
@antgamdia antgamdia merged commit 40c0875 into carvel Nov 24, 2021
@antgamdia antgamdia deleted the carvel-9 branch November 24, 2021 20:37
antgamdia added a commit that referenced this pull request Nov 25, 2021
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants