summaryrefslogtreecommitdiff
path: root/libpod/options.go
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2021-05-05 15:44:29 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2021-05-05 17:58:39 +0200
commit68fe1950fe5bad7e29b7a75bb1e94a54fd7e5360 (patch)
tree8d8967ca6df08ce77e8aef98f391327fd23aec3c /libpod/options.go
parent4d2ba323f2e67fbfd6150582196c6e0229c70a8e (diff)
downloadpodman-68fe1950fe5bad7e29b7a75bb1e94a54fd7e5360.tar.gz
podman-68fe1950fe5bad7e29b7a75bb1e94a54fd7e5360.tar.bz2
podman-68fe1950fe5bad7e29b7a75bb1e94a54fd7e5360.zip
podman: set volatile storage flag for --rm containers
volatile containers are a storage optimization that disables *sync() syscalls for the container rootfs. If a container is created with --rm, then automatically set the volatile storage flag as anyway the container won't persist after a reboot or machine crash. [NO TESTS NEEDED] Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'libpod/options.go')
-rw-r--r--libpod/options.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/libpod/options.go b/libpod/options.go
index 39415a817..391cf0147 100644
--- a/libpod/options.go
+++ b/libpod/options.go
@@ -2318,3 +2318,16 @@ func WithPodSlirp4netns(networkOptions map[string][]string) PodCreateOption {
return nil
}
}
+
+// WithVolatile sets the volatile flag for the container storage.
+// The option can potentially cause data loss when used on a container that must survive a machine reboot.
+func WithVolatile() CtrCreateOption {
+ return func(ctr *Container) error {
+ if ctr.valid {
+ return define.ErrCtrFinalized
+ }
+
+ ctr.config.Volatile = true
+ return nil
+ }
+}