containers / podman-desktop

Podman Desktop is the best free and open source tool to work with Containers and Kubernetes for developers. Get an intuitive and user-friendly interface to effortlessly build, manage, and deploy containers and Kubernetes — all from your desktop.
https://podman-desktop.io
Apache License 2.0
4.56k stars 290 forks source link

Indicator of Podman Remote in UI #8281

Open cdrage opened 1 month ago

cdrage commented 1 month ago

Is your enhancement related to a problem? Please describe

We should indicate if a connection is Podman remote, and what the name of the connection is (ex. dev-server, mycoolserver, etc.).

Describe the solution you'd like

UI indicator for podman remote connection

Describe alternatives you've considered

No response

Additional context

No response

afbjorklund commented 1 month ago

Will it still use the local Podman client version, instead of the remote Podman server version?

afbjorklund commented 1 month ago

Probably needs some more context, on where the connection is coming from (type vs name)

afbjorklund commented 1 month ago

The lima sockets will show up as "local", since it is doing the ssh tunneling to the "remote"

But ideally they would show the name of the instance used, similar to the ssh server here. (currently no information is exported, on where the connection is actually coming from)

even if a podman system connection is created (it is optional), it is unix: and not ssh:


Default message looks like:

INFO[0011] Message from the instance "podman":          
To run `podman` on the host (assumes podman-remote is installed), run the following commands:
------
podman system connection add lima-podman "unix:///Users/afb/.lima/podman/sock/podman.sock"
podman system connection default lima-podman
podman run quay.io/podman/hello
------

The details about the connection is in a ssh config file, but those are not supported yet?

ssh -F `limactl ls --format='{{.SSHConfigFile}}' podman` lima-podman

If you do create a connection, then the port number needs to be updated on each restart. You are also missing out on some connection optimizations, like the AES and the ssh.sock

So it would be preferred if the instance name ("podman") could be provided somehow...

limactl ls --format='ssh://{{.SSHAddress}}:{{.SSHLocalPort}}' "podman"
# if not adding the default ssh key, then it needs to use the lima key
CONTAINER_SSHKEY=$(limactl ls --format='{{.IdentityFile}}' "podman")
afbjorklund commented 1 month ago
afbjorklund commented 1 month ago

The feature probably should be provided for Docker connections too, but as a separate issue...

The docker context has the same unix/ssh separation as the podman system connection does?

afbjorklund commented 1 month ago

With the current implementation of showing the name instead of the provider, it will show the instance name

The downside is that the color will change, from Podman (purple) or Docker (blue) over to Lima (gray/green)

afbjorklund commented 1 month ago

It would be nice if this could be provided on the connection, instead of being hardcoded:

      .filter(connection => connection.URI.startsWith('ssh:'));

i.e. something like connection.IsRemote, that is populated accordingly by the provider

So if you have a local tunnel unix socket to a remote ssh socket, it would still show OK

afbjorklund commented 1 month ago