8487 Commits

Author SHA1 Message Date
6c6670f12a Add username to /etc/passwd inside of container if --userns keep-id
If I enter a continer with --userns keep-id, my UID will be present
inside of the container, but most likely my user will not be defined.

This patch will take information about the user and stick it into the
container.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-07 08:34:31 -04:00
1a93857acc Merge pull request #6693 from goochjj/libpod-sd-notify-cmdline
Implement --sdnotify cmdline option to control sd-notify behavior
2020-07-06 17:15:26 -04:00
b1cc781c68 Merge pull request #6570 from rhatdan/remote
Change buildtag for remoteclient to remote for testing
2020-07-06 17:00:19 -04:00
fca3434ee7 Merge pull request #6868 from mheon/fix_mount_rootless
Fix bug where `podman mount` didn't error as rootless
2020-07-06 16:41:59 -04:00
f4c649bdec Disable mount tests as rootless
As rootless, `podman mount` must be run inside `podman unshare`.
We don't really have a testing harness that can do this right
now.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-06 15:29:11 -04:00
a10d5b42ab Change buildtag for remoteclient to remote for testing
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-06 15:22:24 -04:00
f4708a5c49 Merge pull request #6812 from chuanchang/add_apiv2_test
test.apiv2: add testing for container initializing
2020-07-06 14:28:03 -04:00
10ad46eb73 BATS system tests for new sdnotify
Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-06 17:47:22 +00:00
0b1c1ef461 Implement --sdnotify cmdline option to control sd-notify behavior
--sdnotify container|conmon|ignore
With "conmon", we send the MAINPID, and clear the NOTIFY_SOCKET so the OCI
runtime doesn't pass it into the container. We also advertise "ready" when the
OCI runtime finishes to advertise the service as ready.

With "container", we send the MAINPID, and leave the NOTIFY_SOCKET so the OCI
runtime passes it into the container for initialization, and let the container advertise further metadata.
This is the default, which is closest to the behavior podman has done in the past.

The "ignore" option removes NOTIFY_SOCKET from the environment, so neither podman nor
any child processes will talk to systemd.

This removes the need for hardcoded CID and PID files in the command line, and
the PIDFile directive, as the pid is advertised directly through sd-notify.

Signed-off-by: Joseph Gooch <mrwizard@dok.org>
2020-07-06 17:47:18 +00:00
9532509c50 Merge pull request #6836 from ashley-cui/tzlibpod
Add --tz flag to create, run
2020-07-06 13:28:20 -04:00
195d44bde6 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.

Fixes #6856

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-06 12:56:52 -04:00
9eac75a967 Merge pull request #6864 from vrothberg/v2-module
move go module to v2
2020-07-06 10:58:38 -04:00
778f34a15c Merge pull request #6859 from containers/dependabot/go_modules/github.com/onsi/ginkgo-1.14.0
Bump github.com/onsi/ginkgo from 1.13.0 to 1.14.0
2020-07-06 10:09:10 -04:00
8489dc4345 move go module to v2
With the advent of Podman 2.0.0 we crossed the magical barrier of go
modules.  While we were able to continue importing all packages inside
of the project, the project could not be vendored anymore from the
outside.

Move the go module to new major version and change all imports to
`github.com/containers/libpod/v2`.  The renaming of the imports
was done via `gomove` [1].

[1] https://github.com/KSubedi/gomove

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-06 15:50:12 +02:00
4bdc11951e Merge pull request #6790 from QiWang19/set_engine_env
Set engine env from common config
2020-07-06 09:36:08 -04:00
262843e1ce Merge pull request #6855 from Luap99/ps-command-trunc
podman ps truncate the command
2020-07-06 09:33:23 -04:00
9bccb0f091 Merge pull request #6858 from vrothberg/fix-6793
auto-update: clarify systemd-unit requirements
2020-07-06 09:28:08 -04:00
4351e33947 Merge pull request #6846 from mheon/fix_pod_errors
Print errors from individual containers in pods
2020-07-06 06:26:19 -04:00
a7ceed05a0 Merge pull request #6848 from TomSweeneyRedHat/dev/tsweeney/ib_v1.1.6_up
Bump imagebuilder to v1.1.6 in upstream
2020-07-06 06:21:08 -04:00
064bc32b1c Bump github.com/onsi/ginkgo from 1.13.0 to 1.14.0
Bumps [github.com/onsi/ginkgo](https://github.com/onsi/ginkgo) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/ginkgo/compare/v1.13.0...v1.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-06 06:17:39 -04:00
0ef5def0be auto-update: clarify systemd-unit requirements
Clarify in the help message and the man page that auto updates only work
with systemd units that are similar to the ones from `generate systemd
--new`.  Units that merely start/stop a container do not work as they
will use the same image.

Fixes: #6793
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-06 11:14:33 +02:00
41ccc045fb Merge pull request #6852 from skorhone/fix/6803_null_ports
Fix container inspect endpoint returning null for network settings / ports
2020-07-05 14:22:52 -04:00
b3dd42a797 podman ps truncate the command
With a long create command the
output from ps is basically unreadable.

This is a regression that was introduced with Podman 2.0.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-07-05 18:14:04 +02:00
4192298be3 Set engine env from common config
Set the env that is used by Podman.
related issue containers/common#31

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-07-03 15:29:38 -04:00
e5bf56a48d Fix issue #6803 Container inspect endpoint returns null for NetworkSettings/Ports
Implement mapping for NetworkSettings/Ports for Container inspect endpoint

Signed-off-by: Sami Korhonen <skorhone@gmail.com>
2020-07-03 17:20:59 +03:00
b9d48a95a1 Merge pull request #6820 from containers/dependabot/go_modules/k8s.io/api-0.18.5
Bump k8s.io/api from 0.18.4 to 0.18.5
2020-07-03 04:59:50 -04:00
a704911061 Bump imagebuilder to v1.1.6 in upstream
Bump the imagebuilder package to v1.1.6 in
the upstream branch.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-07-02 14:57:56 -04:00
9a1543caec Add --tz flag to create, run
--tz flag sets timezone inside container
Can be set to IANA timezone as well as `local` to match host machine

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-07-02 13:30:59 -04:00
e996bb583d Print errors from individual containers in pods
The infra/abi code for pods was written in a flawed way, assuming
that the map[string]error containing individual container errors
was only set when the global error for the pod function was nil;
that is not accurate, and we are actually *guaranteed* to set the
global error when any individual container errors. Thus, we'd
never actually include individual container errors, because the
infra code assumed that err being set meant everything failed and
no container operations were attempted.

We were originally setting the cause of the error to something
nonsensical ("container already exists"), so I made a new error
indicating that some containers in the pod failed. We can then
ignore that error when building the report on the pod operation
and actually return errors from individual containers.

Unfortunately, this exposed another weakness of the infra code,
which was discarding the container IDs. Errors from individual
containers are not guaranteed to identify which container they
came from, hence the use of map[string]error in the Pod API
functions. Rather than restructuring the structs we return from
pkg/infra, I just wrapped the returned errors with a message
including the ID of the container.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-02 12:59:10 -04:00
bd2fca0609 Merge pull request #6845 from baude/v2remotetests
stop podman service in e2e tests
2020-07-02 12:57:20 -04:00
22def2e2d9 Merge pull request #6838 from mheon/fix_panic_events
Fix `system service` panic from early hangup in events
2020-07-02 12:36:04 -04:00
a0599b77b7 stop podman service in e2e tests
when running e2e tests, each test knows to stop its service when running remote; however, during setup and teardown remote services were not being killed when we were done with them.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-07-02 10:36:24 -05:00
9e4cf6ca51 Fix system service panic from early hangup in events
We weren't actually halting the goroutine that sent events, so it
would continue sending even when the channel closed (the most
notable cause being early hangup - e.g. Control-c on a curl
session). Use a context to cancel the events goroutine and stop
sending events.

Fixes #6805

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-02 09:57:39 -04:00
c131567401 Merge pull request #6840 from containers/dependabot/go_modules/github.com/opentracing/opentracing-go-1.2.0
Bump github.com/opentracing/opentracing-go from 1.1.0 to 1.2.0
2020-07-02 08:41:52 -04:00
c4248e62ca Bump github.com/opentracing/opentracing-go from 1.1.0 to 1.2.0
Bumps [github.com/opentracing/opentracing-go](https://github.com/opentracing/opentracing-go) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/opentracing/opentracing-go/releases)
- [Changelog](https://github.com/opentracing/opentracing-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/opentracing/opentracing-go/compare/v1.1.0...v1.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-02 06:40:04 -04:00
9fb0b56f58 Merge pull request #6736 from maybe-sybr/maybe/apiv2/volumes-compat
APIv2: Add docker compatible volume endpoints
2020-07-02 05:59:34 -04:00
3aa22cb1be APIv2:fix: Handle docker volume force as expected
In response to input regarding the semantic difference for the `force`
parameter for volume removal between Docker and us, this change ensures
that we emulate the Dockr behaviour correctly when this parameter is
specified.

Signed-off-by: Matt Brindley <58414429+maybe-sybr@users.noreply.github.com>
2020-07-02 16:33:19 +10:00
cb61a2d858 APIv2: Add docker compatible volume endpoints
This change implements docker compatibile endpoint for interacting with
volumes. The code is mostly lifted from the `libpod` API handlers but
decodes and constructs data using types defined in the docker API
package.

Some notable support caveats with the current implementation:
  * we don't return the nullable `Status` or `UsageData` keys when
    returning volume information for inspect and create endpoints
  * we don't support filters when pruning
  * we return a fixed `0` for the `SpaceReclaimed` key when pruning
    since we have no insight into how much space was freed from runtime

Signed-off-by: Matt Brindley <58414429+maybe-sybr@users.noreply.github.com>
2020-07-02 16:33:19 +10:00
a622a30b0f Bump k8s.io/api from 0.18.4 to 0.18.5
Bumps [k8s.io/api](https://github.com/kubernetes/api) from 0.18.4 to 0.18.5.
- [Release notes](https://github.com/kubernetes/api/releases)
- [Commits](https://github.com/kubernetes/api/compare/v0.18.4...v0.18.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-01 11:16:40 -04:00
e84695213e Merge pull request #6831 from containers/dependabot/go_modules/github.com/containers/common-0.15.1
Bump github.com/containers/common from 0.14.3 to 0.15.1
2020-07-01 10:17:52 -04:00
eea96235f3 test.apiv2: add testing for container initializing
Signed-off-by: Alex Jia <chuanchang.jia@gmail.com>
2020-07-01 12:50:05 +00:00
d8718fd62e Merge pull request #6819 from containers/dependabot/go_modules/k8s.io/apimachinery-0.18.5
Bump k8s.io/apimachinery from 0.18.4 to 0.18.5
2020-07-01 06:41:21 -04:00
11e98d4db2 Merge pull request #6815 from rhatdan/api
Created timesptamp returned by imagelist should be in unix format
2020-07-01 06:38:38 -04:00
cd9d4f376d Bump github.com/containers/common from 0.14.3 to 0.15.1
Bumps [github.com/containers/common](https://github.com/containers/common) from 0.14.3 to 0.15.1.
- [Release notes](https://github.com/containers/common/releases)
- [Commits](https://github.com/containers/common/compare/v0.14.3...v0.15.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-01 06:34:45 -04:00
957e7a533e Merge pull request #6826 from edsantiago/test_apiv2
APIv2 tests: usability: better test logging
2020-06-30 15:38:56 -04:00
1a1e3f4b24 Merge pull request #6823 from giuseppe/allow-cgroup-with-column-name
utils: fix parsing of cgroup with : in the name
2020-06-30 14:10:18 -04:00
50157b2d33 Created timestamp returned by imagelist should be in unix format
In the API, we are currently returning the image time of creation
as a string, in time.Time format. The API is for a 64 bit integer
representing Unix time.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-06-30 13:59:30 -04:00
6fbd1570f8 Merge pull request #6773 from markstos/issue-6756-improve-inspect-docs
docs: recommend alternatives to podman inspect
2020-06-30 12:35:32 -04:00
c2a0ccd394 Merge pull request #6747 from giuseppe/fix-user-volumes
container: move volume chown after spec generation
2020-06-30 12:01:40 -04:00
ca00067deb APIv2 tests: usability: better test logging
test-apiv2 has two basic comparisons of returned JSON:
equality and likeness ('=' and '~'). When logging failures,
the test runner shows both actual and expected values. When
logging success, for '=' there's no need to show both actual
and expected. But for '~', it can be helpful (for verifying
test correctness) to show the actual returned value.

To be specific:

   old: ok ... .MemTotal~[0-9]\+
   new: ok ... .MemTotal ('33509068800') ~ [0-9]\+

   old: ok ... .[0].State~\(exited\|stopped\)
   new: ok ... .[0].State ('exited') ~ \(exited\|stopped\)

The main benefit is that a developer or end user can
easily see precisely what was returned; this can help
confirm that the test is working as intended, and/or
help fine-tune how the test is written.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-06-30 09:42:02 -06:00