weaveworks / vscode-gitops-tools

GitOps Visual Studio Code Extension
Mozilla Public License 2.0
225 stars 22 forks source link

VSCode Extension should maybe install Flux CLI #236

Open kingdonb opened 2 years ago

kingdonb commented 2 years ago

Ideating on the idea that the Extension should or should not install the CLI for users that are missing it

Right now the docs mention that you need: prerequisites (kubectl, flux) – users are just expected to install them.

Maybe we shouldn't try to install the binaries, seems to be the consensus – users don't want surprising things to happen in their environment outside of the editor because they installed some extension, it would be bad if we did those things.

It will be complicated especially for Flux users who are on a particular version of Flux, who don't want to upgrade (because their cluster hasn't been upgraded yet), or for users who are mixing Windows and Linux environments like those who are on WSL vs those who are not.

kingdonb commented 2 years ago

There is some attention to this already, thanks for finding this Paulo and Daniel: https://github.com/weaveworks/vscode-gitops-tools/blob/bdf39cfcb131c51623509bf99d7a3832a1d4d14a/src/install.ts#L122

https://github.com/weaveworks/vscode-gitops-tools/blob/bdf39cfcb131c51623509bf99d7a3832a1d4d14a/src/utils/fsUtils.ts#L165

https://github.com/weaveworks/vscode-gitops-tools/blob/bdf39cfcb131c51623509bf99d7a3832a1d4d14a/src/commands/installFluxCli.ts#L139

fire-ant commented 2 years ago

I'm curious whether instead of attempting to add things to the developer environment we shouldn't supply an included devcontainer configuration which includes the latest/pinned supported version of Flux cli - give the developer tools up front the latest/pinned supported version of SOPS cli -provide a secrets Guide with the tooling we support the latest/supported version of the GitHub 'gh' cli - provide a cli means of bootstrapping the deploy key via cli anything else that the customer might want.

We can also use something like tasks.json to create 'guides' that can quickstart a developer to success including opening specific docs/guides. I have some examples of these ideas if they need to be discussed.

kingdonb commented 2 years ago

The dev container is an interesting idea.

While I was exploring this feature, I noticed that I have a gofish binary and it was detected and used.

Bad news is: Flux's gofish is now 4 minor releases out of date, as it (GoFish itself) was archived 3 weeks ago and won't be maintained anymore. We'll have to remove the gofish support at least from the VScode extension, (~also from the Flux docs ::~ done: https://github.com/fluxcd/website/pull/852), since right now the "Install CLI" button fetches an outdated version of the CLI if it can, and that's obviously not ideal.