mirror of https://github.com/containers/podman.git
quadlet: generate RequiresMountsFor for Type=bind volumes
This makes sure that the volume source is available before the volume is created. Fixes: https://github.com/containers/podman/issues/26125 Signed-off-by: Hiếu Lê <leorize+oss@disroot.org>
This commit is contained in:
parent
4871ad1dc6
commit
18ecd2046b
|
@ -1115,6 +1115,9 @@ func ConvertVolume(volume *parser.UnitFile, name string, unitsInfoMap map[string
|
||||||
if ok && len(devType) != 0 {
|
if ok && len(devType) != 0 {
|
||||||
if devValid {
|
if devValid {
|
||||||
podman.add("--opt", fmt.Sprintf("type=%s", devType))
|
podman.add("--opt", fmt.Sprintf("type=%s", devType))
|
||||||
|
if devType == "bind" {
|
||||||
|
service.Add(UnitGroup, "RequiresMountsFor", dev)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return nil, warnings, fmt.Errorf("key Type can't be used without Device")
|
return nil, warnings, fmt.Errorf("key Type can't be used without Device")
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
## assert-key-contains Service ExecStart " --opt type=bind "
|
||||||
|
## assert-key-contains Service ExecStart " --opt device=/var/lib/data "
|
||||||
|
## assert-key-contains Service ExecStart " --opt nocopy "
|
||||||
|
## assert-key-contains Unit RequiresMountsFor "/var/lib/data"
|
||||||
|
|
||||||
|
[Volume]
|
||||||
|
Device=/var/lib/data
|
||||||
|
Type=bind
|
||||||
|
Copy=no
|
|
@ -803,7 +803,6 @@ BOGUS=foo
|
||||||
dirName := "test_subdir"
|
dirName := "test_subdir"
|
||||||
|
|
||||||
err = CopyDirectory(filepath.Join("quadlet", dirName), quadletDir)
|
err = CopyDirectory(filepath.Join("quadlet", dirName), quadletDir)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
GinkgoWriter.Println("error:", err)
|
GinkgoWriter.Println("error:", err)
|
||||||
}
|
}
|
||||||
|
@ -975,6 +974,7 @@ BOGUS=foo
|
||||||
Entry("image.volume", "image.volume"),
|
Entry("image.volume", "image.volume"),
|
||||||
Entry("Volume - global args", "globalargs.volume"),
|
Entry("Volume - global args", "globalargs.volume"),
|
||||||
Entry("Volume - Containers Conf Modules", "containersconfmodule.volume"),
|
Entry("Volume - Containers Conf Modules", "containersconfmodule.volume"),
|
||||||
|
Entry("Volume - Type=bind", "device-bind.volume"),
|
||||||
|
|
||||||
Entry("Absolute Path", "absolute.path.kube"),
|
Entry("Absolute Path", "absolute.path.kube"),
|
||||||
Entry("Basic kube", "basic.kube"),
|
Entry("Basic kube", "basic.kube"),
|
||||||
|
@ -1276,5 +1276,4 @@ BOGUS=foo
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue