redhat-developer / podman-desktop-redhat-account-ext

Podman Desktop Red Hat Account Extension
Apache License 2.0
3 stars 9 forks source link

Linux Support #71

Open vrothberg opened 5 months ago

vrothberg commented 5 months ago

I want to kick off a conversation about how to best support Linux. My current understanding is as follows (please correct if I am off):

On Fedora, CentOS and RHEL we could run subscription-manager directly on the host. Installing sub-man and running it requires root privileges, so we'd need a sudo prompt (e.g., https://www.npmjs.com/package/sudo-prompt) to run the installation and registration in a privileged process.

I am personally OK to keep the requirement of having a podman-machine running as on Mac OS and Windows BUT the support for that is very limited on Linux. Using the host, in turn, is limited to distributions shipping sub-man. So I am currently gravitating toward a better podman-machine support on Linux.

Cc: @slemeur @stefwalter @benoitf

slemeur commented 5 months ago

My early sentiment on this, is that Podman on linux should run by default without the need of a VM (and podman-machine).

As soon as the subscription-manager would be required, it might be the time where we transition the environment, or where we started an alternate podman-machine for particular tasks - but that would bring some UX challenges (and potentially performances ones too).

odockal commented 5 months ago

I was playing around on linux today with SSO and Podman Machine. There is an issue worth considering if one is using podman machine while trying to get the auth. token from SSO login. basically if you are using podman machine (it is started from cli) and tries to log in, the request is not finished, here is the error:

main ↪️ (node:3) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open '/run/user/1000/containers/auth.json'

main ↪️ (node:3) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 15)
console.<computed> @ VM5:2
(anonymous) @ VM5:2
emit @ VM4 sandbox_bundle:2
onMessage @ VM4 sandbox_bundle:2

main ↪️ [redhat-authentication] Subscription manager registration returned exit code: 125
console.<computed> @ VM5:2
(anonymous) @ VM5:2
emit @ VM4 sandbox_bundle:2
onMessage @ VM4 sandbox_bundle:2