Commit Graph

8511 Commits

Author SHA1 Message Date
Matthew Heon c4627b5846 Fix container and pod create commands for remote create
In `podman inspect` output for containers and pods, we include
the command that was used to create the container. This is also
used by `podman generate systemd --new` to generate unit files.

With remote podman, the generated create commands were incorrect
since we sourced directly from os.Args on the server side, which
was guaranteed to be `podman system service` (or some variant
thereof). The solution is to pass the command along in the
Specgen or PodSpecgen, where we can source it from the client's
os.Args.

This will still be VERY iffy for mixed local/remote use (doing a
`podman --remote run ...` on a remote client then a
`podman generate systemd --new` on the server on the same
container will not work, because the `--remote` flag will slip
in) but at the very least the output of `podman inspect` will be
correct. We can look into properly handling `--remote` (parsing
it out would be a little iffy) in a future PR.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-10 11:22:23 -04:00
OpenShift Merge Robot 2ac8c69534
Merge pull request #6917 from mheon/retErr_for_libpod
Remove all instances of named return "err" from Libpod
2020-07-10 12:35:48 +02:00
OpenShift Merge Robot d9cd0032f7
Merge pull request #6906 from rhatdan/VENDOR
Vendor in new version of Buildah
2020-07-09 19:59:58 +02:00
Matthew Heon 4b784b377c Remove all instances of named return "err" from Libpod
This was inspired by https://github.com/cri-o/cri-o/pull/3934 and
much of the logic for it is contained there. However, in brief,
a named return called "err" can cause lots of code confusion and
encourages using the wrong err variable in defer statements,
which can make them work incorrectly. Using a separate name which
is not used elsewhere makes it very clear what the defer should
be doing.

As part of this, remove a large number of named returns that were
not used anywhere. Most of them were once needed, but are no
longer necessary after previous refactors (but were accidentally
retained).

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-07-09 13:54:47 -04:00
OpenShift Merge Robot 059bd37511
Merge pull request #6835 from zhangguanzhang/master
fix API: Create container with an invalid configuration
2020-07-09 19:28:38 +02:00
OpenShift Merge Robot bc3b3b373f
Merge pull request #6916 from vrothberg/logs-fixes
log API: add context to allow for cancelling
2020-07-09 17:05:47 +02:00
Daniel J Walsh b020d1ad13
Vendor in new version of Buildah
This also pulls in latest runc and containers/common

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-09 11:02:28 -04:00
OpenShift Merge Robot f86782c052
Merge pull request #6814 from QiWang19/oci-dir
Fix saving in oci format
2020-07-09 16:38:39 +02:00
Daniel J Walsh 5c6002bf9d
Remove dependency on github.com/opencontainers/libpod/configs
We are using these dependencies just to get the device from path.
These dependencies no longer build on Windows, so simply cloning
the deviceFromPath function, we can eliminate the need for this
vendoring.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-09 10:03:40 -04:00
Valentin Rothberg d0ebea0643 logs: enable e2e tests
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-09 15:18:15 +02:00
Valentin Rothberg 09dc77aedf log API: add context to allow for cancelling
Add a `context.Context` to the log APIs to allow for cancelling
streaming (e.g., via `podman logs -f`).  This fixes issues for
the remote API where some go routines of the server will continue
writing and produce nothing but heat and waste CPU cycles.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-09 15:13:07 +02:00
Qi Wang a1d6114177 Fix saving in oci format
- fix saving&loading oci format. Close #6544
- support loading using image name without "localhost/" prefix when reading from ociarchive/dir saved from this semantics

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-07-09 08:03:54 -04:00
zhangguanzhang 2086e22624 fix API: Create container with an invalid configuration
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2020-07-09 10:26:04 +08:00
Daniel J Walsh edf5fe8b17
Merge pull request #6889 from mheon/update_master_releasenotes
[CI:DOCS] Update release notes on Master for v2.0.2
2020-07-08 16:17:26 -04:00
Matthew Heon b1623a1ba5 Update release notes on Master for v2.0.2
Also update README to reflect the new release.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-07-08 15:54:09 -04:00
Daniel J Walsh b58d2b777c
Merge pull request #6904 from cevich/minor_fix
CI:DOCS Minor: Remove two inaccurate comments
2020-07-08 15:08:27 -04:00
Brent Baude 85d71aedcc
Merge pull request #6907 from cevich/secure_variable
Cirrus: Rotate keys post repo. rename
2020-07-08 13:22:28 -05:00
Chris Evich 38327b7571
Minor: Remove two inaccurate comments
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-07-08 13:36:07 -04:00
Chris Evich 576ce0f1b5
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

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-07-08 13:20:20 -04:00
OpenShift Merge Robot 54d16f3b5f
Merge pull request #6829 from rhatdan/keepid
Add username to /etc/passwd inside of container if --userns keep-id
2020-07-07 19:23:27 +02:00
OpenShift Merge Robot cd084853b6
Merge pull request #6881 from vrothberg/events-race
fix race condition in `libpod.GetEvents(...)`
2020-07-07 18:06:31 +02:00
OpenShift Merge Robot 8014008703
Merge pull request #6878 from skorhone/fix/docker_v1_24_image_list_compatibility
Add support for Filter query parameter to list images api
2020-07-07 17:51:27 +02:00
Valentin Rothberg f4a2d25c0f 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.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-07-07 16:22:22 +02:00
Daniel J Walsh 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
Korhonen Sami (Samlink) 610118d9bf Add support for Filter query parameter to list images api
Docker api version 1.24 uses a query parameter named Filter
for filtering images by names. In more recent versions of
api name filter is in filters query parameter with other
filters

This patch adds a mapping that translates Filter query
parameter to Filters={"reference": [""]}

Signed-off-by: Sami Korhonen <skorhone@gmail.com>
2020-07-07 13:05:16 +03:00
OpenShift Merge Robot 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
OpenShift Merge Robot b1cc781c68
Merge pull request #6570 from rhatdan/remote
Change buildtag for remoteclient to remote for testing
2020-07-06 17:00:19 -04:00
OpenShift Merge Robot 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
Matthew Heon 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
Daniel J Walsh 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
OpenShift Merge Robot 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
Ed Santiago 10ad46eb73 BATS system tests for new sdnotify
Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-06 17:47:22 +00:00
Joseph Gooch 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
OpenShift Merge Robot 9532509c50
Merge pull request #6836 from ashley-cui/tzlibpod
Add --tz flag to create, run
2020-07-06 13:28:20 -04:00
Matthew Heon 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
OpenShift Merge Robot 9eac75a967
Merge pull request #6864 from vrothberg/v2-module
move go module to v2
2020-07-06 10:58:38 -04:00
OpenShift Merge Robot 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
Valentin Rothberg 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
OpenShift Merge Robot 4bdc11951e
Merge pull request #6790 from QiWang19/set_engine_env
Set engine env from common config
2020-07-06 09:36:08 -04:00
OpenShift Merge Robot 262843e1ce
Merge pull request #6855 from Luap99/ps-command-trunc
podman ps truncate the command
2020-07-06 09:33:23 -04:00
OpenShift Merge Robot 9bccb0f091
Merge pull request #6858 from vrothberg/fix-6793
auto-update: clarify systemd-unit requirements
2020-07-06 09:28:08 -04:00
OpenShift Merge Robot 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
OpenShift Merge Robot 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
dependabot-preview[bot] 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
Valentin Rothberg 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
OpenShift Merge Robot 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
Paul Holzinger 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
Qi Wang 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
Korhonen Sami (Samlink) 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
OpenShift Merge Robot 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