-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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 does not detect volume from the volume plugin, unlike docker #14207
Comments
@mheon PTAL |
This was a deliberate choice on our part. We use the Podman database as our single source of truth on what volumes exist on the system at present, and where. The main reason for this is a simple question: what happens if I have two volume plugins, and in each of them I out-of-band create a volume named "testvol". We can only have one volume with the same name, so what do we do? Displaying only the first one we encounter means that a There are a hundred small questions like this. All of them make sourcing volume definitions from outside of Podman complicated - not impossible, but a very significant amount of work. We can potentially revisit this decision in the future but it will require a significant time and code investment to adequately handle the edge cases it introduces. |
Thanks @mheon for the reply. Docker supports this configuration, where in volume available in the plugin are detected and listed. This is a must have requirement for deployment in the clustered environment. Not supporting this use case would make it difficult for migration from docker to podman in those deployments. Presence of same volume name in two different plugin can be an invalid configuration or a corner case and the behavior can be defined and handled accordingly. Even in case of docker the behavior is indeterministic, if two drivers report the same volume. The following options can be considered:
|
Is there any update on this? |
No. If you'd like this escalated and have a RHEL support contract, I suggest opening an RFE bugzilla to request that this work be prioritized. |
Libpod requires that all volumes are stored in the libpod db. Because volume plugins can be created outside of podman, it will not show all available plugins. This podman volume reload command allows users to sync the libpod db with their external volume plugins. All new volumes from the plugin are also created in the libpod db and when a volume from the db no longer exists it will be removed if possible. There are some problems: - naming conflicts, in this case we only use the first volume we found. This is not deterministic. - race conditions, we have no control over the volume plugins. It is possible that the volumes changed while we run this command. Fixes containers#14207 Signed-off-by: Paul Holzinger <[email protected]>
Libpod requires that all volumes are stored in the libpod db. Because volume plugins can be created outside of podman, it will not show all available plugins. This podman volume reload command allows users to sync the libpod db with their external volume plugins. All new volumes from the plugin are also created in the libpod db and when a volume from the db no longer exists it will be removed if possible. There are some problems: - naming conflicts, in this case we only use the first volume we found. This is not deterministic. - race conditions, we have no control over the volume plugins. It is possible that the volumes changed while we run this command. Fixes containers#14207 Signed-off-by: Paul Holzinger <[email protected]>
/kind bug
Description
If volume is created out of band in the volume plugin, the volume is not detected by podman, unlike docker. This affects deployment of podman in clustered environment where the volume is created on shared storage from one node, is not detected by podman running on the other node.
Steps to reproduce the issue:
Create volume using custom volume driver on shared storage.
The podman running on the other node, does not detect the volume, using same custom volume driver.
Describe the results you received:
Podman can detect only volumes created locally using podman create.
Describe the results you expected:
Podman should detect all the volumes seen by the volume plugin driver.
Additional information you deem important (e.g. issue happens only occasionally):
In case of docker, all the volumes seen by the volume plugin driver reflected inside "docker volume ls".
Output of
podman version
:Output of
podman info --debug
:Package info (e.g. output of
rpm -q podman
orapt list podman
):Have you tested with the latest version of Podman and have you checked the Podman Troubleshooting Guide? (https://github.com/containers/podman/blob/main/troubleshooting.md)
Yes
Additional environment details (AWS, VirtualBox, physical, etc.):
Physical
The text was updated successfully, but these errors were encountered: