aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-02-17 05:04:00 -0500
committerGitHub <noreply@github.com>2022-02-17 05:04:00 -0500
commitdeb75f56543cf1f596082250dd82e4b0ec746e88 (patch)
tree9ac45d6ebd82ac748e033ec48c2e4e9cf3d4c458 /pkg
parent3c99cff3d13276b73011047e92f3d952bacbb8a2 (diff)
parenta811acf74cd12fa810de74dec80c9853384a1247 (diff)
downloadpodman-deb75f56543cf1f596082250dd82e4b0ec746e88.tar.gz
podman-deb75f56543cf1f596082250dd82e4b0ec746e88.tar.bz2
podman-deb75f56543cf1f596082250dd82e4b0ec746e88.zip
Merge pull request #13228 from giuseppe/idmap-options
pkg: support passing down options for idmap
Diffstat (limited to 'pkg')
-rw-r--r--pkg/specgenutil/volumes.go6
-rw-r--r--pkg/util/mountOpts.go12
2 files changed, 13 insertions, 5 deletions
diff --git a/pkg/specgenutil/volumes.go b/pkg/specgenutil/volumes.go
index 6b9624ebb..2bd79b186 100644
--- a/pkg/specgenutil/volumes.go
+++ b/pkg/specgenutil/volumes.go
@@ -356,7 +356,11 @@ func getBindMount(args []string) (spec.Mount, error) {
}
setOwnership = true
case "idmap":
- newMount.Options = append(newMount.Options, "idmap")
+ if len(kv) > 1 {
+ newMount.Options = append(newMount.Options, fmt.Sprintf("idmap=%s", kv[1]))
+ } else {
+ newMount.Options = append(newMount.Options, "idmap")
+ }
case "consistency":
// Often used on MACs and mistakenly on Linux platforms.
// Since Docker ignores this option so shall we.
diff --git a/pkg/util/mountOpts.go b/pkg/util/mountOpts.go
index d8b14c0df..2a0101791 100644
--- a/pkg/util/mountOpts.go
+++ b/pkg/util/mountOpts.go
@@ -45,14 +45,18 @@ func ProcessOptions(options []string, isTmpfs bool, sourcePath string) ([]string
}
}
- switch splitOpt[0] {
- case "O":
- foundOverlay = true
- case "idmap":
+ if strings.HasPrefix(splitOpt[0], "idmap") {
if foundIdmap {
return nil, errors.Wrapf(ErrDupeMntOption, "the 'idmap' option can only be set once")
}
foundIdmap = true
+ newOptions = append(newOptions, opt)
+ continue
+ }
+
+ switch splitOpt[0] {
+ case "O":
+ foundOverlay = true
case "exec", "noexec":
if foundExec {
return nil, errors.Wrapf(ErrDupeMntOption, "only one of 'noexec' and 'exec' can be used")