Commit Graph

2115 Commits

Author SHA1 Message Date
Daniel J Walsh 69f62a1a9c
default to tunnel without ABISupport tag
When compiling a Linux binary without ABISupport, default to use the
tunnel.  The behaviour is expected in `podman-remote`.

Also set a default for the remote flag so `podman-remote` works OOB.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-08 11:09:48 -04:00
OpenShift Merge Robot d3826d6eb3
Merge pull request #6124 from mheon/fix_rootless_podcreate
Fix parsing of --network for `podman pod create`
2020-05-08 16:35:33 +02:00
OpenShift Merge Robot bacfae646a
Merge pull request #6121 from vrothberg/v2-auto-update
auto-update
2020-05-08 16:08:11 +02:00
Brent Baude 20407a2f1f fix pod stats flake
it appears that the pod stats flake can be attributed to the fact that the container being run is not fully running when the stats call is made.  because the stats call is in format of json, it fails when nil

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-08 09:05:37 -05:00
Brent Baude a4c607cc71 set binding tests to required
some small fix ups for binding tests and then make them required.

update containers-common

V2 bindings tests were failing because of changes introduced in commit
a2ad5bb.

Fix some typos.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>

in the case where the specgen attribute for Env and Labels are nil, we should should then make the map IF we have labels and envs that need to be added.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-08 09:05:37 -05:00
Daniel J Walsh 5cbb0b8a66
Fix handling of overridden paths from database
If the first time you run podman in a user account you do a
su - USER, and the second time, you run as the logged in USER
podman fails, because it is not handling the tmpdir definition
in the database. This PR fixes this problem.

vendor containers/common v0.11.1

This should fix a couple of issues we have seen in podman 1.9.1
with handling of libpod.conf.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-08 09:27:39 -04:00
OpenShift Merge Robot 7c63059287
Merge pull request #6117 from vrothberg/v2-runlabel
container runlabel
2020-05-08 15:17:26 +02:00
Valentin Rothberg ff1c59065e
Merge pull request #6130 from vrothberg/pidfile
set --conmon-pidfile
2020-05-08 13:04:59 +02:00
OpenShift Merge Robot cc6a77cc88
Merge pull request #6078 from QiWang19/auth-common
auth pkg support emtpy argument & enable login test
2020-05-08 12:54:41 +02:00
Valentin Rothberg 051a2bf437 auto-update
Add the `podman auto-update` command. There have been no tests in v1, so
there are no in v2 either ... for now :)

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-08 11:13:42 +02:00
Valentin Rothberg 676efd89d5 set --conmon-pidfile
The --conmon-pidfile was not set in the spec leading to failing systemd
units.  Also add a system test to prevent future regressions.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-08 10:53:11 +02:00
Matthew Heon 2d68dc776d Fix parsing of --network for `podman pod create`
Interpreting CNI networks was a bit broken, and it was causing
rootless `podman pod create` to fail. Also, we were missing the
`--net` alias for `--network`, so add that.

Fixes #6119

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-07 17:58:50 -04:00
Giuseppe Scrivano 99bdafba99
podman: split env variables in env and overrides
There are three different priorities for applying env variables:

1) environment/config file environment variables
2) image's config
3) user overrides (--env)

The third kind are known to the client, while the default config and image's
config is handled by the backend.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-07 14:16:50 -04:00
OpenShift Merge Robot 1d3cdf9a46
Merge pull request #5961 from QiWang19/manifest-remove-push
Manifest remove, push
2020-05-07 19:10:32 +02:00
baude e9a17da1c5 v2trust set and show
add podman image trust set and show

Signed-off-by: baude <bbaude@redhat.com>
Signed-off-by: bbaude <bbaude@DESKTOP-SH5EG3J.localdomain>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-07 09:55:52 -05:00
Valentin Rothberg 61828cf480 container runlabel
Implement container runlabel for v2.  Local client only.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-07 16:18:39 +02:00
Qi Wang 45f731aa49 enable login/logut unspecified args
Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-07 09:48:13 -04:00
Sujil02 2080421cad Enables port test
Adds port subcommand for containers
Updates check for no args when all flag is set.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-05-06 16:06:41 -04:00
Valentin Rothberg f269be3a31 add {generate,play} kube
Add the `podman generate kube` and `podman play kube` command.  The code
has largely been copied from Podman v1 but restructured to not leak the
K8s core API into the (remote) client.

Both commands are added in the same commit to allow for enabling the
tests at the same time.

Move some exports from `cmd/podman/common` to the appropriate places in
the backend to avoid circular dependencies.

Move definitions of label annotations to `libpod/define` and set the
security-opt labels in the frontend to make kube tests pass.

Implement rest endpoints, bindings and the tunnel interface.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-06 17:08:22 +02:00
Qi Wang 5621f5199d Manifest remove, push
Implements podman manifest remove and podman manifest push.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-06 10:54:28 -04:00
OpenShift Merge Robot 0eb905ff2c
Merge pull request #6096 from mheon/fix_small_issues
Add small fixes for 'podman run' from diffing inspect
2020-05-06 11:27:05 +02:00
OpenShift Merge Robot 7885b5cd52
Merge pull request #6063 from QiWang19/manifest-annotate
manifest annotate
2020-05-06 03:41:09 +02:00
Matthew Heon f7c3cfde77 Add small fixes for 'podman run' from diffing inspect
To try and identify differences between Podman v1.9 and master,
I ran a series of `podman run` commands with various flags
through each, then inspecting the resulting containers and diffed
the inspect JSON between each. This identified a number of issues
which are fixed in this PR.

In order of discovery:
- Podman v2 gave short names for images, where Podman v1 gave the
  fully-qualified name. Simple enough fix (get image tags and use
  the first one if they're available)
- The --restart flag was not being parsed correctly when a number
  of retries was specified. Parsing has been corrected.
- The -m flag was not setting the swap limit (simple fix to set
  swap in that case if it's not explicitly set by the user)
- The --cpus flag was completely nonfunctional (wired in its
  logic)

Tests have been added for all of these to catch future
regressions.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-05 20:21:01 -04:00
Qi Wang 1090d4d5d9 manifest annotate
Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-05 15:01:32 -04:00
OpenShift Merge Robot 864aec8bb0
Merge pull request #6081 from baude/v2system
v2 system subcommand
2020-05-05 20:49:17 +02:00
baude 25312bb5b4 v2 system subcommand
add system df, info, load, renumber, and migrate

Refactor for specialized libpod engines

add the ability to prune images, volumes, containers, and pods

Signed-off-by: baude <bbaude@redhat.com>
2020-05-05 12:24:33 -05:00
OpenShift Merge Robot fb6eca50ba
Merge pull request #6088 from edsantiago/bats_check_usage
BATS help test: check usage string
2020-05-05 17:32:25 +02:00
OpenShift Merge Robot 9db97dbab8
Merge pull request #6080 from baude/v2stats
v2 podman stats
2020-05-05 17:29:56 +02:00
OpenShift Merge Robot e6235ef8f1
Merge pull request #6076 from vrothberg/rmi-v2.2
image removal: refactor part 2
2020-05-05 17:25:04 +02:00
OpenShift Merge Robot 4a1331d0af
Merge pull request #6077 from rhatdan/v2
Fix errors found when comparing podman v1 --help versus V2
2020-05-05 15:57:08 +02:00
baude b5a235df90 v2 podman stats
Signed-off-by: baude <bbaude@redhat.com>
2020-05-05 08:46:51 -05:00
Ed Santiago 29d39e35e4 BATS help test: check usage string
Now that we've agreed that usage messages should match
what the user typed, confirm it. IOW 'podman foo --help'
should not issue a usage message for 'podman container foo'.

Fix one broken instance, 'unpause'.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-05-05 07:19:58 -06:00
Matthew Heon 7ac3d906b5 Rework port parsing to support --expose and -P
As part of this, make a major change to the type we use to
represent port mappings in SpecGen (from using existing OCICNI
structs to using our own custom one). This struct has the
advantage of supporting ranges, massively reducing traffic over
the wire for Podman commands using them (for example, the
`podman run -p 5000-6000` command will now send only one struct
instead of 1000). This struct also allows us to easily validate
which ports are in use, and which are not, which is necessary for
--expose.

Once we have parsed the ports from the new struct, we can produce
an accurate map including all currently requested ports, and use
that to determine what ports need to be exposed (some requested
exposed ports may already be included in a mapping from --publish
and will be ignored) and what open ports on the host we can map
them to.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-04 20:57:27 -04:00
Daniel J Walsh 6ed3b8841f
Fix errors found when comparing podman v1 --help versus V2
Mainly add missing commands to podman image, podman containers, podman system

Also fix some informations messages and descriptions.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-04 14:16:34 -04:00
Valentin Rothberg 7f97896c59 image removal: refactor part 2
Continue the refactoring of image removal.  I didn't manage to break all
the following changes into smaller and easier to digest commits due to
time constraints:

 * Return an error slice instead of a single error. Use multierror only
   in the client/frontend.  Reflect that in the types.

 * Use the batch image removal in the client while preserving the more
   rest-idiomatic single-image removal endpoint.

 * Add a new handler for the single-image removal endpoint to make it
   share the same code as the batch endpoint.

 * Expose bindings for the single and batch endpoints, so we can
   properly test them.

 * Add several convenience functions for error handling to
   pkg/errorhandling.

 * Set the correct error type in libpod to set the exit code to 2 when
   one or more containers are using an image.

 * Massage the bindings tests a bit and tackle compilation errors.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-04 16:01:45 +02:00
OpenShift Merge Robot 51d0be4204
Merge pull request #6051 from rhatdan/containers.conf
Fixes for test/e2e/containers_conf_test.go
2020-05-04 11:08:43 +02:00
OpenShift Merge Robot 54fa377faf
Merge pull request #6061 from QiWang19/getlogin
check --get-login when login
2020-05-01 21:29:46 +02:00
OpenShift Merge Robot bffd3f5134
Merge pull request #6060 from sujil02/systemprune-v2
And system prune feature for v2.
2020-05-01 21:08:50 +02:00
Daniel J Walsh 97fcbfcbec
cgroupsns was not following containers.conf
Implement ParseCgroupsNamespace to handle defaults.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-01 15:00:33 -04:00
OpenShift Merge Robot 95b9b72c0c
Merge pull request #6062 from jwhonce/wip/docs
[CI:DOC] Bring README.md up to date
2020-05-01 20:59:05 +02:00
Jhon Honce b22a39b6b1 [CI:DOCS] Bring README.md up to date
* Add notes on helper functions
* Update example

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-05-01 11:22:39 -07:00
Sujil02 b94862171b And system prune feature for v2.
Adds podman system prune for v2.
Refactoring for code reuse from pods containers images and volume prune.
Adds and enables testcases to support the added feature.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-05-01 13:57:16 -04:00
OpenShift Merge Robot a451048efc
Merge pull request #6059 from QiWang19/search-limit
search --limit compatible with docker
2020-05-01 19:26:54 +02:00
OpenShift Merge Robot 226e0da6fe
Merge pull request #6057 from baude/v2networking
v2networking enable commands
2020-05-01 18:27:16 +02:00
Qi Wang 1eba4fbc43 check --get-login when login
Check --get-login is set in podman since it is not shared option from c/common and does not valid by the package.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-01 11:27:22 -04:00
Qi Wang ef603de8ec search --limit compatible with docker
Check --limit range and update --limit manpage explanation.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-01 11:20:19 -04:00
baude 98e71583a4 add provided cni networks to spec gen
enable final integration tests for networking.

Signed-off-by: baude <bbaude@redhat.com>
2020-05-01 09:20:52 -05:00
OpenShift Merge Robot 1230499e45
Merge pull request #6016 from giuseppe/fix-create
v2, podman: fix create and entrypoint tests
2020-05-01 15:32:00 +02:00
baude 52371057cd fix commands without input
in cases where commands require input and we dont provide it, we often would segv.  This can be attributed in many cases to the subcommand not picked up the cobra Args attribute or neither had them.

Signed-off-by: baude <bbaude@redhat.com>
2020-04-30 15:10:49 -05:00
Ed Santiago 91a42fefcb System tests: help messages: check required-arg
If a usage message is of the form '... [flags] ARGNAME',
where ARGNAME is all-caps and not in brackets, it must
be a required argument. Try running podman subcommand
without ARGNAME, and make sure that podman bails out
with an informative message. (Since this message is
freeform in each subcommand, not Cobra-generated,
we have a lot of possible variations to check for).

Fix podman login/logout Use messages to indicate that
REGISTRY is now optional (as of #5233).

This test has actually been in place for over a year but
due to a typo on my part -- a missing space -- it was
not being run. "For want of a space, much testing was lost".

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-04-30 14:55:10 -05:00
baude e88a418528 v2networking enable commands
Enable the networking commands for v2.

Signed-off-by: baude <bbaude@redhat.com>
2020-04-30 14:53:54 -05:00
Jhon Honce 399939a3de V2 Commands that require ParentNS (rootful) are report error
* Updated unmount to require ParentNS

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-30 12:14:57 -07:00
OpenShift Merge Robot 6900517f10
Merge pull request #6046 from jwhonce/jira/822
V2 enable ps tests
2020-04-30 20:01:55 +02:00
Giuseppe Scrivano 9d373408b5
podman, start: propagate back the raw input
this is necessary as we expect "podman start $ID_NAME" to print the
same arguments the user passed in instead of the full ID.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-30 12:23:19 +02:00
Giuseppe Scrivano c11cff4542
cmd, podman: do not override entrypoint if unset
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-30 11:33:34 +02:00
Giuseppe Scrivano 32564df172
cmd, podman: use String instead of variable+StringVar
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-30 11:33:34 +02:00
Giuseppe Scrivano 65d7f22720
cmd, podman: handle --pod new:POD
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-30 11:33:33 +02:00
Giuseppe Scrivano 27f5145445
create: propagate override-arch and override-os
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-30 11:33:32 +02:00
Qi Wang 75eeb40f41 testv2: enable attach test
testv2: enable attach test

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-04-29 23:47:15 -04:00
Jhon Honce 22d5b2e305 V2 enable ps tests
* Combine cobra.Command helper functions into validate package
  from registry and common packages
* Introduce ChoiceValue for flags

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-29 15:51:37 -07:00
OpenShift Merge Robot 99f8cfc2dc
Merge pull request #5956 from jwhonce/wip/version
V2 restore podman -v command
2020-04-29 20:50:43 +02:00
Jhon Honce 6a586992c1 V2 restore podman -v command
* Removed extra spaces and improved error message
* Updated tests to use gomega matchers

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-29 09:15:24 -07:00
Jhon Honce a9cc13448e V2 Restore images list tests
* Fix history --quiet formatting
* Fix image inspect --format=json
* Fix image list --sort

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-29 08:24:56 -07:00
Valentin Rothberg 5ee3af2d03 enable search tests
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 16:28:18 +02:00
Valentin Rothberg 2d10471b8d pull/search options: tls verify -> skip
Change the logic in the options from tls-verify to skipping
verification.  It require a constant brain yoga to translate
from doing verification (CLI logic) to skipping it (c/image logic).
As the code is using c/image, let's make it consistent.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 16:28:12 +02:00
Valentin Rothberg d6d1e3860c push: fix --tls-verify
Fix --tls-verify parsing and make the associated options reflect the
correct logic.  Other commands are affected as well but will be fixed
later.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 14:33:00 +02:00
Valentin Rothberg 46b185942c push: simplify cmd
The indirection via a 2nd variable isn't needed.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 14:14:02 +02:00
Valentin Rothberg 854293a59a push: fix push with one argument
When doing a `podman push $IMG`, $IMG acts as the source and the
destination.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 11:42:36 +02:00
OpenShift Merge Robot 3e912f711b
Merge pull request #6022 from vrothberg/enable-inspect-tests
enable inspect tests
2020-04-29 11:21:47 +02:00
Valentin Rothberg 8700c2fd03 enable inspect tests
A surprisingly big change.  A core problem was that `podman inspect`
allows for passing containers AND images with the default `--type=all`.
This only worked partially as the data was processed in isolation which
caused various issues (e.g., two separate outputs instead of one) but it
also caused issues regarding error handling.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 07:25:31 +02:00
Valentin Rothberg b2414b580e generate systemd
Implement `podman generate systemd` for Podman v2 and enable associated
tests.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-29 07:22:18 +02:00
OpenShift Merge Robot bf4efc1953
Merge pull request #6026 from baude/v2forcesystemtests
system tests must pass
2020-04-28 23:29:20 +02:00
OpenShift Merge Robot 30b27819d0
Merge pull request #5991 from sujil02/pod-rm-test
Fix typos in messages pod rm
2020-04-28 22:40:09 +02:00
Brent Baude 517bc28360 system tests must pass
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-28 15:17:00 -05:00
Sujil02 b3cfb20aa2 Fix typos in rm messages
Fix typos in pod rm messages

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-28 15:57:40 -04:00
OpenShift Merge Robot 8f57f312d6
Merge pull request #6020 from giuseppe/fix-exec
v2, podman: fix create tests
2020-04-28 19:19:12 +02:00
Giuseppe Scrivano c999f9daf2
specgen: remove dead code
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-28 14:30:55 +02:00
Giuseppe Scrivano e76c8527dc
cmd: set correct parent for container exec
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-28 14:15:39 +02:00
Brent Baude e78e66c5b9 enable volume integration tests
enabled integration tests for volumes.  there are two exceptions that still need work because of something not yet implemented.

also, add code to deal with the fact that containers conf appears to set a local volume driver where it used to be simply blank.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-27 16:12:06 -05:00
OpenShift Merge Robot f6f7172494
Merge pull request #6000 from mheon/volume_backend_flags
Add support for volumes-from, image volumes, init
2020-04-27 21:53:37 +02:00
OpenShift Merge Robot 8642e256f2
Merge pull request #5978 from rhatdan/ports
Make podman container list == podman ps
2020-04-27 21:27:49 +02:00
OpenShift Merge Robot ccf009d22e
Merge pull request #6001 from baude/v2intload
enable load integration tests
2020-04-27 20:34:39 +02:00
OpenShift Merge Robot 5554698a44
Merge pull request #5975 from giuseppe/fix-pause-tests
[v2] tests: fix pause tests
2020-04-27 20:25:14 +02:00
Matthew Heon 02671a103f Add support for volumes-from, image volumes, init
This should complete Podmanv2's support for volume-related flags.
Most code was sourced from the old pkg/spec implementation with
modifications to account for the split between frontend flags
(volume, mount, tmpfs) and the backend flags implemented here.

Also enables tests for podman run with volumes

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-04-27 13:13:21 -04:00
Brent Baude 6db081fc5e enable load integration tests
fix bug where multiple images can be loaded and have to be able to handle the return of multiple names

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-27 10:20:53 -05:00
OpenShift Merge Robot ca1c674d2e
Merge pull request #5966 from vrothberg/v2-pod-stats
implement pod stats
2020-04-27 16:15:09 +02:00
Daniel J Walsh a83d1a2772
Make podman container list == podman ps
Also make
podman create -p PUBLISHPorts
work.

This PR fixes ps_test.go

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-27 09:51:26 -04:00
OpenShift Merge Robot fdf64f0c66
Merge pull request #5994 from giuseppe/fix-healthchecks
v2, podman: fix healthchecks
2020-04-27 15:40:24 +02:00
OpenShift Merge Robot 529824ec1e
Merge pull request #5997 from giuseppe/fix-pod-create
v2, podman: fix a bunch of "podman pod *" tests
2020-04-27 15:37:58 +02:00
OpenShift Merge Robot ef46687dc5
Merge pull request #5976 from QiWang19/manifest-add-os
Add --os to manifest add
2020-04-27 15:33:00 +02:00
Giuseppe Scrivano 408d1328e2
spec: propagate --no-hosts to specgen
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-27 12:58:01 +02:00
Valentin Rothberg 7ee0f7e14c implement pod stats
Implement pod stats for the local and remote client. Both code paths end
up in infra/abi to allow for code share.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-27 12:00:35 +02:00
Giuseppe Scrivano edbdbe5b3a
cmd, ps: add .Status as synonym for .State
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-27 11:59:21 +02:00
Giuseppe Scrivano eab41cac6f
podman: handle --no-healthcheck
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-27 11:31:46 +02:00
Giuseppe Scrivano 350727570b
podman: special case health-cmd none
now we have to pass down this information to libpod

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-27 11:21:55 +02:00
Brent Baude 0e82dece77 enable run_restart integration tests
also, correct arg processing mistake in start

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-26 10:44:17 -05:00
Brent Baude 942a3ef588 Enable pod ps integration tests
Enable integration tests for pod ps.

In addition, fixed bug where output was still using slice go template routines and would fail when no infra container was present.  Added integration test to prevent future regressions.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-25 13:13:32 -05:00
OpenShift Merge Robot 2afe579c06
Merge pull request #5971 from giuseppe/fix-userns-tests
v2, podman: fix and enable all run_userns_test.go tests
2020-04-24 22:39:26 +02:00
Qi Wang 2f3734b143 Add --os to manifest add
Add --os to manifest add for overriding the os field.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-04-24 14:57:56 -04:00
Giuseppe Scrivano 88f1994ab9
podman: assume user namespace if there are mappings
if some mappings are specified, assume there is a private user
namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 15:55:38 +02:00
Giuseppe Scrivano 64d8b4eebb
podman: implement userns=keep-id
add missing implementation for userns=keep-id and enable the user
namespaces tests.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 15:03:50 +02:00
Giuseppe Scrivano 3eeb03d1f9
podman: fix --log-opt=path=%s
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 13:02:07 +02:00
Giuseppe Scrivano 145d74716c
podman: fix --http-proxy
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 12:56:24 +02:00
Giuseppe Scrivano a1f73d0954
podman: fix podman --group-add
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 12:56:23 +02:00
Giuseppe Scrivano 2e6a62fc38
podman: fix --cgroups=disabled
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 12:56:21 +02:00
Giuseppe Scrivano a3acc4f977
podman: add support for --rootfs
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-24 12:56:20 +02:00
OpenShift Merge Robot 802763c604
Merge pull request #5933 from giuseppe/fix-namespaces
podman, v2: handle namespaces specified on the CLI
2020-04-23 19:32:08 +02:00
OpenShift Merge Robot e5a3e46746
Merge pull request #5946 from jwhonce/wip/shutdown
V2 restore libpod.Shutdown() when exiting podman commands
2020-04-23 18:27:32 +02:00
Giuseppe Scrivano 48530acbd9
podman: handle namespaces specified on the CLI
and handle differently the user namespace as it supports additional
options.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-23 18:05:03 +02:00
Giuseppe Scrivano 2fd6a84c09
specgen: do not always set shmsize
if it wasn't overriden on the CLI, leave it undefined.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-23 18:05:02 +02:00
OpenShift Merge Robot 397dcc358a
Merge pull request #5843 from QiWang19/manifest_create
manifest create,add,inspect
2020-04-23 17:45:38 +02:00
Qi Wang 17783dda68 manifest create,add,inspect
Implememts manifest subcommands create, add, inspect.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-04-22 20:05:21 -04:00
OpenShift Merge Robot bf1e5b875f
Merge pull request #5942 from mheon/volume_flags
Enable basic volumes support in Podmanv2
2020-04-22 23:27:07 +02:00
Jhon Honce 565f93531e V2 restore libpod.Shutdown() when exiting podman commands
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-22 14:25:40 -07:00
OpenShift Merge Robot 576fe98bbc
Merge pull request #5930 from jwhonce/issues/5765
Instrumentation to answer #5765
2020-04-22 21:29:10 +02:00
Daniel J Walsh ae1731e03f
Fix podman push and podman pull to check for authfile
This fixes pull_test.go push_test.go is still broken because of
lack of registry support.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-22 14:30:40 -04:00
Matthew Heon b4a4338dfe Enable basic volumes support in Podmanv2
This enables the --volume, --mount, and --tmpfs flags in
Podmanv2. It does not enable init-related flags, image volumes,
and --volumes-from.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-04-22 14:24:12 -04:00
OpenShift Merge Robot 366fc0520b
Merge pull request #5941 from jwhonce/jira/792
V2 Restore exists E2E tests
2020-04-22 20:22:44 +02:00
Jhon Honce d7a27b8e84 Instrumentation to answer #5765
* currently wired to localhost:8888 to prevent access from off machine

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-22 11:07:28 -07:00
Jhon Honce d0caf90940 V2 Restore exists E2E tests
* Fix setting exit code in */exists.go

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-22 09:53:05 -07:00
Daniel J Walsh 1be8ded964
Fix podman rm to have correct exit codes
If you attempt to remove a running container is it supposed to exit with
2
If you attempt to remove a non existing container is is supposed to exit with
1

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-22 11:53:00 -04:00
Daniel J Walsh 94b62dac74
Fix handling of --cidfile on create/run
Currently create and run are ignoring the cidfile flag.

Enable stop_test.go to make sure this works.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-22 09:52:33 -04:00
OpenShift Merge Robot 1ad978a3d7
Merge pull request #5919 from rhatdan/v2
Lots more fixes for V2 conversion.
2020-04-21 16:53:53 -04:00
OpenShift Merge Robot ba1b5d4559
Merge pull request #5851 from jwhonce/wip/json
Provide a json variable pointing to a configured json API
2020-04-21 16:13:06 -04:00
Daniel J Walsh bc56236102
Handle hostname flag from client
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-21 16:02:11 -04:00
Daniel J Walsh 592e7867a3
Add support for devices from command line
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-21 16:02:11 -04:00
Daniel J Walsh 9d7b5947b9
Fix handling of CGroupsParent and CGroupsMode
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-21 16:00:45 -04:00
Daniel J Walsh f7fe424e19
Throw error on IPv6 ip addresses
Podman does not currently support IPv6 addresses.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-21 16:00:45 -04:00
Matthew Heon 1cd2b746d0 Modify namespace generation code for specgen
Namespaces have now been changed to properly handle all cases.
Spec handling code for namespaces was consolidated in a single
function.

Still missing:
- Image ports
- Pod namespaces likely still broken in Podmanv2

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-04-21 14:38:52 -04:00
OpenShift Merge Robot 2ed4a0e35f
Merge pull request #5917 from vrothberg/v2-login-logout
v2: implement log{in,out}
2020-04-21 14:28:09 -04:00
OpenShift Merge Robot 0134999034
Merge pull request #5911 from giuseppe/cgroup-skip-unset
podman: do not set empty cgroup limit blocks
2020-04-21 14:20:58 -04:00
OpenShift Merge Robot b879ccbb73
Merge pull request #5923 from baude/mybad
my bad
2020-04-21 14:00:00 -04:00
Brent Baude 860356970b my bad
typos in previous pr are causing panics

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-21 10:46:23 -05:00
Jhon Honce b21a5b7ff4 Provide a json variable pointing to a configured json API
* All commands now using the same instance of json API
* `json` variable created in each package to prevent `encoding/json`
  from being re-introduced

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-21 07:56:10 -07:00
Brent Baude 29ec539b3f podmanv2 cp
enable podman to copy files between container and host, local mode only. this is a straight port of v1 code to v2.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-21 09:23:27 -05:00
OpenShift Merge Robot f4c2eb1d9d
Merge pull request #5908 from baude/v2subs
podmanv2 container subcommands
2020-04-21 10:20:56 -04:00
Brent Baude 10efa1d90f podmanv2 container subcommands
add container subcommands with example text that has proper context.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-21 08:39:54 -05:00
Brent Baude ae5e7e7e78 v2podman port
add port command to podman.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-21 08:33:15 -05:00
Valentin Rothberg 0138ecfba0 v2: implement log{in,out}
Implement podman login and logout.  Smoke tests were successful but the
system tests are currently failing as we seem unable to run a registry
at the moment.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-21 15:10:31 +02:00
OpenShift Merge Robot 08823e7383
Merge pull request #5913 from rhatdan/v2
More fixes for podman create tests
2020-04-21 07:54:39 -04:00
Giuseppe Scrivano 46384a6189
podman: do not set empty cgroup limit blocks
refactor cgroup limits in their own function.  If there are no limits
set avoid to set the block.  Basic rootless containers work now.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-21 11:42:24 +02:00
OpenShift Merge Robot 47d99fb625
Merge pull request #5647 from rhatdan/containers.conf
Update podmanV2 to use containers.conf
2020-04-21 05:21:09 -04:00
Daniel J Walsh 64f774866a
Need to set the Entrypoint
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-21 05:18:39 -04:00
Daniel J Walsh fc76fbf945
Fix podman inspect to return errors on failure
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-21 05:18:16 -04:00
OpenShift Merge Robot 8884f6a4f3
Merge pull request #5875 from rhatdan/network
Cleanup network option parsing
2020-04-21 05:09:54 -04:00
Valentin Rothberg 09dc701097 podman rmi: refactor logic
While this commit was initially meant to fix #5847, it has turned into a
bigger refactoring which I did not manage to break into smaller pieces:

 * Fix #5847 by refactoring the image-removal logic.

 * Make the api handler for image-removal use the ABI code. This way,
   both (i.e., ABI and Tunnel) end up using the same code.  Achieving
   this code share required to move some code around to prevent circular
   dependencies.

 * Everything in pkg/api (excluding pkg/api/types) must now only be
   accessed from code using `ABISupport`.

 * Avoid imports from entities on handlers to prevent circular
   dependencies.

 * Move `podman system service` logic into `cmd` to prevent circular
   dependencies - it depends on pkg/api.

 * Also remove the build header from infra/abi files.  It will otherwise
   confuse swagger and other tools; errors we cannot fix as go doesn't
   expose a build-tag env variable.

Fixes: #5847
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-21 08:12:25 +02:00
OpenShift Merge Robot b771467224
Merge pull request #5862 from rhatdan/v2
Fix up handling of image data as well as setting Linux Capabilties correctly
2020-04-20 17:19:32 -04:00
OpenShift Merge Robot 1e9b3e7500
Merge pull request #5899 from jwhonce/wip/tree
V2 podman image tree
2020-04-20 16:37:38 -04:00
OpenShift Merge Robot 37365b166d
Merge pull request #5901 from jwhonce/wip/service
V2 Remove existing unix domain socket on startup
2020-04-20 16:17:42 -04:00
Daniel J Walsh e62d081770
Update podman to use containers.conf
Add more default options parsing

Switch to using --time as opposed to --timeout to better match Docker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-20 16:11:36 -04:00
Daniel J Walsh b35a0d0cd2
Fix podman inspect to accept -l and -s fields
Podman inspect has a breaking change in that it dropped
--latest and --size options.

This PR adds these back.  Lots of tests rely on
podman inspect -l.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-20 15:52:46 -04:00
Daniel J Walsh eb101936e6
Handle Linux Capabilities correctly
If user sets capabilities list we need handle minimal capabilities.

Also handle seccomp-policy being passed in.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-20 15:50:46 -04:00
OpenShift Merge Robot 5928e8fe80
Merge pull request #5896 from giuseppe/fix-cgroup-set
common: setting cgroup resources correctly
2020-04-20 15:50:02 -04:00
OpenShift Merge Robot 80355b168c
Merge pull request #5897 from jwhonce/wip/diff
V2 Fix --latest for podman diff commands
2020-04-20 15:23:21 -04:00
Jhon Honce 405e39b0d6 V2 Rmove existing unix domain socket on startup
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-20 11:52:47 -07:00
OpenShift Merge Robot 06152434e6
Merge pull request #5879 from rhatdan/pull
Pull images when doing podman create
2020-04-20 13:18:59 -04:00
Jhon Honce 9cd6bba5d5 V2 podman image tree
* Basic port of V1 podman image tree ID

TODO: Refactor to return tree from service and format in presentation
layer
TODO: Support tunneling mode

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-20 10:10:24 -07:00
Jhon Honce 3eac39aaa0 V2 Fix --latest for podman diff commands
* --latest now forces container diff
* diff options now passed into domain layer
* updated help/usage messages

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-20 09:27:54 -07:00
Giuseppe Scrivano 4e09c5ebb4
common: setting cgroup resources correctly
fix some cgroups related integration tests.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-20 17:26:53 +02:00
OpenShift Merge Robot e5e625b2a6
Merge pull request #5872 from jwhonce/wip/options
V2 Fix support for tcp://[::]<port> connections
2020-04-20 10:42:00 -04:00
Daniel J Walsh 28c336e996
Pull images when doing podman create
Currently podman create does not pull images if they don't
exist.  It should follow the pull policy specified by the
user.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-20 06:13:43 -04:00
Daniel J Walsh 426eccee63
Cleanup network option parsing
We were not handling the parsing of --ip.  This pr adds validation
checks and now will support the flag.

Move validation to the actual parsing of the network flags.

We should only parse the dns flags if the user changed them. We don't
want to pass default options if set in containers.conf to the server.
Potential for duplicating defaults.

Add support for --dns-opt flag passing

Begin handling of --network flag, although we don't have a way right now
to translate a string into a specgen.Namespace.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-19 05:19:30 -04:00
OpenShift Merge Robot e4e42b28df
Merge pull request #5733 from sujil02/v2-pod-prune
Add pod prune for api v2
2020-04-18 06:02:51 -04:00
OpenShift Merge Robot 3b461ed6eb
Merge pull request #5871 from baude/v2t3
enable integration testing
2020-04-18 05:58:21 -04:00
Brent Baude c2a1138aec enable integration testing
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-17 18:57:40 -05:00
Jhon Honce 4e0326241b V2 Fix support for tcp://[::]<port> connections
* Fix support for socket activation, on remote and service

$ systemd-socket-activate -l 8083 --fdname=podman bin/podman system service --log-level=debug --time=30
$ bin/podman-remote --remote=tcp://[::]:8083 image ls

Or, use the podman.{socket,service} unit files

$ bin/podman-remote --remote=unix:///run/podman/podman.sock image ls

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-17 16:39:59 -07:00
Sujil02 37f3b191d5 Add pod prune for api v2.
Add the ability to prune pods for api v2,
Includes the addition of force flag, for client side prompt.
Update test suite to support this use case.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-17 17:30:58 -04:00
Daniel J Walsh 6c421b076f
We were not handling the user option on create
With this patch we can get run_passwd_test.go to pass

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-17 14:52:51 -04:00
OpenShift Merge Robot ba289dcd79
Merge pull request #5868 from baude/v2t2
Fixes for system tests
2020-04-17 14:43:21 -04:00
OpenShift Merge Robot a5884c07df
Merge pull request #5819 from vrothberg/v2-build
podmanV2: implement build
2020-04-17 14:30:49 -04:00
Brent Baude 44a8cf8676 Fixes for system tests
Various fixes to protect against regressions in system tests

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-17 13:22:06 -05:00
Brent Baude b6a264464f Enable some testing
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-17 10:09:32 -05:00
Valentin Rothberg 60624f948b podmanV2: implement build
Implement `podman build` for the local client.  The remote client will
require some rather large work in the backend and a new build endpoint
for the libpod rest API.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-17 10:26:50 +02:00
Jhon Honce 554c663b5a Fix bug where two configurations had been created
* registry.PodmanConfig() new returns a pointer to the source of truth

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-16 16:49:59 -07:00
Brent Baude 241326a9a8 Podman V2 birth
remote podman v1 and replace with podman v2.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-16 15:53:58 -05:00
Jhon Honce 1d93d21254 V2 Enable rootless
* Enable running podman V2 rootless
* Fixed cobra.PersistentPreRunE usage in all the commands
* Leveraged cobra.PersistentPreRunE/cobra.PersistentPostRunE to manage:
  * rootless
  * trace (--trace)
  * profiling (--cpu-profile)
  * initializing the registry copies of Image/Container engines
* Help and Usage templates autoset for all sub-commands

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-16 11:08:08 -07:00
Brent Baude ba430bfe5e podman v2 remove bloat v2
rid ourseleves of libpod references in v2 client

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-16 12:04:46 -05:00
OpenShift Merge Robot c7d17613ec
Merge pull request #5827 from baude/v2bloat
v2 bloat pruning phase 2
2020-04-15 15:00:13 -07:00
OpenShift Merge Robot 0f7162d791
Merge pull request #5817 from rhatdan/selinux1
Fix up SELinux labeling
2020-04-15 14:28:53 -07:00
Brent Baude 30d2964ff8 v2 bloat pruning phase 2
this is second phase of removing unneeded bloat in the remote client. this is important to be able to reduce the client size as well as possible native compilation for windows/mac.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-15 16:09:27 -05:00
OpenShift Merge Robot 6e9622aa98
Merge pull request #5775 from sujil02/v2-container-prune
Ability to prune container in api V2
2020-04-15 13:42:36 -07:00
Daniel J Walsh ac94a96a74
Fix up SELinux labeling
SELinux label options processing fixes, should allow system tests to pass.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-15 16:30:03 -04:00
Sujil02 ec4060aef6 Ability to prune container in api V2
Adds ability to prune containers for v2.
Adds client side prompt with force flag and filters options to prune.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-15 11:17:33 -04:00
Brent Baude 165aef7766 podmanv2 events
add the ability to monitor events

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-15 09:38:04 -05:00
OpenShift Merge Robot a756161e80
Merge pull request #5813 from baude/v2edtests2
More system test fixes on regressions
2020-04-15 15:13:18 +02:00
Valentin Rothberg 123158e83b podmanV2: fix nil deref
Fix a typo when looking up a flag causing a nil deref and all commands
to fail.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-04-15 11:57:35 +02:00
Brent Baude 60dde457f6 More system test fixes on regressions
Fix more regressions between v1 and v2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-14 19:47:49 -05:00
Jhon Honce d517276426 Add support for the global flags and config files
Note: This PR doesn't provide full rootless support that will be
      addressed in a future PR

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-14 14:48:37 -07:00
OpenShift Merge Robot a6caae0b5a
Merge pull request #5808 from baude/v2psformat2
v2podman ps revert structure changes
2020-04-14 18:01:18 +02:00
OpenShift Merge Robot 246ee93201
Merge pull request #5801 from baude/v2mount
podmanv2 mount and umount
2020-04-14 17:14:12 +02:00
Brent Baude 830f3a4462 v2podman ps revert structure changes
reverting name changes to the listcontainer structure because it negatively impacted the direct consumption of the restful API.  instead we now use a local structure in the CLI to modify the output as needed.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-14 09:40:43 -05:00
OpenShift Merge Robot e2a137327c
Merge pull request #5804 from rhatdan/seccomp
Need to set security options even if user does not specify options
2020-04-14 16:09:43 +02:00
Brent Baude d625aef0c5 podmanv2 mount and umount
add the ability to mount and unmount containers for the local client only

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-14 08:32:14 -05:00
OpenShift Merge Robot 85c352d8bc
Merge pull request #5709 from vrothberg/v2-search
podmanV2: implement search
2020-04-14 14:51:39 +02:00
Brent Baude d8d1aa49d2 v2podman add container init
add the ability to init a container both local and remote

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-13 19:51:20 -05:00
Daniel J Walsh 8fea3d0ab5
Need to set security options even if user does not specify options
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-13 17:09:22 -04:00
OpenShift Merge Robot 5cf64aee11
Merge pull request #5762 from baude/v2versionformat
podmanv2 version format variable name change
2020-04-13 22:44:17 +02:00
OpenShift Merge Robot 0b067b67e6
Merge pull request #5800 from baude/v2edtests
Fixes for load and other system tests
2020-04-13 21:57:39 +02:00
Brent Baude 11fa4b6eba podmanv2 version format variable name change
change the name of the variable for version to avoid collision with other commands.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-13 14:23:41 -05:00
OpenShift Merge Robot d7695dd957
Merge pull request #5777 from jwhonce/issues/5599
Refactor service idle support
2020-04-13 20:28:42 +02:00