Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Podman Desktop driver on Mac or Win (and Linux) #8003

Open
afbjorklund opened this issue May 4, 2020 · 11 comments
Open

Podman Desktop driver on Mac or Win (and Linux) #8003

afbjorklund opened this issue May 4, 2020 · 11 comments
Labels
co/podman-driver podman driver issues help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/documentation Categorizes issue or PR as related to documentation. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. os/macos os/windows priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@afbjorklund
Copy link
Collaborator

afbjorklund commented May 4, 2020

We should test (and document) running the podman driver remotely, on non-Linux platforms.

Basically these platforms install podman-remote as podman, and run commands over varlink.

There is no documentation on how to set up the remote VM for Mac or Win, unfortunately...

The upstream install docs all assume that such a Linux host is already available over SSH:

https://podman.io/getting-started/installation

MacOS
Podman is a tool for running Linux containers. You can do this from a MacOS desktop as long as you have access to a linux box either running inside of a VM on the host, or available via the network. You need to install the remote client and then setup ssh connection information in the podman-remote.conf file.

Windows
Podman is a tool for running Linux containers. You can do this from a Windows desktop as long as you have access to a linux box either running inside of a VM on the host, or available via the network. You need to install the remote client and then setup ssh connection information in the podman-remote.conf file.

https://github.com/containers/libpod/blob/master/docs/source/markdown/podman-remote.conf.5.md


Theoretically using podman-machine should work, as long as you use the systemd one:

https://boot2podman.github.io/2018/12/07/fedora-iso-variant.html

It is also possible to do it yourself, using the hypervisor of your choice... (and a Fedora ISO)

There is a walkthrough here: https://itnext.io/podman-and-skopeo-on-macos-1b3b9cf21e60

We need to document some minikube-specific configuration, like switching over to cgroupfs

@afbjorklund afbjorklund added co/podman-driver podman driver issues kind/feature Categorizes issue or PR as related to a new feature. os/macos os/windows help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/documentation Categorizes issue or PR as related to documentation. priority/backlog Higher priority than priority/awaiting-more-evidence. labels May 4, 2020
@afbjorklund
Copy link
Collaborator Author

afbjorklund commented May 10, 2020

There's some minor differences, that we need to handle in code

Error: unrecognized command `podman cp`

Probably just use the regular "tee" workaround for this scenario.

podman cp /foo minikube:/bar --> podman-remote exec -i minikube tee /bar < /foo


Added PR #8060 for this

This bug is containers/podman#4207

@afbjorklund

This comment has been minimized.

@afbjorklund

This comment has been minimized.

@afbjorklund
Copy link
Collaborator Author

Currently I am testing this locally, by renaming podman-remote to podman
And hacking all those various runtime.GOOS == "linux" tests into false.

Probably needs some better way of doing this globally, even if only for debugging.
For now we should just avoid using the "podman" driver outside of Linux...

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 8, 2020
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 7, 2020
@sharifelgamal sharifelgamal added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. labels Sep 9, 2020
@cdbattags
Copy link

cdbattags commented May 28, 2021

Hi folks, I got remote vm provisioning working with a combination of vagrant and virtualbox on macOS today using a combination of:

Would we be willing to add the dependencies? Or with a podman system connection add we could let the users manage this themselves and just have minikube look at this configuration?

I'd love to leave Docker completely behind on macOS.

@afbjorklund
Copy link
Collaborator Author

afbjorklund commented May 29, 2021

@cdbattags : what did you use for the port forwarding, from the macOS host to the virtualbox VM ?

Currently using the minikube VM "directly" is the better option still, if not running Docker Desktop.

But eventually it should be possible to have minikube talk to a remote daemon or podman too.
Then you could supply your own VM to run remotely against, both for Docker and for Podman.

If this VM keeps running in the background, it might be "faster" to start/stop clusters on the VM.
That is, running containerd-in-docker or crio-in-podman rather than running directly on the VM.

I'd love to leave Docker completely behind on macOS.

You can still use Minikube with VirtualBox, without Docker.

If you want to use the minikube docker-env command, all you need is the docker CLI client.
But you can also use the new minikube image command, if all you need is "load" and "build".

@bkief
Copy link

bkief commented Oct 13, 2021

Could podman commands be executed as wsl podman on windows and avoid the podman-remote?

@afbjorklund
Copy link
Collaborator Author

Possibly ? But then we need more parameters controlling how Podman is invoked...
It could do lima podman when on Mac (and Linux), that don't have a WSL VM.

@afbjorklund afbjorklund changed the title Podman Remote driver on Mac or Win Podman Desktop driver on Mac or Win (and Linux) Dec 11, 2022
@afbjorklund
Copy link
Collaborator Author

This has now moved into a new product called "Podman Desktop": https://podman-desktop.io/

It includes the podman (client and server program) and podman-machine orchestration tool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
co/podman-driver podman driver issues help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/documentation Categorizes issue or PR as related to documentation. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. os/macos os/windows priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests

6 participants