ReloadConfigurationFile should Reset storage options

Currently in Podman if we reset the CONTAINERS_STORAGE_CONF path, we get
the graph driver options from the original config file as well as the
options from the override path. This PR resets the storageconf to the
initial state when called multiple times.

Also if user sets STORAGE_OPTS="" then we should use it to override all
other storage options.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh 2021-03-31 16:03:37 -04:00
parent 5dc72564a3
commit c12c9e28f4
No known key found for this signature in database
GPG Key ID: A2DF901DABE2C028
1 changed files with 7 additions and 4 deletions

View File

@ -278,6 +278,9 @@ func ReloadConfigurationFile(configFile string, storeOptions *StoreOptions) {
fmt.Printf("Failed to parse %s %v\n", configFile, err.Error()) fmt.Printf("Failed to parse %s %v\n", configFile, err.Error())
return return
} }
// Clear storeOptions of previos settings
*storeOptions = StoreOptions{}
if config.Storage.Driver != "" { if config.Storage.Driver != "" {
storeOptions.GraphDriverName = config.Storage.Driver storeOptions.GraphDriverName = config.Storage.Driver
} }
@ -341,13 +344,13 @@ func ReloadConfigurationFile(configFile string, storeOptions *StoreOptions) {
if err != nil { if err != nil {
fmt.Print(err) fmt.Print(err)
} else { } else {
storeOptions.UIDMap = append(storeOptions.UIDMap, uidmap...) storeOptions.UIDMap = uidmap
} }
gidmap, err := idtools.ParseIDMap([]string{config.Storage.Options.RemapGIDs}, "remap-gids") gidmap, err := idtools.ParseIDMap([]string{config.Storage.Options.RemapGIDs}, "remap-gids")
if err != nil { if err != nil {
fmt.Print(err) fmt.Print(err)
} else { } else {
storeOptions.GIDMap = append(storeOptions.GIDMap, gidmap...) storeOptions.GIDMap = gidmap
} }
storeOptions.RootAutoNsUser = config.Storage.Options.RootAutoUsernsUser storeOptions.RootAutoNsUser = config.Storage.Options.RootAutoUsernsUser
if config.Storage.Options.AutoUsernsMinSize > 0 { if config.Storage.Options.AutoUsernsMinSize > 0 {
@ -359,8 +362,8 @@ func ReloadConfigurationFile(configFile string, storeOptions *StoreOptions) {
storeOptions.GraphDriverOptions = append(storeOptions.GraphDriverOptions, cfg.GetGraphDriverOptions(storeOptions.GraphDriverName, config.Storage.Options)...) storeOptions.GraphDriverOptions = append(storeOptions.GraphDriverOptions, cfg.GetGraphDriverOptions(storeOptions.GraphDriverName, config.Storage.Options)...)
if os.Getenv("STORAGE_OPTS") != "" { if opts, ok := os.LookupEnv("STORAGE_OPTS"); ok {
storeOptions.GraphDriverOptions = append(storeOptions.GraphDriverOptions, strings.Split(os.Getenv("STORAGE_OPTS"), ",")...) storeOptions.GraphDriverOptions = strings.Split(opts, ",")
} }
if len(storeOptions.GraphDriverOptions) == 1 && storeOptions.GraphDriverOptions[0] == "" { if len(storeOptions.GraphDriverOptions) == 1 && storeOptions.GraphDriverOptions[0] == "" {
storeOptions.GraphDriverOptions = nil storeOptions.GraphDriverOptions = nil