6003 Commits

Author SHA1 Message Date
8ae672632b fix lint: correct func identifier in comment
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-08 13:52:52 +01:00
aaec8b2408 fix lint: "guarantess" is a misspelling of "guarantees"
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-08 13:51:13 +01:00
b33c774c15 Merge pull request #4592 from AkihiroSuda/rootlesskit-port-forwarder
rootless: use RootlessKit port forwarder
2020-01-08 13:16:22 +01:00
da7595a69f rootless: use RootlessKit port forwarder
RootlessKit port forwarder has a lot of advantages over the slirp4netns port forwarder:

* Very high throughput.
  Benchmark result on Travis: socat: 5.2 Gbps, slirp4netns: 8.3 Gbps, RootlessKit: 27.3 Gbps
  (https://travis-ci.org/rootless-containers/rootlesskit/builds/597056377)

* Connections from the host are treated as 127.0.0.1 rather than 10.0.2.2 in the namespace.
  No UDP issue (#4586)

* No tcp_rmem issue (#4537)

* Probably works with IPv6. Even if not, it is trivial to support IPv6.  (#4311)

* Easily extensible for future support of SCTP

* Easily extensible for future support of `lxc-user-nic` SUID network

RootlessKit port forwarder has been already adopted as the default port forwarder by Rootless Docker/Moby,
and no issue has been reported AFAIK.

As the port forwarder is imported as a Go package, no `rootlesskit` binary is required for Podman.

Fix #4586
May-fix #4559
Fix #4537
May-fix #4311

See https://github.com/rootless-containers/rootlesskit/blob/v0.7.0/pkg/port/builtin/builtin.go

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2020-01-08 19:35:17 +09:00
c41fd09a8d Merge pull request #4781 from haircommander/seccomp-profile-root
play kube: make seccomp handling better conform to k8s
2020-01-07 22:13:03 +01:00
bd3d8f4e28 Merge pull request #4788 from vrothberg/stale
github stale workflow: rephrase and bump close time
2020-01-07 18:57:54 +01:00
f85b3a01f0 Merge pull request #4774 from QiWang19/cp_src_path
fix bug copy from container directory
2020-01-07 16:10:05 +01:00
8094ee89ba github stale workflow: rephrase and bump close time
Rephrase the stale message to be friendlier and bump the closing time to
365 days.  The docs of the stale workflow do not indicate whether we can
not close, so a limit of 365 days seems fair.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-07 11:04:37 +01:00
e362220971 Merge pull request #4800 from mheon/bump-1.7.0
Bump to v1.7.0
2020-01-06 22:54:11 +01:00
8e4a489e1b Bump gitvalidation epoch
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-01-06 15:16:38 -05:00
08849db4b0 Bump to v1.7.1-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-01-06 15:16:38 -05:00
b7ce1157b0 Bump to v1.7.0
Signed-off-by: Matthew Heon <mheon@redhat.com>
v1.7.0
2020-01-06 15:16:35 -05:00
2d8f1c8fda Merge pull request #4762 from NevilleC/nc-issue4367
Generate binaries only if there are changes in src code.
2020-01-06 19:27:03 +01:00
2e0157a2d5 Merge pull request #4797 from edsantiago/policy_json_manpage
(minor) fix broken links to container-policy.json.5
2020-01-06 17:24:40 +01:00
6808ab34ea (minor) fix broken links to container-policy.json.5
Two man pages had incorrect references to a nonexistent
policy.conf(5) or policy-conf(5) [dot vs dash]. Fix them.

Also checked for other broken references via:

   $ for i in registries.conf storage.conf policy.json ; do grep -R $i.5 docs/source | grep -v containers-$i;done

(No further results found. That's not a guarantee that there
aren't other broken links though).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-01-06 08:34:56 -07:00
16b793a45a Generate binaries only if they are changes in src code.
Changes I am making:

1. The target `.gopathok` was listed in `.PHONY` which
looks wrong as it regenerates `.gopathok` every time we
 re-run it, which was a part of the issue. I removed it
 to avoid that. If `.gopathok` is present', makefile
should not need to rerun it.

2. Ensure the binaries are created only if they don't
exist by adding `bin/podman`
and `bin/podman-remote`.

3. Add a `SOURCES = $(shell find . -name "*.go")` and put
it as a dependency of the podman binaries target. It allows us
to re-generate the binaries only when there is a change in the
source files. The downside is it increases the running time of
the command that generates them (20 seconds on my virtual machine
running Centos 7). If this is a problem, we could introduce a
hidden file that would list all the files to track, that
would need to be updated only when a dev is introducing new files.

4. Fixed the make package-install as it does not work with yum.
I updated the build_rpm.sh to ensure it works on centos 7
and centos 8 with no pre-required installation.

Closes #4367

Signed-off-by: Neville Cain <neville.cain@qonto.eu>
2020-01-04 23:54:57 +01:00
b6792b61de play kube: make seccomp handling better conform to k8s
Add flag --seccomp-profile-root in play kube to allow users to specify where to look for seccomp profiles
update tests

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2020-01-03 13:27:17 -05:00
9758a975e6 Merge pull request #4780 from rhatdan/man
Fix presentation of man page tables
2020-01-03 18:39:08 +01:00
185373bfeb Fix presentation of man page tables
Currently the use of "*" in tables is causing go-md2man
to screw up the format of the man page.

This PR removes the "*" since it is not really necessary.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-03 10:12:14 -05:00
50b4446376 Merge pull request #4777 from mheon/bump-1.7.0-rc2
Bump to v1.7.0-RC2
2020-01-02 21:48:03 +01:00
13bff7719e Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-01-02 15:00:43 -05:00
5f08f2988a Bump to v1.7.0-dev
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-01-02 15:00:43 -05:00
9090c476f7 Bump to v1.7.0-rc2
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
v1.7.0-rc2
2020-01-02 15:00:37 -05:00
1faa5bb6cd Merge pull request #4776 from mheon/release_notes_v1.7.0_rc2
Update release notes with further changes from 1.7.0
2020-01-02 20:43:04 +01:00
fcca557104 Update release notes with further changes from 1.7.0
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-01-02 13:38:10 -05:00
b6e1689ff2 fix bug copy from container directory
Keep the original input source path with "/." so podman can copy the content of the directory when copying from container to host.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-01-02 00:53:02 -05:00
6a370cbbc7 Merge pull request #4757 from baude/networkrefactor
refactor network commands
2019-12-31 12:54:06 +01:00
93350b9e9f refactor network commands
move core of network commands from pkg/adapter to pkg/network to assist
with api development and remote podman commands.

Signed-off-by: baude <bbaude@redhat.com>
2019-12-29 11:18:49 -06:00
9e03aa14b6 Merge pull request #4748 from NevilleC/nc-podname
[Issue #4703] Add the pod name when we use `podman ps -p`
2019-12-29 12:16:43 +01:00
fa551fd16d Merge pull request #4756 from edsantiago/fix_kill_test_hang_safely
Fix race condition in kill test leading to hang
2019-12-29 12:03:57 +01:00
6897a1f5c2 Merge pull request #4754 from NevilleC/nc-improvemakeuninstall
Ensure 'make uninstall' removes bin and conf files.
2019-12-28 20:39:58 +01:00
0f78f345d9 Fix race condition in kill test leading to hang
When you open a FIFO for reading, but there's no writer, you hang.
This is just one of those obscure UNIXisms we all know but just
forget all too often.

My last PR was guilty of introducing such a condition; I caught
it by accident while testing other stuff. In short, the signal
container was doing 'echo DONE' as its last step, and we (BATS)
were reading the FIFO to check for it; but if the container
exited before we opened the FIFO for read, the open would hang.
This is not a hang that we can catch in the test: it would hang
the entire job forever. CI would presumably time out eventually,
but with no useful indication of the cause of the error.

Solution: use 'exec' to open the FIFO early and keep it open,
and use 'read -u FD' instead of 'read <$fifo': the former
reads from an open FD, the latter forces a new open() each time.

There is a shorter, more maintainable solution -- see #4755 -- but
that suffers from the same hanging problem in the (unlikely) case
where the signal-handling container exits, e.g. if signal handling
is broken in podman. The test would hang, with no helpful indicator.
Although this PR is a little more advanced scripting, I have
commented the relevant code well and believe the maintenance
cost is worth the risk of undebuggable hangs.

There is still a hang risk: if 'podman logs -f' fails and exits
immediately, the 'exec' will hang. I can't think of a non-racy
way to prevent that, and choose to live with that risk.

Tested by temporarily including 9 (SIGKILL) in the signals list.
The read timeout triggers, and the end user has a fair chance
of tracking down the root cause.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-12-28 08:00:05 -07:00
24b4921508 Merge pull request #4753 from NevilleC/nc-missingsize
Ensure SizeRw is shown when a user does 'inspect --size -t container'.
2019-12-28 12:35:23 +01:00
6441324192 Ensure 'make uninstall' remove bin and conf files.
I updated the 'make uninstall' command to remove:
1. podman and remote bin
2. cni/net.d/87-podman-bridge.conflist
3. podman.conf
4. systemd conf files: io.podman.socket.*

Closes #4572

Signed-off-by: Neville Cain <neville.cain@qonto.eu>
2019-12-28 02:26:38 +01:00
8bc394ce6e Add the pod name when we use podman ps -p
The pod name does not appear when doing `podman ps -p`.
It is missing as the documentation says:
-p, --pod              Print the ID and name of the pod the containers are associated with

The pod name is added in the ps output and checked in unit tests.

Closes #4703

Signed-off-by: NevilleC <neville.cain@qonto.eu>
2019-12-28 00:03:57 +01:00
2a5c235f78 Ensure SizeRw is shown when a user does 'inspect --size -t container'.
Currently, if a user requests the size on a container (inspect --size -t container),
the SizeRw does not show up if the value is 0. It's because InspectContainerData is
defined as int64 and there is an omit when empty.

We do want to display it even if the value is empty. I have changed the type of SizeRw to be a pointer to an int64 instead of an int64. It will allow us todistinguish the empty value to the missing value.

I updated the test "podman inspect container with size" to ensure we check thatSizeRw is displayed correctly.

Closes #4744

Signed-off-by: NevilleC <neville.cain@qonto.eu>
2019-12-27 23:49:34 +01:00
269b173496 Merge pull request #4749 from edsantiago/parse_and_validate_signal
signal parsing - better input validation
2019-12-27 14:59:37 +01:00
55922e3670 Merge pull request #4751 from mheon/quiet_template_noconflict
The --quiet flag does not conflict with templates in ps
2019-12-27 14:44:59 +01:00
40f55ca3fe signal parsing - better input validation
The helper function we use for signal name mapping does not
check for negative numbers nor invalid (too-high) ones. This
can yield unexpected error messages:

   # podman kill -s -1 foo
   ERRO[0000] unknown signal "18446744073709551615"

This PR introduces a small wrapper for it that:

  1) Strips off a leading dash, allowing '-1' or '-HUP'
     as valid inputs; and
  2) Rejects numbers <1 or >64 (SIGRTMAX)

Also adds a test suite checking signal handling as well as
ensuring that invalid signals are rejected by the command line.

Fixes: #4746

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-12-26 16:50:21 -07:00
25860df878 The --quiet flag does not conflict with templates in ps
To match Docker behavior, make `--quiet` and `--format` with a Go
template not conflict. Instead, just turn off `--quiet` in such
cases, as we'll be using Go template output instead.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-12-26 17:45:55 -05:00
c759c3f78d Merge pull request #4742 from rhatdan/vendor
Update containers/storage to v1.15.4
2019-12-23 18:19:07 +01:00
d62fce0c87 Merge pull request #4743 from baude/imageresponse
add struct response for removal of images
2019-12-23 18:01:32 +01:00
d43bff7cc6 Merge pull request #4740 from edsantiago/zsh_completion_flagfix
zsh completion: ignore multi-line output in Flags
2019-12-23 18:01:25 +01:00
9bf7315882 Merge pull request #4697 from rhatdan/context
Set contextdir to current PWD if user did not specify a context dir.
2019-12-23 17:16:06 +01:00
4f09cfdacc add struct response for removal of images
when removing an image from storage, we should return a struct that
details what was untagged vs deleted.  this replaces the simple
println's used previously and assists in API development.

Signed-off-by: baude <bbaude@redhat.com>
2019-12-23 10:02:14 -06:00
073f20d263 Update containers/storage to v1.15.4
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-23 10:19:13 -05:00
6dfffa92d9 Update containers/storage to v1.15.4
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-23 10:16:20 -05:00
3467f24fce zsh completion: ignore multi-line output in Flags
PR #4475 introduced an interesting twist on --help: a help
string that spans multiple lines. This broke zsh completion.

I'm not keen on that multi-line output, but it shouldn't
break completion. Fix is simple: look only for flag lines
beginning with '-', filter out anything else.

Fixes: #4738

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-12-23 06:28:49 -07:00
fcd48db4d2 Merge pull request #4708 from containers/dependabot/go_modules/github.com/containers/image/v5-5.1.0
build(deps): bump github.com/containers/image/v5 from 5.0.0 to 5.1.0
2019-12-20 17:39:45 +01:00
50ece79387 build(deps): bump github.com/containers/image/v5 from 5.0.0 to 5.1.0
Bumps [github.com/containers/image/v5](https://github.com/containers/image) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/containers/image/releases)
- [Commits](https://github.com/containers/image/compare/v5.0.0...v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-12-20 09:30:47 -05:00