summaryrefslogtreecommitdiff
path: root/pkg
Commit message (Collapse)AuthorAge
* libpod: use pkg/cgroups instead of containerd/cgroupsGiuseppe Scrivano2019-06-26
| | | | | | use the new implementation for dealing with cgroups. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* pkg: new package cgroupsGiuseppe Scrivano2019-06-26
| | | | | | | | | | | | | | | | | | provide a package for managing cgroups. This is not supposed to be a complete implementation with all the features supported by cgroups, but it is a minimal implementation designed around what libpod needs and it is currently using. For example, it is currently possible to Apply only the pids limit, as it is used by libpod for stopping containers, any other Apply will just fail. The main goal here is to have a minimal library where we have full control, so we can start playing with cgroup v2. When the need arises, we can add more features. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* remove libpod from mainbaude2019-06-25
| | | | | | | | | | | | | the compilation demands of having libpod in main is a burden for the remote client compilations. to combat this, we should move the use of libpod structs, vars, constants, and functions into the adapter code where it will only be compiled by the local client. this should result in cleaner code organization and smaller binaries. it should also help if we ever need to compile the remote client on non-Linux operating systems natively (not cross-compiled). Signed-off-by: baude <bbaude@redhat.com>
* Merge pull request #3386 from baude/windowsbridgeOpenShift Merge Robot2019-06-21
|\ | | | | add windows bridge format
| * add windows bridge formatbaude2019-06-20
| | | | | | | | | | | | | | | | | | | | | | when using podman-remote on windows, the bridge format must account for how windows deals with escape quoting. in this case, it does not need any. also, reduced duplicated code around generating the bridge endpoint for the unix and windows platforms. Signed-off-by: baude <bbaude@redhat.com>
* | Build cgo files with -Wall -WerrorSascha Grunert2019-06-21
| | | | | | | | | | | | | | | | To avoid unnecessary warnings and errors in the future I'd like to propose building all cgo related sources with `-Wall -Werror`. This commit fixes some warnings which came up in `shm_lock.c`, too. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* | Merge pull request #3379 from openSUSE/rootless-fixOpenShift Merge Robot2019-06-21
|\ \ | | | | | | Fix format specifiers in rootless_linux.c
| * | Fix format specifiers in rootless_linux.cSascha Grunert2019-06-20
| |/ | | | | | | | | | | | | Format `%d` expects argument of type `int`, but the argument has a type of `long int`. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* | Merge pull request #3380 from openSUSE/asprintf-fixOpenShift Merge Robot2019-06-20
|\ \ | | | | | | Handle possible asprintf failure in rootless_linux.c
| * | Handle possible asprintf failure in rootless_linux.cSascha Grunert2019-06-20
| |/ | | | | | | | | | | If `asprintf` fails we early exit now. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* / Fix execvp uage in rootless_linux.cSascha Grunert2019-06-20
|/ | | | | | | The second argument of `execlp` should be of type `char *`, so we need to add an additional argument there. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* Merge pull request #3369 from mheon/add_cached_delegatedOpenShift Merge Robot2019-06-19
|\ | | | | Add support for cached, delegated mounts
| * Add tests for cached and delegated mountsMatthew Heon2019-06-19
| | | | | | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
| * Allow (but ignore) Cached and Delegated volume optionsMatthew Heon2019-06-18
| | | | | | | | | | | | | | | | | | | | These are only used on OS X Docker, and ignored elsewhere - but since they are ignored, they're guaranteed to be safe everywhere, and people are using them. Fixes: #3340 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | Fix example in oci-hooks.5.mdErik Sjölund2019-06-18
|/ | | | Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
* Merge pull request #3328 from mheon/storage_opts_for_cleanupOpenShift Merge Robot2019-06-15
|\ | | | | When creating exit command, pass storage options on
| * When creating exit command, pass storage options onMatthew Heon2019-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We made changes earlier that empty storage options when setting storage driver explicitly. Unfortunately, this breaks rootless cleanup commands, as they lose the fuse-overlayfs mount program path. Fix this by passing along the storage options to the cleanup process. Also, fix --syslog, which was broken a while ago (probably when we broke up main to add main_remote). Fixes #3326 Signed-off-by: Matthew Heon <mheon@redhat.com>
* | Merge pull request #3330 from mheon/remote_storageOpenShift Merge Robot2019-06-14
|\ \ | | | | | | Add --storage flag to 'podman rm' (local only)
| * | Add --storage flag to 'podman rm' (local only)Matthew Heon2019-06-13
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag switches to removing containers directly from c/storage and is mostly used to remove orphan containers. It's a superior solution to our former one, which attempted removal from storage under certain circumstances and could, under some conditions, not trigger. Also contains the beginning of support for storage in `ps` but wiring that in is going to be a much bigger pain. Fixes #3329. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | Merge pull request #3334 from vrothberg/fix-3331OpenShift Merge Robot2019-06-14
|\ \ | | | | | | pkg/apparmor: fix when AA is disabled
| * | pkg/apparmor: fix when AA is disabledValentin Rothberg2019-06-14
| | | | | | | | | | | | | | | | | | | | | | | | Do not try to load the default profile when AppArmor is disabled on the host. Fixes: #3331 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | | Merge pull request #3333 from jordemort/podman-commit-env-fixOpenShift Merge Robot2019-06-14
|\ \ \ | | | | | | | | Fix ENV parsing on `podman import`
| * | | Fix ENV parsing on `podman import`Jordan Webb2019-06-14
| |/ / | | | | | | | | | Signed-off-by: Jordan Webb <jordemort@github.com>
* | | Merge pull request #3252 from mtrmac/registries.conf-mirrorsOpenShift Merge Robot2019-06-14
|\ \ \ | |/ / |/| | Update containers/image to v2.0.0, and buildah to v1.8.4
| * | Use the logical registry location instead of the physical one in (podman info)Miloslav Trmač2019-06-14
| | | | | | | | | | | | Signed-off-by: Miloslav Trmač <mitr@redhat.com>
| * | Update containers/image to v2.0.0, and buildah to v1.8.4Miloslav Trmač2019-06-14
| |/ | | | | | | | | | | | | | | | | In c/image, this adds the the mirror-by-digest-only option to mirrors, and moves the search order to an independent list. A synchronized buildah update is necessary to deal with the c/image API change. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
* | storage: support --mount type=bind,bind-nonrecursiveGiuseppe Scrivano2019-06-13
| | | | | | | | | | | | | | | | add support for not recursive bind mounts. Closes: https://github.com/containers/libpod/issues/3314 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | storage: fix typoGiuseppe Scrivano2019-06-13
|/ | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Merge pull request #3283 from haircommander/logging-play-kube-hotfixOpenShift Merge Robot2019-06-10
|\ | | | | Set a default log driver if none is specified
| * only set log driver if it isn't emptyPeter Hunt2019-06-08
| | | | | | | | | | | | Now, not setting a log driver in a create config correctly takes the default (k8s-logging) Signed-off-by: Peter Hunt <pehunt@redhat.com>
* | Fix cgo includes for muslCameron Nemo2019-06-08
| | | | | | | | | | | | closes #3284 Signed-off-by: Cameron Nemo <cnemo@tutanota.com>
* | Merge pull request #3180 from mheon/inspect_volumesOpenShift Merge Robot2019-06-08
|\ \ | |/ |/| Begin to break up pkg/inspect
| * Begin to break up pkg/inspectMatthew Heon2019-06-03
| | | | | | | | | | | | | | | | | | | | Let's put inspect structs where they're actually being used. We originally made pkg/inspect to solve circular import issues. There are no more circular import issues. Image structs remain for now, I'm focusing on container inspect. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | Merge pull request #3271 from ↵OpenShift Merge Robot2019-06-07
|\ \ | | | | | | | | | | | | giuseppe/rootless-skip-ns-resolution-on-old-kernels rootless: skip NS_GET_PARENT on old kernels
| * | rootless: skip NS_GET_PARENT on old kernelsGiuseppe Scrivano2019-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on old kernels the ioctl NS_GET_PARENT is not available. Handle the error code and immediately return the same fd. It should be fine now that we use the namespace resolution using the conmon pid, so the namespace parent resolution is just a safety measure. Closes: https://github.com/containers/libpod/issues/2968 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | | Merge pull request #2272 from adrianreber/migrationOpenShift Merge Robot2019-06-07
|\ \ \ | |/ / |/| | Add support to migrate containers
| * | migration: add possibility to restore a container with a new nameAdrian Reber2019-06-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The option to restore a container from an external checkpoint archive (podman container restore -i /tmp/checkpoint.tar.gz) restores a container with the same name and same ID as id had before checkpointing. This commit adds the option '--name,-n' to 'podman container restore'. With this option the restored container gets the name specified after '--name,-n' and a new ID. This way it is possible to restore one container multiple times. If a container is restored with a new name Podman will not try to request the same IP address for the container as it had during checkpointing. This implicitly assumes that if a container is restored from a checkpoint archive with a different name, that it will be restored multiple times and restoring a container multiple times with the same IP address will fail as each IP address can only be used once. Signed-off-by: Adrian Reber <areber@redhat.com>
| * | Also download container images during restoreAdrian Reber2019-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If restoring a container from a checkpoint it was necessary that the image the container is based was already available (podman pull). This commit adds the image download to podman container restore if it does not exist. Signed-off-by: Adrian Reber <areber@redhat.com>
| * | Added support to migrate containersAdrian Reber2019-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds an option to the checkpoint command to export a checkpoint into a tar.gz file as well as importing a checkpoint tar.gz file during restore. With all checkpoint artifacts in one file it is possible to easily transfer a checkpoint and thus enabling container migration in Podman. With the following steps it is possible to migrate a running container from one system (source) to another (destination). Source system: * podman container checkpoint -l -e /tmp/checkpoint.tar.gz * scp /tmp/checkpoint.tar.gz destination:/tmp Destination system: * podman pull 'container-image-as-on-source-system' * podman container restore -i /tmp/checkpoint.tar.gz The exported tar.gz file contains the checkpoint image as created by CRIU and a few additional JSON files describing the state of the checkpointed container. Now the container is running on the destination system with the same state just as during checkpointing. If the container is kept running on the source system with the checkpoint flag '-R', the result will be that the same container is running on two different hosts. Signed-off-by: Adrian Reber <areber@redhat.com>
* | | Merge pull request #3231 from baude/remoteclientconfOpenShift Merge Robot2019-06-04
|\ \ \ | | | | | | | | podman-remote.conf enablement
| * | | podman-remote.conf enablementbaude2019-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add the ability for the podman remote client to use a configuration file which describes its connections. users can now define a connection the configuration and then call it by name like: podman-remote -c connection1 and the destination and user will be derived from the configuration file. if no -c is provided, we look for a connection in the configuration file designated as 'default'. If the configuration file has only one connection, it will be deemed the 'default'. Signed-off-by: baude <bbaude@redhat.com>
* | | | Merge pull request #3225 from haraldh/virtwriterOpenShift Merge Robot2019-06-04
|\ \ \ \ | | | | | | | | | | pkg/varlinkapi/virtwriter/virtwriter.go: simplify func Reader
| * | | | pkg/varlinkapi/virtwriter/virtwriter.go: simplify func ReaderHarald Hoyer2019-06-03
| | |_|/ | |/| | | | | | | | | | Signed-off-by: Harald Hoyer <harald@redhat.com>
* | | | Merge pull request #3251 from giuseppe/join-block-signalsOpenShift Merge Robot2019-06-04
|\ \ \ \ | |_|_|/ |/| | | rootless: block signals on re-exec
| * | | rootless: block signals on re-execGiuseppe Scrivano2019-06-03
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we are allowed to use only signal safe functions between a fork of a multithreaded application and the next execve. Since setenv(3) is not signal safe, block signals. We are already doing it for creating a new namespace. This is mostly a cleanup since reexec_in_user_namespace_wait is used only only to join existing namespaces when we have not a pause.pid file. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | | Merge pull request #3081 from baude/remotecommitOpenShift Merge Robot2019-06-03
|\ \ \ | |/ / |/| | podman remote-client commit
| * | podman remote-client commitbaude2019-05-30
| |/ | | | | | | | | | | | | add the ability to commit a container to an image using the remote client. Signed-off-by: baude <bbaude@redhat.com>
* | rootless: use TEMP_FAILURE_RETRY macroGiuseppe Scrivano2019-05-31
| | | | | | | | | | | | avoid checking for EINTR for every syscall that could block. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | rootless: fix return typeGiuseppe Scrivano2019-05-31
| | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | rootless: make sure the buffer is NUL terminatedGiuseppe Scrivano2019-05-31
| | | | | | | | | | | | | | after we read from the pause PID file, NUL terminate the buffer to avoid reading garbage from the stack. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>