Small changes to check Carvel multicluster support. #5454
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signed-off-by: Michael Nelson minelson@vmware.com
Description of the change
I was keen to see exactly what was required to use the Carvel plugin with the existing multicluster support. It turns out, nothing (maybe @antgamdia already checked this and got it working a while ago? Not sure). The only changes I needed were:
With those changes, I can deploy kubeapps on the main cluster, with the patched config:
as well as the reconciliation service account as per the carvel docs modified here. I can then login, switch to the second cluster, then browse the catalog to see available apps including the carvel ones available on that cluster:
I can then select one to deploy
and successfully deploy it
as well as delete it.
Benefits
Demonstrates that the carvel plugin can be used with the current multicluster support.
Possible drawbacks
None
Applicable issues
Additional information
Interestingly, we had code that may have been intended to say that this was not supported, when creating a carvel app on a second cluster:
kubeapps/cmd/kubeapps-apis/plugins/kapp_controller/packages/v1alpha1/server_ctrl_packages.go
Lines 588 to 590 in c4d25a4
but what it actually does is ensure that the package being installed is from the same cluster as that being targeted, which is the case here anyway (since we're browsing available packages on the second cluster). So it allows deploying the package from the second cluster on the second cluster, but will correctly stop a situation where the API is used to deploy a package from the first cluster on the second cluster.