Commit Graph

46 Commits

Author SHA1 Message Date
Daniel J Walsh a3a0a08b50 Add support for Remote flags in containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-28 15:47:01 -04:00
Daniel J Walsh 7b97b08724 Do not validate paths on remote platforms
Modify validate functions to work on a remote clients.
Any of the path checks will not work on remote machines or make
sense on remote clients. Therefore they should not be checked.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-28 13:29:37 -04:00
Daniel J Walsh ef4c52742f Add full path for error messages on containers.conf
Also add new function to allow container engines to tell users
where to edit containers.conf file.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-26 15:36:10 -04:00
Daniel J Walsh e371ed9f34 Revert removal of Set flags
Even though these are not read from the config file, they are
still required as fields to pass data in libpod.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-16 06:38:31 -04:00
Daniel J Walsh eab34f5581 Ignore empty strings from libpod.conf
If the user has a libpod.conf file with an option of "", then
we will ignore it and use the value from containers.conf.

Also the Set variables are only to be set, if a user specified an
override command, not if they were set in the libpod.conf file.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-15 17:05:28 -04:00
Valentin Rothberg 0ef2bfea2e pkg/config: set correct path in XDG_CONFIG_HOME
The rootless config path was wrong when running with XDG_CONFIG_HOME
set.

Reported-in: github.com/containers/libpod/issues/6163
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-11 13:42:43 +02:00
Daniel J Walsh cd83b65ee2 Do not set StaticDirSet, TmpDirSet,VolumePathSet
These indicate that the user has modified the settings.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-07 16:09:27 -04:00
Daniel J Walsh f681e24f01 Fix config.Capabilities function call
We need to normalize the capadd and capdrop functions, and
we need to return errors if the caller gives us bad input.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-30 17:41:07 -04:00
Daniel J Walsh c58a215838 Add support for cgroups configuration
We need to be able to disable cgroups when running container engines inside of containers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-13 13:56:16 -04:00
Daniel J Walsh c719975a94 Add RuntimeSupportsKVM to config.Engine
We need to identify the list of containers that support KVM separation, these
containers can run with a different SELinux label, and we might be able to
make different decisions in the container engines about how to launch these
containers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-07 10:11:59 -04:00
Daniel J Walsh ed25ff4eb6 Add more utils for returning defaults
Move pkg/sysinfo and pkg/apparmor out of libpod into containers/common.

This will allow other packages to use these libraries without requiring all of libpod.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-01 08:39:44 -04:00
Daniel J Walsh a21cf229ee Move pkg/unshare to containers/storage/pkg/unshare
This removes a circular dependancy

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-31 08:42:12 -04:00
Raphael Höser 2c144acb11 isDirectory resolve ~ to User HomeDir
When using podman by putting the prebuild binarys into the users homedirectory, paths in the config starting with "~" are not resolved as this is normally done by the shell.
Resolving "~" to HomeDir enables the user (or a config provider) to publish a config which doesn't require adaption for each user (e.G. by changing /home/<username>/usr/bin/cni as this now becomes ~/usr/bin/cni).

This commit adds a new func resolveHomeDir(string) (string, error) which resolves a given path if it contains a reference to homedir or returns the path unchanged when not.
It throws an error when it's unable to get the users HomeDir.

Signed-off-by: Raphael Höser <raphael@hoeser.info>
2020-03-21 12:18:05 +01:00
Daniel J Walsh f935da11c9 Move SignaturePolicyPath to Engine instead of Containers
Signatures are an engine struct rather then something
per/container.  Moving to proper location.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-17 16:52:32 -04:00
Giuseppe Scrivano 9322b03394 config: honor XDG_CONFIG_HOME
when the env variable is set, use its value for locating the user
configuration file.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-13 15:03:29 +01:00
Daniel J Walsh fb3a7428e0 Merge pull request #89 from rhatdan/master
Directories should allow for empty paths
2020-03-12 09:55:14 -04:00
Daniel J Walsh 8fed67b97e Directories should allow for empty paths
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-12 08:49:30 -04:00
Daniel J Walsh 50135a792d Change references to libpod to engine
containers/common pkg/config is for more engines then just libpod.

We want to use the 'libpod' section to configure parts of buildah.  Renaming this
section to engine, makes it more obvious to users that these fields can effect other
container engines.

Certain fields are still libpod specific, so we do not change those fields.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-11 14:56:32 -04:00
Daniel J Walsh cf37573798 Drop StorageConfig from containers config structures
Callers should use containers/storage directly.

Also remove MergeDBConfig, this is no longer used by any callers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-11 05:39:35 -04:00
Daniel J Walsh 357a5402c6 NewConfig(): passed-in configuration file should matter most
In NewConfig(), settings in the file whose name we're passed should
matter more than the hardwired default files, or the file named in the
CONTAINERS_CONF environment variable.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-09 17:29:26 -04:00
Qi Wang eee0f4f7f8 remove CgroupsAndAdjust from NewConfig
Export CheckCgroupsAndAdjustConfig() as global function and remove it from NewConfig(). So we can handle it in libpod and avoid Buildah to display cgroup warning message when reading containers.conf.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-03-09 15:18:15 -04:00
Qi Wang 0c613a6abe Support and prefer libpod.conf if exists
During the transision period of replacing libpod.conf with containers.conf, pkg/config should also read the libpod.conf if it exist.
This patch reads the libpod.conf in NewConfig() and converts the configurations to ContainersConfig Struct.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-03-09 14:37:19 -04:00
Qi Wang bec93b6703 Add pull_policy to LibpodConfig
pull_policy is the same as podman run --pull option to determin whether to pull a new image when running a container.
Accepted "always", "missing", and "never". Default value is "missing".

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-03-03 11:13:38 -05:00
Daniel J Walsh 00b0aae703 Add StopTimeout for podman
Allow users to modify the default ammount of time to wait to send SIGKILL
after you tell a container to stop with a SIGINT.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-02-21 11:32:16 -05:00
Daniel J Walsh 3d6b785749 CgroupManager should belong to libpod not containers
CgroupManager is defined for managing containers, it is not defined
per container.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-02-20 10:27:47 -05:00
Daniel J Walsh ad4b16c9d2 Remove additional_ adjective from containers.conf
Additional is implied, so should not be stated.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-02-19 09:48:11 -05:00
Daniel J Walsh 862583d397 Merge pull request #63 from ArangoGutierrez/issue_62
Add annotations into containers.conf file
2020-02-18 14:30:43 -05:00
Valentin Rothberg 130c712a05 pkg/capabilities
Replace pkg/caps with pkg/capabilities (from libpod).  It's also a fork
from Docker but attributes its origing with copyright notes and has a
trimmed down (and faster) API.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-18 15:58:19 +01:00
Carlos Eduardo Arango Gutierrez 3e885a69c4 Add annotations into containers.conf file
Closes #62

Signed-off-by: Carlos Eduardo Arango Gutierrez <carangog@redhat.com>
2020-02-17 19:42:11 -05:00
Carlos Eduardo Arango Gutierrez 6309277061 Fix misspell on config.go
Line 255:"guarantess" is a misspelling of "guarantees" (misspell)
Line 292:"guarantess" is a misspelling of "guarantees" (misspell)
rm some double spaces

Signed-off-by: Carlos Eduardo Arango Gutierrez <carangog@redhat.com>
2020-02-17 18:10:26 -05:00
Daniel J Walsh 4fa425fe38 Add Default function to read containers config
This function should be called to return a default config to be used
by callers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-02-10 08:21:07 -05:00
Daniel J Walsh 95fb926363 Stop validating networkconfig by default
This is causing issues in rootless and remote mode.  We should not be creating
directories on the fly.
Also stop exporting functions that are not used by Buildah and Podman.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-29 06:10:15 -05:00
Daniel J Walsh 789d9a515f Run code through codespell
Fix spelling mistakes found using codespell.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-08 08:56:50 -05:00
Daniel J Walsh 3e1c3932bf Add new Capability function to parse Capabiltiies
The Capability check handles merging of Default capabiltiies along
with user specified add and drop capabilities.

Fork docker/docker/oci/caps file to prevent a huge vendor

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-07 17:57:04 -05:00
Daniel J Walsh 5760a49664 HooksDir should be in LibpodConfig
This field is owned by libpod and is not part of containers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-07 17:53:02 -05:00
Daniel J Walsh 2603f5de14 Fix handling of SELinux labeling
Also re-add DefaultMountsFile since we need a holding place to be
used in libpod.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-04 05:45:17 -05:00
Daniel J Walsh 74d7f91c66 Update/Fix man page and fix several bugs in definition.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-03 13:57:01 -05:00
Daniel J Walsh b406a112e1 Add new fields to containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-28 07:22:07 -05:00
Daniel J Walsh 67213c41a3 Remove merge code and optional handling
Fix handling of toml files

No longer need merge, since we can specify a default conf for each toml file.
The toml code will retain the previous defaults and only use the newly specified
values.

This greatly simplifies the code.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-11 08:26:52 -05:00
Daniel J Walsh 547b101e3e Change optional bools to be private options
We want to hide Optional Bools from the default configuration.  Callers should only have to deal with boolean
fields and not deal with optionals.

Add accessor functions for all optional bools, easier.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-09 12:01:43 -05:00
Daniel J Walsh dfb351a9da Add support for CONTAINERS_CONF environment variable
This is needed to help in CI/CD systems to use an alternative containers.conf file for testing.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-07 06:20:27 -05:00
Qi Wang 894913abdf add libpod.conf to containers.conf
Add configurations from libpod.conf to containers.conf.Use merge code from libpod to read and merge configurations from file.

Add unshare_linux for build linux: HomeDir should buildah not only for linux. so add unshare_linux for linux and unshare.go for other

convert bool to optinalbool:Use OptionalBool for on-disk configurations so we can distinguish field is undefined  vs. user set to false.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-12-06 15:55:47 -05:00
Qi Wang 023822b7b0 turn off the check of the hook directory
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-11-09 13:05:58 -05:00
Qi Wang 760d4a30a0 change default value of pidslimit and hooksdir
Change default value of pidslimit and hooksdir.
Add hooksdir to default config.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-11-01 10:46:12 -04:00
Qi Wang 676d4298d3 move pkg/unshare from buildah
move the buildah/pkg/unshare into containers/common

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-10-10 22:35:31 -04:00
Qi Wang 9bb8e7e62b Add config package for containers.conf
This PR adds a package config for reading configurations from the containers.conf into the go struct.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-10-07 13:38:17 -04:00