loft-sh / vcluster

vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
https://www.vcluster.com
Apache License 2.0
6.28k stars 400 forks source link

use Helm Go SDK instead of using binary #154

Closed developer-guy closed 1 year ago

developer-guy commented 2 years ago

Hello, it would be nice to use Helm Go SDK to avoid using binary itself. It makes the vCluster easier to use in CI/CD environments.

cc: @dentrax @erkanzileli @eminaktas

LukasGentele commented 2 years ago

@developer-guy I'd usually agree with you. Less external dependencies and easier use leads to better UX, but in this case it's tricky:

We had that in DevSpace before and it blew up the project size, made it impossible to use different helm versions or helm plugins and such, and it led to annoying dependency conflicts, so I don't think we should go down that route again in vcluster CLI given the bad previous experiences in DevSpace with using helm client over helm binary. We could, however, make it easier to consume by providing a CI image or auto-downloading helm like we do in DevSpace.

matskiv commented 1 year ago

We have found blocking problems with dependencies when trying to use helm Go library, so instead, we made an enhancement in this area - vcluster CLI will download helm binary automatically if it can't find it (#730). This got released in v0.12.0. Is that sufficient for your use case @developer-guy?