summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2019-01-28 13:37:50 +0100
committerGiuseppe Scrivano <gscrivan@redhat.com>2019-02-05 11:37:33 +0100
commit61979d8ac27452fe6eb4c5e77278a2e9216a2d29 (patch)
treedcd25fb2a8542a339f3c51dc56bbbbdea06fd7bb
parent778f9867fdf0e5c777f6391f847b04758cab5d45 (diff)
downloadpodman-61979d8ac27452fe6eb4c5e77278a2e9216a2d29.tar.gz
podman-61979d8ac27452fe6eb4c5e77278a2e9216a2d29.tar.bz2
podman-61979d8ac27452fe6eb4c5e77278a2e9216a2d29.zip
rootless: copy some settings from the global configuration
if some paths are overriden in the global configuration file, be sure that rootless podman honors them. Closes: https://github.com/containers/libpod/issues/2174 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r--libpod/runtime.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go
index c7000d84a..c975f628b 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -385,6 +385,28 @@ func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
if _, err := toml.Decode(string(contents), runtime.config); err != nil {
return nil, errors.Wrapf(err, "error decoding configuration file %s", configPath)
}
+ } else if rootless.IsRootless() {
+ // If the configuration file was not found but we are running in rootless, a subset of the
+ // global config file is used.
+ for _, path := range []string{OverrideConfigPath, ConfigPath} {
+ contents, err := ioutil.ReadFile(OverrideConfigPath)
+ if err != nil {
+ // Ignore any error, the file might not be readable by us.
+ continue
+ }
+ tmpConfig := new(RuntimeConfig)
+ if _, err := toml.Decode(string(contents), tmpConfig); err != nil {
+ return nil, errors.Wrapf(err, "error decoding configuration file %s", path)
+ }
+
+ // Cherry pick the settings we want from the global configuration
+ runtime.config.ConmonPath = tmpConfig.ConmonPath
+ runtime.config.ConmonEnvVars = tmpConfig.ConmonEnvVars
+ runtime.config.OCIRuntimes = tmpConfig.OCIRuntimes
+ runtime.config.CNIPluginDir = tmpConfig.CNIPluginDir
+ runtime.config.NoPivotRoot = tmpConfig.NoPivotRoot
+ break
+ }
}
// Overwrite config with user-given configuration options