podman-desktop / extension-bootc

Support for bootable OS containers (bootc) and generating disk images
Apache License 2.0
416 stars 17 forks source link

Initial consideration for integration with https://gitlab.com/bootc-org/podman-bootc-cli #166

Open cgwalters opened 8 months ago

cgwalters commented 8 months ago

Is your enhancement related to a problem? Please describe

This extension is doing some cool stuff, but I want to do things from a CLI too

Describe the solution you'd like

Let's figure out how we can integrate with https://github.com/containers/podman-bootc

Describe alternatives you've considered

No response

Additional context

No response

cgwalters commented 8 months ago

Actually...can a podman-desktop extension also ship a CLI binary? If so, then I think we could poentially just couple the two together?

cdrage commented 8 months ago

Actually...can a podman-desktop extension also ship a CLI binary? If so, then I think we could poentially just couple the two together?

Yup! We can! Best thing about shipping an extension. Can also download / install the binary too.

The only thing though is that we only support GitHub releases right now, so the CLI would have to move away from GitLab or we implement it upstream on Podman Desktop / ask to support it.

benoitf commented 8 months ago

I think releases can be everywhere as it's managed by the extension

cgwalters commented 8 months ago

The only thing though is that we only support GitHub releases right now,

We could add the CLI as a git submodule here, and build it here too, right?

cdrage commented 8 months ago

I think releases can be everywhere as it's managed by the extension

Not for CLI updates at the moment, right? Octokit + GitHub integration?

cdrage commented 8 months ago

The only thing though is that we only support GitHub releases right now,

We could add the CLI as a git submodule here, and build it here too, right?

Thats correct, as long as there are releases, we could use octokit inside the extension and help manage it / install / etc.

cgwalters commented 8 months ago

I may not be understanding something here. You're talking about octokit, which implies us talking to the github API...to fetch out of band binaries?

I had been thinking of this more like the CLI binary ships in the extension container image, and client side we extract the binary from the extension container or so? Is that viable?

The key advantage of shipping this in the extension container is it inherently supports offline/disconnected installs better.

benoitf commented 8 months ago

@cdrage the update is managed by the extension so no requirement on GitHub nor Octokit

@cgwalters for some extensions we're not shipping with the binary inside the OCI image, for some yes. But what is nice from user POV is also to be notified when there are new CLI updates ( so you can update the CLI in an independent way of the extension) That said, if the two are heavily linked ( extension and CLi) then in that case the update would come with the extension update

It also depends if the CLi is to be distributed/ installed globally for the user or if it's only for extension usage.

All combinations are possible, just need to agree on the best pattern for this CLi/extension

cgwalters commented 8 months ago

But what is nice from user POV is also to be notified when there are new CLI updates ( so you can update the CLI in an independent way of the extension)

I think anyone who wants this can install the cli from homebrew.

It also depends if the CLi is to be distributed/ installed globally for the user or if it's only for extension usage.

The primary point of the CLI is that it's in the user's $PATH; but very closely secondary is that it's sharing code with the GUI.

cgwalters commented 8 months ago

Just want to keep this conversation going...maybe short term we just cross-reference the two projects as in https://github.com/containers/podman-desktop-extension-bootc/pull/193 ?

cdrage commented 8 months ago

100% I am onboard to have this in, as it would make it a more reliable solution to running a bare vfkit command. We could package it with the extension.

Let's talk more about it this week / try to get a timeline / POC of it.