6010 Commits

Author SHA1 Message Date
b0b9103cca Allow chained network namespace containers
The code currently assumes that the container we delegate network
namespace to will never further delegate to another container, so
when looking up things like /etc/hosts and /etc/resolv.conf we
won't pull the correct files from the chained dependency. The
changes to resolve this are relatively simple - just need to keep
looking until we find a container without NetNsCtr set.

Fixes #4626

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-12-03 10:27:15 -05:00
b88f2c4297 Merge pull request #4615 from ssbarnea/fix/prepare
build: improved prepare.sh
2019-12-03 04:01:42 -08:00
9e361fd851 Merge pull request #4622 from rhatdan/rootless
Add comment on rootless containers creating device nodes
2019-12-03 00:49:20 -08:00
588156a9ef Merge pull request #4623 from rhatdan/errors
Ignore ErrCtrRemoved when removing a container
2019-12-03 00:33:27 -08:00
309452dcfc Merge pull request #4624 from mheon/refresh_volume_locks
Ensure volumes reacquire locks on state refresh
2019-12-02 23:32:59 -08:00
6458f960e6 Merge pull request #4584 from nitrocode/patch-2
install.md: added slirp4netns dependency to ubuntu
2019-12-02 21:04:47 -08:00
689329f749 Ensure volumes reacquire locks on state refresh
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>
2019-12-02 23:06:00 -05:00
b90585042c Merge pull request #4616 from ssbarnea/fix/makefile
build: improved main makefile
2019-12-02 19:41:51 -08:00
2eda555ebe Ignore ErrCtrRemoved when removing a container
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-03 04:14:57 +01:00
8cb1af9afc Add comment on rootless containers creating device nodes
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-03 03:38:41 +01:00
c9696c451d Merge pull request #4596 from kunalkushwaha/container-prune
container prune command fixed as per docker prune command
2019-12-02 18:33:58 -08:00
1414a063f5 Updates on making doc building and debug optional
It changes the podman spec from using with_doc to bcond_without
for building docs so that anyone can pass --without doc as well
as other rpmbuild args to the build_rpm.sh script to skip
building docs.

Since go-md2man is not available in CentOS8 repo. without the
help fo extra_args, it makes it conditional.

It also moves the manpages to a seperate package.

Signed-off-by: Chandan Kumar (raukadah) <raukadah@gmail.com>
2019-12-03 07:57:50 +05:30
f4302a52cb troubleshooting: warn about secure boot
Add an additional troubleshooting item to warn users that Secure Boot
can prevent Podman from running containers. The error messages and
initial debugging steps don't make it clear that this all stems from a
BIOS setting. Hopefully adding this item to the troubleshooting doc
will avoid future headaches.

Signed-off-by: Brian Fallik <brian@clypd.com>
2019-12-02 20:11:45 -05:00
711728672f Merge pull request #4617 from giuseppe/fix-error-case
libpod: fix case for executable file not found errors
2019-12-02 19:24:54 +01:00
e13e5502e3 libpod: fix case for executable file not found errors
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>
2019-12-02 18:03:33 +01:00
8d00c838fb Merge pull request #4608 from rhatdan/vendor
Fix podman-remote version to print client and server
2019-12-02 17:57:44 +01:00
86ef7db536 build: improved main makefile
* added .install.md2man as dependency for docs, fixed broken build
  on systems that do not have go-md2man preinstalled.
* sorted PHONY targets

Signed-off-by: Sorin Sbarnea <ssbarnea@redhat.com>
2019-12-02 16:47:30 +00:00
3befbb1997 build: improved prepare.sh
* assure we use bash strict mode
* avoid shallow errors on full clones
* make script bit more idempotent

Signed-off-by: Sorin Sbarnea <ssbarnea@redhat.com>
2019-12-02 16:33:51 +00:00
e4275b3453 Merge pull request #4493 from mheon/add_removing_state
Add ContainerStateRemoving
2019-12-02 16:31:11 +01:00
b9b2ab5e5f Fix podman-remote version to print client and server
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>
2019-12-02 15:50:00 +01:00
bca01ed461 man page updated with examples of filter option
examples with filter added

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2019-12-02 11:47:56 +09:00
6c757949ce install.md: added slirp4netns dependency to ubuntu
https://github.com/containers/libpod/issues/1234
Signed-off-by: nitrocode <nitrocode@users.noreply.github.com>
2019-12-01 20:01:46 -05:00
39c705e940 Merge pull request #4558 from rhatdan/reset
Add podman system reset command
2019-11-29 15:05:03 +01:00
7b99ef0b84 Merge pull request #4597 from openSUSE/nostore
Do not initialize store on rootless podman
2019-11-29 14:50:42 +01:00
7f53178a7d Merge pull request #4576 from giuseppe/oci-errors-only-match
oci: print only matching part for the errors
2019-11-29 12:22:58 +01:00
1c0356ee91 Merge pull request #4587 from raukadah/btrfs
Disable btrfs for RHEL in podman spec
2019-11-29 12:02:37 +01:00
39b14405c3 Merge pull request #4589 from ssbarnea/fix/build2
Detect Python executable in Makefile
2019-11-29 11:46:56 +01:00
79bf5010ed Add podman system reset command
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>
2019-11-29 05:34:52 -05:00
b4313b296a fix commands.go to get links from correct directory
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-11-29 05:32:53 -05:00
17646e9c7d Merge pull request #4590 from raukadah/docs
Make doc building in spec optional
2019-11-29 11:32:52 +01:00
1bf9b27a22 Merge pull request #4594 from adrianreber/master
Disable checkpointing of containers started with --rm
2019-11-29 11:21:22 +01:00
d264dc1c0a Do not initialize store on rootless podman
This fixes a double-locking issue of the container storage when running
rootless podman.

Closes #4591

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-11-29 08:59:38 +01:00
10c37a2c93 filter added to container prune command
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>
2019-11-29 15:28:55 +09:00
5e43c7cde1 Disable checkpointing of containers started with --rm
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>
2019-11-28 20:25:45 +01:00
17e4641d45 Make doc building in spec optional
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>
2019-11-28 18:40:15 +05:30
eb3cbdd628 Donot install btrfs in RHEL/CentOS-8
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>
2019-11-28 18:38:22 +05:30
aa95726c98 Merge pull request #4579 from ssbarnea/fix/build
Improved build_rpm.sh
2019-11-28 11:39:37 +01:00
bc485bce47 oci: print only matching part for the errors
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>
2019-11-28 09:51:58 +01:00
0602ce4dc0 command output fixed as per docker equivalent
container prune command ask for confirmation by default.

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2019-11-28 11:45:26 +09:00
7262e545c8 Detect Python executable in Makefile
`make help` failed on modern platforms that have only
python3 executable installed.

Signed-off-by: Sorin Sbarnea <ssbarnea@redhat.com>
2019-11-27 19:27:14 +00:00
7605387a70 Improved build_rpm.sh
- assure we use bash strict mode to avoid missing errors
- added untracked artifacts to gitignore

Signed-off-by: Sorin Sbarnea <sorin.sbarnea@gmail.com>
2019-11-27 17:59:06 +00:00
2178875fa7 Merge pull request #4568 from openSUSE/history
Add support for image name history
2019-11-27 15:31:22 +01:00
63e46cc85c Add support for image name history
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>
2019-11-27 13:42:06 +01:00
27a09f8fab Merge pull request #4443 from QiWang19/prune_pod
Remove containers when pod prune & pod rm.
2019-11-26 20:43:28 +01:00
b29928f015 Merge pull request #4542 from mheon/static_ip_single_net_allowed
Allow --ip and --mac to be set when joining a CNI net
2019-11-26 19:56:49 +01:00
07c63583dd Merge pull request #4475 from rhatdan/tmpdir
Add missing information to podman.1 man page
2019-11-26 19:42:36 +01:00
d9400cced2 Remove containers when pruning a stopped pod.
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>
2019-11-26 13:19:31 -05:00
f5ef3d59bc Merge pull request #4557 from rhatdan/man
Document other bind options on --volumes flag
2019-11-26 18:50:37 +01:00
01ae532a89 Allow --ip and --mac to be set when joining a CNI net
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>
2019-11-26 09:56:14 -05:00
a4983b05fb Document other bind options on --volumes flag
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-11-26 07:57:33 -05:00