Commit graph

8464 commits

Author SHA1 Message Date
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
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
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
TomSweeneyRedHat 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
Matthew Heon 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
OpenShift Merge Robot bd2fca0609
Merge pull request #6845 from baude/v2remotetests
stop podman service in e2e tests
2020-07-02 12:57:20 -04:00
OpenShift Merge Robot 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
Brent Baude 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
Matthew Heon 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
OpenShift Merge Robot 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
dependabot-preview[bot] 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
OpenShift Merge Robot 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
maybe-sybr 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
maybe-sybr 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
Daniel J Walsh 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
OpenShift Merge Robot 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
OpenShift Merge Robot 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
OpenShift Merge Robot 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
dependabot-preview[bot] 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
OpenShift Merge Robot 957e7a533e
Merge pull request #6826 from edsantiago/test_apiv2
APIv2 tests: usability: better test logging
2020-06-30 15:38:56 -04:00
OpenShift Merge Robot 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
Daniel J Walsh 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
OpenShift Merge Robot 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
OpenShift Merge Robot 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
Ed Santiago 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
Mark Stosberg 8d69f5178b docs: recommend alternatives to podman inspect
podman inspect is problematic because there can be naming clashes. Also,
it only inspects a couple of types of objects and the docs for it didn't
help discover that several more types could be inspected as well.

To address both concerns, we deprecate `podman inspect` and update the
docs to point to to the recommend alternatives.

Issue: #6756
Signed-off-by: Mark Stosberg <mark@rideamigos.com>
2020-06-30 10:50:33 -04:00
OpenShift Merge Robot 83bde3bdaf
Merge pull request #6821 from rhatdan/tmp
Set TMPDIR to /var/tmp by default if not set
2020-06-30 10:34:58 -04:00
OpenShift Merge Robot 1dab8d1e46
Merge pull request #6817 from maybe-sybr/maybe/entrypoint-nil-means-inherit
fix: Don't override entrypoint if it's `nil`
2020-06-30 10:22:21 -04:00
Giuseppe Scrivano f54408bf06
utils: fix parsing of cgroup with : in the name
a cgroup can have ':' in its name.  Make sure the parser doesn't split
more than 3 fields and leave untouched the ':' in the cgroup name.

commit 6ee5f740a4 introduced the issue.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-30 15:49:33 +02:00
dependabot-preview[bot] 923e9befa6
Bump k8s.io/apimachinery from 0.18.4 to 0.18.5
Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.18.4 to 0.18.5.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](https://github.com/kubernetes/apimachinery/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-06-30 08:30:34 -04:00
Daniel J Walsh 565688d782
Set TMPDIR to /var/tmp by default if not set
Containers/image will use TMPDIR for the location of pulled layer blobs.
If TMPDIR is not set, it will use /tmp.  Since this is known to be of
limited space on most systems, we change the default to /var/tmp
if the user has not told the tools where to store temporary files.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-06-30 08:08:57 -04:00
maybe-sybr aa69e68ef7 fix: Don't override entrypoint if it's nil
This change ensures that we only override a container's entrypoint if it
is set to something other than `nil`.

Signed-off-by: Matt Brindley <58414429+maybe-sybr@users.noreply.github.com>
2020-06-30 11:25:13 +10:00
OpenShift Merge Robot b163ec35d0
Merge pull request #6813 from mheon/system_service_note
Add a note on the APIs supported by `system service`
2020-06-29 16:12:40 -04:00
Matthew Heon a9912b52d0 Add a note on the APIs supported by system service
This makes it clear that we target compatibility with a specific
Docker version (v1.40), but do not reject other versions. It also
adds a link to documentation on the Podman-specific API.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-06-29 14:26:07 -04:00
OpenShift Merge Robot e0b93af70f
Merge pull request #6808 from mheon/allow_empty_hostport
Allow empty host port in --publish flag
2020-06-29 13:52:47 -04:00
OpenShift Merge Robot c682ca3d35
Merge pull request #6794 from baude/v2remotewindowsterminal
Set console mode for windows
2020-06-29 12:43:20 -04:00
Valentin Rothberg ce74c20ebc
test: add tests for --user and volumes
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-29 17:58:51 +02:00
Giuseppe Scrivano b32172e20b
container: move volume chown after spec generation
move the chown for newly created volumes after the spec generation so
the correct UID/GID are known.

Closes: https://github.com/containers/libpod/issues/5698

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-29 17:58:50 +02:00
OpenShift Merge Robot d90e8b6873
Merge pull request #6810 from vrothberg/auto-update-test
systemd system test: run auto-update
2020-06-29 11:52:57 -04:00
Giuseppe Scrivano 688cc0aee3
libpod: volume copyup honors namespace mappings
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-29 17:51:55 +02:00
OpenShift Merge Robot 59e6192eb6
Merge pull request #6716 from jwhonce/issues/6598
Fixes --remote flag issues
2020-06-29 11:31:39 -04:00
OpenShift Merge Robot 6ac009d530
Merge pull request #6666 from giuseppe/conmon-delegate
podman: add new cgroup mode split
2020-06-29 10:53:41 -04:00
Brent Baude dfb2f92583 Set console mode for windows
Windows terminal handling is different than darwin and linux.  It needs to have the terminal mode set to enable virtual terminal processing.  This allows colors and other things to work.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-06-29 09:17:55 -05:00
Valentin Rothberg 43714cac21 systemd system test: run auto-update
Run `podman auto-update` in the systemd system tests.  Note that this is
a first step to at least exercise parts of `auto-update` in the CI.  The
service won't get updated just yet as we need to set up a local
registry, and push a new image.  I do not have enough time at the moment
to do that but consider this change already as an improvement.

We are experiencing some issues in #6793 w.r.t. to auto-updates but
couldn't track down the root cause yet.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-29 15:36:34 +02:00
Matthew Heon 3601b96600 Allow empty host port in --publish flag
I didn't believe that this was actually legal, but it looks like
it is. And, unlike our previous understanding (host port being
empty means just use container port), empty host port actually
carries the same meaning as `--expose` + `--publish-all` (that
is, assign a random host port to the given container port). This
requires a significant rework of our port handling code to handle
this new case. I don't foresee this being commonly used, so I
optimized having a fixed port number as fast path, which this
random assignment code running after the main port handling code
only if necessary.

Fixes #6806

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-06-29 09:33:43 -04:00
OpenShift Merge Robot 771c887010
Merge pull request #6783 from edsantiago/bats
system tests: add pod, inspect testing
2020-06-29 05:01:56 -04:00
OpenShift Merge Robot cbae41f75f
Merge pull request #6763 from maxm123/master
Fix error handling problem in APIv2 network remove
2020-06-29 04:59:34 -04:00
OpenShift Merge Robot 3022d70285
Merge pull request #6768 from vrothberg/fix-6766
generate systemd: improve pod-flags filter
2020-06-29 04:56:31 -04:00