summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2019-02-26 15:32:53 -0500
committerMatthew Heon <matthew.heon@pm.me>2019-02-26 15:32:53 -0500
commitb8e6ef618bd9233796ef6dbff187052a499ea022 (patch)
treed748de619f0cfeb0f59bef4e299ab776c34e611f /cmd
parentee667dcf97df4ed38b2046b33911dad882829bf8 (diff)
downloadpodman-b8e6ef618bd9233796ef6dbff187052a499ea022.tar.gz
podman-b8e6ef618bd9233796ef6dbff187052a499ea022.tar.bz2
podman-b8e6ef618bd9233796ef6dbff187052a499ea022.zip
Move all storage configuration defaults into libpod
Instead of passing in defaults via WithStorageConfig after computing them in cmd/podman/libpodruntime, do all defaults in libpod itself. This can alleviate ordering issues which caused settings in the libpod config (most notably, volume path) to be ignored. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/podman/libpodruntime/runtime.go18
1 files changed, 12 insertions, 6 deletions
diff --git a/cmd/podman/libpodruntime/runtime.go b/cmd/podman/libpodruntime/runtime.go
index f4ddf3521..2b96f0c20 100644
--- a/cmd/podman/libpodruntime/runtime.go
+++ b/cmd/podman/libpodruntime/runtime.go
@@ -5,6 +5,7 @@ import (
"github.com/containers/libpod/libpod"
"github.com/containers/libpod/pkg/rootless"
"github.com/containers/libpod/pkg/util"
+ "github.com/containers/storage"
"github.com/pkg/errors"
)
@@ -20,11 +21,8 @@ func GetRuntime(c *cliconfig.PodmanCommand) (*libpod.Runtime, error) {
func getRuntime(c *cliconfig.PodmanCommand, renumber bool) (*libpod.Runtime, error) {
options := []libpod.RuntimeOption{}
-
- storageOpts, _, err := util.GetDefaultStoreOptions()
- if err != nil {
- return nil, err
- }
+ storageOpts := storage.StoreOptions{}
+ storageSet := false
uidmapFlag := c.Flags().Lookup("uidmap")
gidmapFlag := c.Flags().Lookup("gidmap")
@@ -43,25 +41,33 @@ func getRuntime(c *cliconfig.PodmanCommand, renumber bool) (*libpod.Runtime, err
storageOpts.UIDMap = mappings.UIDMap
storageOpts.GIDMap = mappings.GIDMap
+ storageSet = true
}
if c.Flags().Changed("root") {
+ storageSet = true
storageOpts.GraphRoot = c.GlobalFlags.Root
}
if c.Flags().Changed("runroot") {
+ storageSet = true
storageOpts.RunRoot = c.GlobalFlags.Runroot
}
if len(storageOpts.RunRoot) > 50 {
return nil, errors.New("the specified runroot is longer than 50 characters")
}
if c.Flags().Changed("storage-driver") {
+ storageSet = true
storageOpts.GraphDriverName = c.GlobalFlags.StorageDriver
}
if len(c.GlobalFlags.StorageOpts) > 0 {
+ storageSet = true
storageOpts.GraphDriverOptions = c.GlobalFlags.StorageOpts
}
- options = append(options, libpod.WithStorageConfig(storageOpts))
+ // Only set this if the user changes storage config on the command line
+ if storageSet {
+ options = append(options, libpod.WithStorageConfig(storageOpts))
+ }
// TODO CLI flags for image config?
// TODO CLI flag for signature policy?