summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Ensure volumes reacquire locks on state refreshMatthew Heon2019-12-02
| | | | | | | | | | | | | | | | | | | | | | | | After a restart, pods and containers both run a refresh() function to prepare to run after a reboot. Until now, volumes have not had a similar function, because they had no per-boot setup to perform. Unfortunately, this was not noticed when in-memory locking was introduced to volumes. The refresh() routine is, among other things, responsible for ensuring that locks are reserved after a reboot, ensuring they cannot be taken by a freshly-created container, pod, or volume. If this reservation is not done, we can end up with two objects using the same lock, potentially needing to lock each other for some operations - classic recipe for deadlocks. Add a refresh() function to volumes to perform lock reservation and ensure it is called as part of overall refresh(). Fixes #4605 Fixes #4621 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* Merge pull request #4596 from kunalkushwaha/container-pruneOpenShift Merge Robot2019-12-02
|\ | | | | container prune command fixed as per docker prune command
| * man page updated with examples of filter optionKunal Kushwaha2019-12-02
| | | | | | | | | | | | examples with filter added Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
| * filter added to container prune commandKunal Kushwaha2019-11-29
| | | | | | | | | | | | | | filter flag helps to filter the containers based on labels, until(time), name, etc for prune command. Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
| * command output fixed as per docker equivalentKunal Kushwaha2019-11-28
| | | | | | | | | | | | container prune command ask for confirmation by default. Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
* | Merge pull request #4617 from giuseppe/fix-error-caseOpenShift Merge Robot2019-12-02
|\ \ | | | | | | libpod: fix case for executable file not found errors
| * | libpod: fix case for executable file not found errorsGiuseppe Scrivano2019-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | do not change the runtime error to be lowercase, but use a case insensitive regex matching. In this way the original error from the OCI runtime is reported back. regression introduced by bc485bce47f55135d6ead80537bc145edb779ae9 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | | Merge pull request #4608 from rhatdan/vendorOpenShift Merge Robot2019-12-02
|\ \ \ | |/ / |/| | Fix podman-remote version to print client and server
| * | Fix podman-remote version to print client and serverDaniel J Walsh2019-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the user specifies .Server.* on a non podman-remote, substitute .Client for .Server and return the value. This is for compatability with Docker. Since prior versions documented --format {{ .Version }}, we have to continue to support that. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | | Merge pull request #4493 from mheon/add_removing_stateOpenShift Merge Robot2019-12-02
|\ \ \ | |/ / |/| | Add ContainerStateRemoving
| * | Error on netns not exist only when ctr is runningMatthew Heon2019-11-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the container is running and we need to get its netns and can't, that is a serious bug deserving of errors. If it's not running, that's not really a big deal. Log an error and continue. Signed-off-by: Matthew Heon <mheon@redhat.com>
| * | Add ContainerStateRemovingMatthew Heon2019-11-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Libpod removes a container, there is the possibility that removal will not fully succeed. The most notable problems are storage issues, where the container cannot be removed from c/storage. When this occurs, we were faced with a choice. We can keep the container in the state, appearing in `podman ps` and available for other API operations, but likely unable to do any of them as it's been partially removed. Or we can remove it very early and clean up after it's already gone. We have, until now, used the second approach. The problem that arises is intermittent problems removing storage. We end up removing a container, failing to remove its storage, and ending up with a container permanently stuck in c/storage that we can't remove with the normal Podman CLI, can't use the name of, and generally can't interact with. A notable cause is when Podman is hit by a SIGKILL midway through removal, which can consistently cause `podman rm` to fail to remove storage. We now add a new state for containers that are in the process of being removed, ContainerStateRemoving. We set this at the beginning of the removal process. It notifies Podman that the container cannot be used anymore, but preserves it in the DB until it is fully removed. This will allow Remove to be run on these containers again, which should successfully remove storage if it fails. Fixes #3906 Signed-off-by: Matthew Heon <mheon@redhat.com>
* | | Merge pull request #4558 from rhatdan/resetOpenShift Merge Robot2019-11-29
|\ \ \ | | | | | | | | Add podman system reset command
| * | | Add podman system reset commandDaniel J Walsh2019-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This command will destroy all data created via podman. It will remove containers, images, volumes, pods. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
| * | | fix commands.go to get links from correct directoryDaniel J Walsh2019-11-29
| | | | | | | | | | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | | | Merge pull request #4597 from openSUSE/nostoreOpenShift Merge Robot2019-11-29
|\ \ \ \ | | | | | | | | | | Do not initialize store on rootless podman
| * | | | Do not initialize store on rootless podmanSascha Grunert2019-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a double-locking issue of the container storage when running rootless podman. Closes #4591 Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* | | | | Merge pull request #4576 from giuseppe/oci-errors-only-matchOpenShift Merge Robot2019-11-29
|\ \ \ \ \ | | | | | | | | | | | | oci: print only matching part for the errors
| * | | | | oci: print only matching part for the errorsGiuseppe Scrivano2019-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when parsing the OCI error, be sure to discard any other output that is not matched. The full output is still printed with --log-level=debug. Closes: https://github.com/containers/libpod/issues/4574 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | | | | | Merge pull request #4587 from raukadah/btrfsOpenShift Merge Robot2019-11-29
|\ \ \ \ \ \ | | | | | | | | | | | | | | Disable btrfs for RHEL in podman spec
| * | | | | | Donot install btrfs in RHEL/CentOS-8Chandan Kumar (raukadah)2019-11-28
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since btrfs-progs-devel is not available in RHEL/CentOS 8 and the spec fails to build it while running build_rpm.sh, making it optional fixes the issue. It also modifies the spec file to install btrfs-progs-devel for fedora only. Since golang-github-cpuguy83-go-md2man was added twice, it also removes the repetition. Signed-off-by: Chandan Kumar (raukadah) <raukadah@gmail.com>
* | | | | | Merge pull request #4589 from ssbarnea/fix/build2OpenShift Merge Robot2019-11-29
|\ \ \ \ \ \ | | | | | | | | | | | | | | Detect Python executable in Makefile
| * | | | | | Detect Python executable in MakefileSorin Sbarnea2019-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `make help` failed on modern platforms that have only python3 executable installed. Signed-off-by: Sorin Sbarnea <ssbarnea@redhat.com>
* | | | | | | Merge pull request #4590 from raukadah/docsOpenShift Merge Robot2019-11-29
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | Make doc building in spec optional
| * | | | | | Make doc building in spec optionalChandan Kumar (raukadah)2019-11-28
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | since go-man2md is not available in CentOS 8, making it optional allows them to build the rpm. Signed-off-by: Chandan Kumar (raukadah) <raukadah@gmail.com>
* | | | | | Merge pull request #4594 from adrianreber/masterOpenShift Merge Robot2019-11-29
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Disable checkpointing of containers started with --rm
| * | | | | Disable checkpointing of containers started with --rmAdrian Reber2019-11-28
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Trying to checkpoint a container started with --rm works, but it makes no sense as the container, including the checkpoint, will be deleted after writing the checkpoint. This commit inhibits checkpointing containers started with '--rm' unless '--export' is used. If the checkpoint is exported it can easily be restored from the exported checkpoint, even if '--rm' is used. To restore a container from a checkpoint it is even necessary to manually run 'podman rm' if the container is not started with '--rm'. Signed-off-by: Adrian Reber <areber@redhat.com>
* | | | | Merge pull request #4579 from ssbarnea/fix/buildOpenShift Merge Robot2019-11-28
|\ \ \ \ \ | |/ / / / |/| / / / | |/ / / Improved build_rpm.sh
| * | | Improved build_rpm.shSorin Sbarnea2019-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - assure we use bash strict mode to avoid missing errors - added untracked artifacts to gitignore Signed-off-by: Sorin Sbarnea <sorin.sbarnea@gmail.com>
* | | | Merge pull request #4568 from openSUSE/historyOpenShift Merge Robot2019-11-27
|\ \ \ \ | | | | | | | | | | Add support for image name history
| * | | | Add support for image name historySascha Grunert2019-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We leverage the containers/storage image history tracking feature to show the previously used image names when running: `podman images --history` Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* | | | | Merge pull request #4443 from QiWang19/prune_podOpenShift Merge Robot2019-11-26
|\ \ \ \ \ | | | | | | | | | | | | Remove containers when pod prune & pod rm.
| * | | | | Remove containers when pruning a stopped pod.Qi Wang2019-11-26
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | This path allows pod prune & pod rm to remove stopped containers in the pod before deleting the pod. PrunePods and RemovePod should be able to remove containers without force removal of stopped pods. Signed-off-by: Qi Wang <qiwan@redhat.com>
* | | | | Merge pull request #4542 from mheon/static_ip_single_net_allowedOpenShift Merge Robot2019-11-26
|\ \ \ \ \ | | | | | | | | | | | | Allow --ip and --mac to be set when joining a CNI net
| * | | | | Allow --ip and --mac to be set when joining a CNI netMatthew Heon2019-11-26
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These only conflict when joining more than one network. We can still set a single CNI network and set a static IP and/or static MAC. Fixes #4500 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | | | | Merge pull request #4475 from rhatdan/tmpdirOpenShift Merge Robot2019-11-26
|\ \ \ \ \ | |_|/ / / |/| | | | Add missing information to podman.1 man page
| * | | | Add missing information to podman.1 man pageDaniel J Walsh2019-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add missing options. Define the use of the TMPDIR environment variable for the storing of container images when they are being pulled to the system. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | | | | Merge pull request #4557 from rhatdan/manOpenShift Merge Robot2019-11-26
|\ \ \ \ \ | |_|/ / / |/| | | | Document other bind options on --volumes flag
| * | | | Document other bind options on --volumes flagDaniel J Walsh2019-11-26
|/ / / / | | | | | | | | | | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* | | | Merge pull request #4514 from mheon/discard_cleanup_errorsOpenShift Merge Robot2019-11-26
|\ \ \ \ | | | | | | | | | | Discard errors from Shutdown in `system renumber`
| * | | | Discard errors from Shutdown in `system renumber`Matthew Heon2019-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every other Podman command discards errors from Shutdown, which will error if containers are running. Mirror that behavior, just ignore the errors. Signed-off-by: Matthew Heon <mheon@redhat.com>
* | | | | Merge pull request #4540 from vrothberg/systemd-improvementsOpenShift Merge Robot2019-11-25
|\ \ \ \ \ | | | | | | | | | | | | podman rm/stop: add --allow-missing flag
| * | | | | podman {pod,} rm/stop: add --ignore flagValentin Rothberg2019-11-25
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an --ignore flag to podman rm and stop. When specified, Podman will ignore "no such {container,pod}" errors that occur when a specified container/pod is not present in the store (anymore). The motivation behind adding this flag is to write more robust systemd services using Podman. A user might have manually decided to remove a container/pod which would lead to a failure during the `ExecStop` directive of a systemd service referencing that container/pod. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | | | | Merge pull request #4544 from ↵OpenShift Merge Robot2019-11-22
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | containers/dependabot/go_modules/github.com/pkg/profile-1.4.0 build(deps): bump github.com/pkg/profile from 1.3.0 to 1.4.0
| * | | | build(deps): bump github.com/pkg/profile from 1.3.0 to 1.4.0dependabot-preview[bot]2019-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [github.com/pkg/profile](https://github.com/pkg/profile) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/pkg/profile/releases) - [Commits](https://github.com/pkg/profile/compare/v1.3.0...v1.4.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | | | | Merge pull request #4539 from ↵OpenShift Merge Robot2019-11-22
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | containers/dependabot/go_modules/gopkg.in/yaml.v2-2.2.7 build(deps): bump gopkg.in/yaml.v2 from 2.2.5 to 2.2.7
| * | | | | build(deps): bump gopkg.in/yaml.v2 from 2.2.5 to 2.2.7dependabot-preview[bot]2019-11-22
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.2.5 to 2.2.7. - [Release notes](https://github.com/go-yaml/yaml/releases) - [Commits](https://github.com/go-yaml/yaml/compare/v2.2.5...v2.2.7) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | | | | Merge pull request #4554 from vrothberg/prune-me-tender-prune-me-sweetOpenShift Merge Robot2019-11-22
|\ \ \ \ \ | | | | | | | | | | | | e2e/prune: run two top containers
| * | | | | e2e/prune: run two top containersValentin Rothberg2019-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In hope to make the prune tests more robust, run two top containers and stop one explicitly to reduce the risk of a race condition. Fixes: #4452 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* | | | | | Merge pull request #4512 from kunalkushwaha/prune-filterOpenShift Merge Robot2019-11-22
|\ \ \ \ \ \ | | | | | | | | | | | | | | image prune command fixed as per docker image prune.