Commit graph

8442 commits

Author SHA1 Message Date
Matthew Heon
db81bc2c83 When determining systemd mode, use full command
We were only using the Command field in specgen when determining
whether to enable systemd if systemd=true (the default) was used.
This does not include the entrypoint, and does not include any
entrypoint/command sourced from the image - so an image could be
running systemd and we'd not correctly detect this. Using the
full, final command resolves this and matches Podman v1.9.x
behavior.

Fixes #6920

Signed-off-by: Matthew Heon <matthew.heon@pm.me>

<MH: Fixed compile after backport>

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-22 14:28:42 -04:00
Matthew Heon
f74a28e08a Fix lint
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-22 14:20:14 -04:00
Matthew Heon
cad36d4b7a Populate remaining unused fields in pod inspect
We were hard-coding two fields to false, instead of grabbing
their value from the pod config, which means that `pod inspect`
would print the wrong value always.

Fixes #6968

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-22 14:20:00 -04:00
Matthew Heon
31ecb728d2 Include infra container information in pod inspect
We had a field for this in the inspect data, but it was never
being populated. Because of this, `podman pod inspect` stopped
showing port bindings (and other infra container settings). Add
code to populate the infra container inspect data, and add a test
to ensure we don't regress again.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-22 14:19:50 -04:00
Tristan Cacqueray
11f716094c play-kube: add suport for "IfNotPresent" pull type
This change prevents this exception when loading a pod spec
using the "IfNotPresent" pull policy:
  Error: invalid pull type "IfNotPresent"

Signed-off-by: Tristan Cacqueray <tdecacqu@redhat.com>
2020-07-22 14:18:53 -04:00
Sagi Shnaidman
ded829cdde docs: user namespace can't be shared in pods
When running "podman pod create --share user" the errors appears:
Error: User sharing functionality not supported on pod level
Fix docs and remove 'user' from shareable parameters.

Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2020-07-22 14:17:38 -04:00
Akihiro Suda
9c8ffc4615 Fix "Error: unrecognized protocol \"TCP\" in port mapping"
"TCP" in upper characters was not recognized as a valid protocol name.

Fix #6948

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2020-07-22 14:15:30 -04:00
Brent Baude
c6852ee516 Error on rootless mac and ip addresses
When creating a pod or container where a static MAC or IP address is provided, we should return a proper error and exit as 125.

Fixes: #6972

Signed-off-by: Brent Baude <bbaude@redhat.com>

<MH: Fixed build after cherry-pick>

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-22 14:13:43 -04:00
Ashley Cui
c31dc9b260 Fix & add notes regarding problematic language in codebase
Podman is committed to inclusivity, a core value of open source. Historically, there have been technology terms that are problematic and divisive, and should be changed. We are currently taking time to audit our repository in order to eliminate such terminology, and replace it with more inclusive terms. We are starting where we can, with our own code, comments, and documentation. However, such terms may be used in dependencies, and must be used in our repositories at the current moment for compatibility. Podman will change these terms in our repo as soon as new and better terminology is available to us via our dependencies.

For more information: https://www.redhat.com/en/blog/making-open-source-more-inclusive-eradicating-problematic-language?sc_cid=701600000011gf0AAA

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-07-22 14:11:10 -04:00
Giuseppe Scrivano
e21a6368f9 abi: set default umask and rlimits
the code got lost in the migration to podman 2.0, reintroduce it.

Closes: https://github.com/containers/podman/issues/6989

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

<MH: Fixed build>

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-22 14:05:20 -04:00
Parker Van Roy
92186cbd28 Used reference package with errors for parsing tag
Signed-off-by: Parker Van Roy <pvanroy@redhat.com>
2020-07-22 13:52:53 -04:00
Paul Holzinger
2e35dfa20c fix: system df error when an image has no name
When an image has no name/tag system df will
error because it tries to parse an empty name.

This commit makes sure we only parse non
empty names and set the repository and tag
to "<none>" otherwise.

Closes #7015

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-07-22 13:49:58 -04:00
Ashley Cui
7461bafabb Fix Generate API title/description
generate kube title and descritopn was same as play kube for apiv2 docs

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-07-22 13:45:33 -04:00
Daniel J Walsh
a5f5e45c4b Add noop function disable-content-trust
People who use docker scripts with Podman see failures
if they use disable-content-trust flag.  This flag already
existed for podman build, adding it to pull/push/create/run.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-22 13:42:56 -04:00
zhangguanzhang
092ff38129 fix play kube doesn't override dockerfile ENTRYPOINT
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-07-22 13:29:59 -04:00
Daniel J Walsh
cb603b8a3e Support default profile for apparmor
Currently you can not apply an ApparmorProfile if you specify
--privileged.  This patch will allow both to be specified
simultaniosly.

By default Apparmor should be disabled if the user
specifies --privileged, but if the user specifies --security apparmor:PROFILE,
with --privileged, we should do both.

Added e2e run_apparmor_test.go

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-22 13:14:15 -04:00
OpenShift Merge Robot
2d24487ba2
Merge pull request #7049 from mheon/update_c_common
Bump github.com/containers/common to v0.14.6
2020-07-22 18:54:27 +02:00
Matthew Heon
9e7c7211c4 Bump github.com/containers/common to v0.14.6
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-22 10:48:13 -04:00
OpenShift Merge Robot
ff31cdc558
Merge pull request #7038 from vrothberg/2.0-events-endpoint
[2.0] events fixes
2020-07-22 03:39:36 -04:00
OpenShift Merge Robot
0291928abb
Merge pull request #7033 from rhatdan/v2.0
[2.0] Switch references from libpod.conf to containers.conf
2020-07-21 13:43:54 -04:00
Valentin Rothberg
3fcdd0d54e events endpoint: backwards compat to old type
The versions Docker that the compat endpoints currently support are
using another type for the `filters` parameter than later versions
of Docker, which the libpod/events endpoint is also using.

To prevent existing deplopyments from breaking while still achieving
backward compat, we now support both types for the filters parameter.

Tested manually.

Fixes: #6899
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 16:56:46 +02:00
Valentin Rothberg
142db01942 events endpoint: fix panic and race condition
Fix a potential panic in the events endpoint when parsing the filters
parameter.  Values of the filters map might be empty, so we need to
account for that instead of uncondtitionally accessing the first item.

Also apply a similar for race conditions as done in commit f4a2d25c0f:

	Fix a race that could cause read errors to be masked.  Masking
	such errors is likely to report red herrings since users don't
	see that reading failed for some reasons but that a given event
	could not be found.

Another race was the handler closing event channel, which could lead to
two kinds of panics: double close, send to close channel.  The backend
takes care of that.  However, make sure that the backend stops working
in case the context has been cancelled.

Fixes: #6899
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 16:56:26 +02:00
OpenShift Merge Robot
1b8d0e4543
Merge pull request #7029 from vrothberg/2.0-systemd-cleanups
[2.0] contrib/systemd cleanups
2020-07-21 09:52:49 -04:00
Daniel J Walsh
330e9144bd
Switch references from libpod.conf to containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-21 09:29:01 -04:00
Valentin Rothberg
87ccd28d06 podman.service: set type to simple
Set the type of the podman.service to simple.  This will correctly
report the status of the service once it has started.  As a oneshot
service, it does not transition from the startup state to running.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 09:03:52 +02:00
Valentin Rothberg
a334e780b5 podman.service: set doc to podman-system-service
podman-api(1) does not exist, so set the man page to
podman-system-service(1).  Same for the .socket.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 09:03:47 +02:00
Valentin Rothberg
a7ffdf954f podman.service: use default registries.conf
Do not hard-set the registries.conf to `/etc/containers/registries.conf`.
Podman (and other c/image users) already default to it.  However,
ordinary non-root users should still be able to use the configs in their
home directories which is now possible.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 09:03:41 +02:00
Valentin Rothberg
1123738868 podman.service: use default killmode
Do not set the killmode to process as it only kills the main process and
leaves other processes untouched.  Just remove the line and use the
default cgroup killmode which will kill all processes in the service's
cgroup.

Fixes: #7021
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 09:03:36 +02:00
Valentin Rothberg
1624fbb943 podman.service: remove stop timeout
Remove the stop timeout from the unit.  As unit does not specify any
stop command, the timeout is effectively 0 and a NOOP.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 09:03:32 +02:00
Valentin Rothberg
48cb5f048e systemd: symlink user->system
Symlink the user to the system services in `contrib/systemd`.
There is no diference between the services, so we can reduce
redundancy while not breaking downstream packages which might
already be referencing `./contrib/systemd/user`.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-21 09:03:29 +02:00
OpenShift Merge Robot
a5a5ad184e
Merge pull request #6996 from vrothberg/2.0-update-x/text
[2.0] vendor golang.org/x/text@v0.3.3
2020-07-16 07:21:20 -04:00
Valentin Rothberg
185d9effdb vendor golang.org/x/text@v0.3.3
Fixes: CVE-2020-14040
Fixes: bugzilla.redhat.com/show_bug.cgi?id=1854718
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-16 10:43:47 +02:00
OpenShift Merge Robot
2a36096b50
Merge pull request #6910 from mheon/fix_out_of_range
Fix a bug where --pids-limit was parsed incorrectly
2020-07-15 12:55:46 -04:00
Matthew Heon
9810e586fe Fix a bug where --pids-limit was parsed incorrectly
The --pids-limit flag was using strconv.ParseInt with bad
arguments, resulting in it being unable to parse standard
integers (1024, for example, would produce an 'out of range'
error).

Change the arguments to make sense (base 10, max 32-bit) and
add a test to ensure we don't regress again.

Fixes #6908

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-15 10:04:42 -04:00
OpenShift Merge Robot
5262c53598
Merge pull request #6921 from vrothberg/2.0-wildcard-search
[2.0] search: allow wildcards
2020-07-15 07:53:28 -04:00
Valentin Rothberg
660208cea3 search: allow wildcards
Allow wildcards in the search term.  Note that not all registries
support wildcards and it may only work with v1 registries.

Note that searching implies figuring out if the specified search term
includes a registry.  If there's not registry detected, the search term
will be used against all configured "unqualified-serach-registries" in
the registries.conf.  The parsing logic considers a registry to be the
substring before the first slash `/`.

With these changes we now not only support wildcards but arbitrary
input; ultimately it's up to the registries to decide whether they
support given input or not.

Fixes: bugzilla.redhat.com/show_bug.cgi?id=1846629
Cherry-pick-of: commit b05888a97d
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-15 11:42:04 +02:00
Brent Baude
7f8643a782 [CI:DOCS]Do not copy policy.json into gating image
test/policy.json should not need to be copied into the gating image

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-07-15 11:42:04 +02:00
Brent Baude
2c72fbdd82 Fix systemd pid 1 test
fedora removed the systemd package from its standard container image causing our systemd pid1 test to fail.  Replacing usage of fedora to ubi-init.

adding ubi images to the cache for local tests.

also, remove installation of test/policy.json to the system wide /etc/containers

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-07-15 11:42:04 +02:00
Chris Evich
79167a157f Cirrus: Rotate keys post repo. rename
Encode credentials at new repository settings page
https://cirrus-ci.com/settings/repository/6707778565701632

Ref: https://cirrus-ci.org/guide/writing-tasks/#encrypted-variables

Backport-of: commit 576ce0f1b5
Signed-off-by: Chris Evich <cevich@redhat.com>
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-15 11:42:04 +02:00
OpenShift Merge Robot
373ba8c017
Merge pull request #6888 from mheon/bump_202
[CI:DOCS] Bump to v2.0.2
2020-07-07 20:48:17 +02:00
Matthew Heon
0f338dd991 Bump to v2.0.3-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-07 14:26:27 -04:00
Matthew Heon
201c9505b8
Bump to v2.0.2
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-07 14:25:29 -04:00
OpenShift Merge Robot
c3c03f9ca1
Merge pull request #6883 from vrothberg/2.0-events-race
[2.0] fix race condition in `libpod.GetEvents(...)`
2020-07-07 20:21:13 +02:00
OpenShift Merge Robot
442220e7a8
Merge pull request #6886 from mheon/final_202_relnotes
[CI:DOCS] Finalize release notes for Podman v2.0.2
2020-07-07 19:49:39 +02:00
Matthew Heon
2c8f73b4dd Finalize release notes for Podman v2.0.2
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-07 13:16:30 -04:00
Valentin Rothberg
0bc40bdcf3 fix race condition in libpod.GetEvents(...)
Fix a race that could cause read errors to be masked.  Masking such
errors is likely to report red herrings since users don't see that
reading failed for some reasons but that a given event could not be
found.

Backport-of: commit f4a2d25c0f
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-07 17:29:14 +02:00
OpenShift Merge Robot
ea7a6101ef
Merge pull request #6873 from baude/v2.0disableconnection
remove podman system connection
2020-07-07 06:03:08 -04:00
OpenShift Merge Robot
6dae4bae2e
Merge pull request #6874 from mheon/backport_mount_fix
Backport 'podman mount' bugfix
2020-07-06 19:51:21 -04:00
Matthew Heon
8ab0abbb06 Fix bug where podman mount didn't error as rootless
We require that rootless `podman mount` be run inside a shell
spawned by `podman unshare` (which gives us a mount namespace
which actually lets other commands use the mounted filesystem).

The fix is simple - we need to mark the command as requiring the
rootless user namespace not be configured, so we can test for it
later as part of the mount code and error if we needed to make
one.

Disable rootless tests as part of this - they were never expected
to work.

Fixes #6856

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-06 16:59:05 -04:00
Brent Baude
66e1626282 remove podman system connection
podman system connection was panic'ing and not working as expected.  we are temporarily removing to as to not confuse users until we can fix it and prevent regressions with integrations tests.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-07-06 15:36:17 -05:00