8448 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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 6ee5f740a4ecb70636b888e78b02065ee984636c introduced the issue.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-30 15:49:33 +02:00
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
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
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
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
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
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
c682ca3d35 Merge pull request #6794 from baude/v2remotewindowsterminal
Set console mode for windows
2020-06-29 12:43:20 -04:00
ce74c20ebc test: add tests for --user and volumes
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-29 17:58:51 +02:00
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
d90e8b6873 Merge pull request #6810 from vrothberg/auto-update-test
systemd system test: run auto-update
2020-06-29 11:52:57 -04:00
688cc0aee3 libpod: volume copyup honors namespace mappings
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-29 17:51:55 +02:00
59e6192eb6 Merge pull request #6716 from jwhonce/issues/6598
Fixes --remote flag issues
2020-06-29 11:31:39 -04:00
6ac009d530 Merge pull request #6666 from giuseppe/conmon-delegate
podman: add new cgroup mode split
2020-06-29 10:53:41 -04:00
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
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
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
771c887010 Merge pull request #6783 from edsantiago/bats
system tests: add pod, inspect testing
2020-06-29 05:01:56 -04:00
cbae41f75f Merge pull request #6763 from maxm123/master
Fix error handling problem in APIv2 network remove
2020-06-29 04:59:34 -04:00
3022d70285 Merge pull request #6768 from vrothberg/fix-6766
generate systemd: improve pod-flags filter
2020-06-29 04:56:31 -04:00
6213488d2b Merge pull request #6791 from mheon/fix_service_umask
Ensure umask is set appropriately for 'system service'
2020-06-29 04:48:44 -04:00
babc64b44b Fix a bug with APIv2 compat network remove to log an ErrNetworkNotFound instead of nil
Signed-off-by: Maximilian Müller <maxm123@techie.com>
2020-06-27 15:02:55 +02:00
6fb5f01c73 Fixes --remote flag issues
* --remote, --url and --identity are now anchored to podman command.
  Subcommands should no longer have issues
* TraverseChildren now set to V1 expectations
* Latest flag now has helper function. Now has consistent usage.
* IsRemote() uses cobra parser to determin if --remote is given
* Moved validation functions from parser pkg to validate pkg
*

Fixes #6598
Fixes #6704

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-06-26 17:09:24 -07:00
f0ca17650e Ensure umask is set appropriately for 'system service'
We need a umask of 0022 to ensure containers are created
correctly, but we set a different one prior to starting the
server (to ensure the unix socket has the right permissions).
Thus, we need to set the umask after the socket has been bound,
but before the server begins accepting requests.

Fixes #6787

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-06-26 10:07:20 -04:00
673116c063 Merge pull request #6767 from vrothberg/sec-opt-test
e2e inspect: HostConfig.SecurityOpt
2020-06-26 09:36:57 -04:00
d721f1fee6 Merge pull request #6786 from rhafer/rootless_rlimit
specgen: fix order for setting rlimits
2020-06-26 09:31:38 -04:00
f4643ac02a system tests: add pod, inspect testing
Followup to #6761: confirm that 'podman ps' shows the ports
on a running container in a pod created with -p (not to
be confused with the container itself running with -p,
tested in 500-networking.bats).

While we're at it, test that the port handling itself works,
by sending random text to the container and making sure the
container receives it.

Followup to #6752: 'podman inspect' should show multiple
security opts

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-06-26 06:44:20 -06:00
43c19966f6 specgen: fix order for setting rlimits
Also make sure that the limits we set for rootless are not higher than
what we'd set for root containers.

Rootless containers failed to start when the calling user already
had ulimit (e.g. on NOFILE) set.

This is basically a cherry-pick of 76f8efc0d0d into specgen

Signed-off-by: Ralf Haferkamp <rhafer@suse.com>
2020-06-26 11:17:32 +02:00
bb11b42879 Merge pull request #6756 from mheon/add_dangling_filter
Add support for dangling filter to volumes
2020-06-26 05:11:50 -04:00
4db296fab3 Merge pull request #6779 from jwhonce/wip/config
Revert sending --remote flag to containers
2020-06-25 15:36:09 -04:00
48e9af1171 Revert sending --remote flag to containers
* quick --remote fix, sent --remote to ctnrs as argument

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-06-25 11:35:32 -07:00
358e69cc2d Merge pull request #6761 from mheon/fix_ps_portmappings
Print port mappings in `ps` for ctrs sharing network
2020-06-25 13:22:36 -04:00
12761ede68 Merge pull request #6748 from rhatdan/windows
Add containers.conf default file for windows and MAC Installs
2020-06-25 13:19:52 -04:00
05e1df2693 Merge pull request #6775 from vrothberg/vendor-common
vendor github.com/containers/common@v0.14.3
2020-06-25 13:00:40 -04:00
e4dcb3e31c vendor github.com/containers/common@v0.14.3
Includes several fixes for config parsing and AppArmor.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-25 17:53:49 +02:00
7766192293 Merge pull request #6760 from jwhonce/wip/python
Fix podman python docker-py tests
2020-06-25 11:52:06 -04:00