aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-06-06 15:11:11 -0400
committerGitHub <noreply@github.com>2022-06-06 15:11:11 -0400
commit3f8a7547ca28ed95ccb5db90ac888b2896a35655 (patch)
treeb6477658f4d8d2ae365cdfc7b12fd57f4b3148af /pkg
parent521aebf6bedc4c2ce204ec99b5e6383b273c2354 (diff)
parentaadae49ad3b00e0545e525213bcb00edddfae4c1 (diff)
downloadpodman-3f8a7547ca28ed95ccb5db90ac888b2896a35655.tar.gz
podman-3f8a7547ca28ed95ccb5db90ac888b2896a35655.tar.bz2
podman-3f8a7547ca28ed95ccb5db90ac888b2896a35655.zip
Merge pull request #14474 from flouthoc/non-volatile-overlay-volume
overlay-volumes: add support for non-volatile `upperdir`,`workdir` for `overlay` volumes
Diffstat (limited to 'pkg')
-rw-r--r--pkg/specgen/volumes.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/pkg/specgen/volumes.go b/pkg/specgen/volumes.go
index b26666df3..a7a1022b0 100644
--- a/pkg/specgen/volumes.go
+++ b/pkg/specgen/volumes.go
@@ -97,6 +97,8 @@ func GenVolumeMounts(volumeFlag []string) (map[string]spec.Mount, map[string]*Na
// This is not a named volume
overlayFlag := false
chownFlag := false
+ upperDirFlag := false
+ workDirFlag := false
for _, o := range options {
if o == "O" {
overlayFlag = true
@@ -105,8 +107,16 @@ func GenVolumeMounts(volumeFlag []string) (map[string]spec.Mount, map[string]*Na
if strings.Contains(joinedOpts, "U") {
chownFlag = true
}
-
- if len(options) > 2 || (len(options) == 2 && !chownFlag) {
+ if strings.Contains(joinedOpts, "upperdir") {
+ upperDirFlag = true
+ }
+ if strings.Contains(joinedOpts, "workdir") {
+ workDirFlag = true
+ }
+ if (workDirFlag && !upperDirFlag) || (!workDirFlag && upperDirFlag) {
+ return nil, nil, nil, errors.New("must set both `upperdir` and `workdir`")
+ }
+ if len(options) > 2 && !(len(options) == 3 && upperDirFlag && workDirFlag) || (len(options) == 2 && !chownFlag) {
return nil, nil, nil, errors.New("can't use 'O' with other options")
}
}