mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-08-13 20:29:35 +00:00
The processing and setting of the static and volume directories was scattered across the code base (including c/common) leading to subtle errors that surfaced in #19938. There were multiple issues that I try to summarize below: - c/common loaded the graphroot from c/storage to set the defaults for static and volume dir. That ignored Podman's --root flag and surfaced in #19938 and other bugs. c/common does not set the defaults anymore which gives Podman the ability to detect when the user/admin configured a custom directory (not empty value). - When parsing the CLI, Podman (ab)uses containers.conf structures to set the defaults but also to override them in case the user specified a flag. The --root flag overrode the static dir which is wrong and broke a couple of use cases. Now there is a dedicated field for in the "PodmanConfig" which also includes a containers.conf struct. - The defaults for static and volume dir and now being set correctly and adhere to --root. - The CONTAINERS_CONF_OVERRIDE env variable has not been passed to the cleanup process. I believe that _all_ env variables should be passed to conmon to avoid such subtle bugs. Overall I find that the code and logic is scattered and hard to understand and follow. I refrained from larger refactorings as I really just want to get #19938 fixed and then go back to other priorities. https://github.com/containers/common/pull/1659 broke three pkg/machine tests. Those have been commented out until getting fixed. Fixes: #19938 Signed-off-by: Valentin Rothberg <vrothberg@redhat.com> |
||
|---|---|---|
| .. | ||
| config.go | ||
| config_darwin.go | ||
| config_freebsd.go | ||
| config_linux.go | ||
| config_local.go | ||
| config_remote.go | ||
| config_unsupported.go | ||
| config_windows.go | ||
| containers.conf | ||
| containers.conf-freebsd | ||
| db_backend.go | ||
| default.go | ||
| default_common.go | ||
| default_darwin.go | ||
| default_freebsd.go | ||
| default_linux.go | ||
| default_unsupported.go | ||
| default_windows.go | ||
| modules.go | ||
| new.go | ||
| nosystemd.go | ||
| pod_exit_policy.go | ||
| pull_policy.go | ||
| systemd.go | ||