Commit graph

4109 commits

Author SHA1 Message Date
OpenShift Merge Robot
5dacee9395
Merge pull request #5223 from vrothberg/ps-image-id
podman-ps: support image IDs
2020-02-18 16:11:28 +01:00
Abhijeet Kasurde
9419807cef Misc typo fixes
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-02-18 16:00:36 +05:30
Jhon Honce
c0c44ae8a3 Fix handler and systemd activation errors
On panic from handler: log warning and stack trace, report
InternalServerError to client

When using `podman system service` make determining the listening endpoint deterministic.

  // When determining _*THE*_ listening endpoint --
  // 1) User input wins always
  // 2) systemd socket activation
  // 3) rootless honors XDG_RUNTIME_DIR
  // 4) if varlink -- adapter.DefaultVarlinkAddress
  // 5) lastly adapter.DefaultAPIAddress

Fixes #5150
Fixes #5151

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-02-17 10:29:32 -07:00
Valentin Rothberg
3c2cc67867 podman-ps: support image IDs
Support printing image IDs via `--format "{{.ImageID}}"`.

Fixes: #5160
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-17 15:22:21 +01:00
Sascha Grunert
93358ef915
Refactor image tree for API usage
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-02-17 11:12:35 +01:00
OpenShift Merge Robot
ff0f838813
Merge pull request #5218 from Jumanjii/update-go-md2man-pkg-name
Update documentation of commit command to show image reference is optional
2020-02-17 08:47:08 +01:00
Allan Jacquet-Cretides
59c91069c0 Update documentation of commit command to show image reference is optional
Following
Commit ba1d1304a6 ("make image reference for commit optional")

Updates usage text used by cobra and markdown document used to generate MAN page.

Fixes: #5145

Signed-off-by: Allan Jacquet-Cretides <allan.jacquet@gmail.com>
2020-02-15 11:11:00 +01:00
Matthew Heon
36a0ed9702 Rework label parsing
We attempted to share all logic for parsing labels and
environment variables, which on the surface makes lots of sense
(both are formatted key=value so parsing logic should be
identical) but has begun to fall apart now that we have added
additional logic to environment variable handling. Environment
variables that are unset, for example, are looked up against
environment variables set for the process. We don't want this for
labels, so we have to split parsing logic.

Fixes #3854

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-02-14 16:06:20 -05:00
OpenShift Merge Robot
3e0475eb88
Merge pull request #5189 from mheon/only_set_all_on_status
Only set --all when a status filter is given to ps
2020-02-13 20:51:22 +01:00
OpenShift Merge Robot
2814995a92
Merge pull request #5115 from QiWang19/images-format
images --format compatible with docker
2020-02-13 11:42:47 +01:00
OpenShift Merge Robot
a65f6b888a
Merge pull request #5152 from QiWang19/device-cgroup-rule
support device-cgroup-rule
2020-02-13 02:34:42 +01:00
Matthew Heon
d2100cd473 Only set --all when a status filter is given to ps
The changes in #5075 turn out to be too aggressive; we should
only be setting --all if a status= filter is given. Otherwise
only running containers are filtered.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-02-12 20:14:20 -05:00
Qi Wang
d3260738d3 support device-cgroup-rule
fix #4876
Add `--device-cgroup-rule` to podman create and run. This enables to add device rules after the container has been created.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-02-12 14:30:23 -05:00
Valentin Rothberg
65d10ffab3 add pkg/seccomp
Add pkg/seccomp to consolidate all seccomp-policy related code which is
currently scattered across multiple packages and complicating the
creatconfig refactoring.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-12 17:10:18 +01:00
Valentin Rothberg
61b890268a cmd/podman/pull: refactor code
Refactor and simplify the code in cmd/podman/pull.go to address a couple
of issues w.r.t. how the arguments were passed.  Also make sure to
always use the c/image API for parsing instead of working around it.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-12 15:11:17 +01:00
OpenShift Merge Robot
d34ce1320c
Merge pull request #5083 from vrothberg/v2-libpod-image-endpoints
v2 api: /libpod/images/{import,load,pull}
2020-02-11 21:25:35 +01:00
OpenShift Merge Robot
c705d2cefc
Merge pull request #5159 from baude/apiv2cockpit1
Rewire ListContainers for APIv2 libpod
2020-02-11 17:13:33 +01:00
Brent Baude
ddffc865f3 Rewire ListContainers for APIv2 libpod
consumers of the api remarked how they would prefer a more strongly typed data structure from list containers oon the libpod side of things.  for example, events should be consumable and consistent timestamps.  also, for the sake of compatibility, it is helpful to have the json named atttributes for Id to not be ID.

listcontainers on the libpod side no longer strongly uses the the ps cli to obtain information but we do benefit from turning on the ability to list the last X containers, something CLI does not have yet. we also flipped the bit on defaulting to truncated output in the return.

thanks to the efforts of the cockpit team to help us here.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-11 08:14:28 -06:00
Valentin Rothberg
b0abd1c36e container create: relax os/arch checks
Relax the os/arch checks when creating a container and only info-log
mismatches instead of erroring out.  There are too many images used
in the wild which do not set their arch correctly correctly.  Erroring
out has hit users sufficiently enough to justify relaxing the errors
and only log to at least inform the users and image vendors.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-11 09:48:26 +01:00
Matthew Heon
d99f2ee784 Remove incorrect validation of --change for commit
The validation logic was failing on properly-formatted changes.
There's already validation in Commit itself, so no need to
duplicate.

Fixes #5148

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-02-10 16:32:02 -05:00
Qi Wang
3afd1b5a7c images --format compatible with docker
This patch lets valid values of --format be compatible with docker. Replace CreatedTime with CreatedAt, Created with CreatedSince.
Keep CreatedTime and Created are valid as hidden options.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-02-10 10:34:40 -05:00
Valentin Rothberg
76e2a0c5d3 v2 api: /libpod/images/pull
Implement the /libpod/images/pull endpoint and correct the swagger docs.
The reference parameter is mandatory and must either be a
c/image/docker/reference or a reference to the "docker://" transport as
the pull endpoint is meant to only support pulling images from a
registry.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-10 12:36:45 +01:00
Sascha Grunert
9bc171b86d
Refactor runtime functions to pass options structure
This makes the code easier to read but should not change the overall
behavior.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-02-07 13:45:29 +01:00
Matthew Heon
41b735af05 Move podman-service to podman-system-service
Fixes #5108

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-02-06 13:41:57 -05:00
OpenShift Merge Robot
62111bceb7
Merge pull request #5098 from rhatdan/memory-swap
Special case memory-swap=-1
2020-02-06 18:51:05 +01:00
Daniel J Walsh
100d2fdcfd
Special case memory-swap=-1
We document that memory-swap==-1 means unlimited, but currently we
won't allow the user to specify the -1 value.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-02-05 10:37:51 -05:00
OpenShift Merge Robot
348e58b59a
Merge pull request #5075 from mheon/filter_forces_all
Force --all when --filter is passed to podman ps
2020-02-04 13:22:57 -08:00
Matthew Heon
ee5b749e65 Force --all when --filter is passed to podman ps
When we filter, it should be out of all containers, not just
running ones, by default - this is necessary to ensure Docker
compatability.

Fixes #5050

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-02-04 09:52:25 -05:00
Sascha Grunert
59328a22db
Fix wrong Containerfile location on build
Podman does select the wrong Containerfile if the current working
directory contains a Containerfile but we specify one from a different
location.

Reproducer:
```
> mkdir 1
> echo FROM scratch > Containerfile
> echo FROM golang > 1/Containerfile
> podman build -f 1/Containerfile -t test
STEP 1: FROM scratch
```

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-02-04 14:47:33 +01:00
Brent Baude
b438cb2cce seperate container create network options
this pr splits off some of the network container create options into a different flag set.  the options in question are:

--add-host
--dns
--dns-opt
--dns-search
--ip
--mac-address
--network
--no-hosts
--publish

in the future, these options are going to be added to the pod create flags.  this makes that transition easier and provides for less code duplication.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-03 15:30:17 -06:00
Brent Baude
f1eaccedfa fix longname handling for bindings
the api needs to account for image input where the image is encoded as a fqd image name.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-31 08:38:25 -06:00
Brent Baude
9bbf08de25 make image reference for commit optional
to match docker compat, the image tag should be optional.

Fixes: #5027

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-30 09:51:59 -06:00
Daniel J Walsh
38d2ef0cbd
Throw error on invalid sort value
We define the valid sort values, so we should throw an error
on invalid sort values.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-28 16:34:18 -05:00
OpenShift Merge Robot
d8f2333b29
Merge pull request #4984 from baude/pullarchoverride
expose --arch-override option for pull
2020-01-28 11:39:56 -08:00
Brent Baude
d42b064c8c expose --arch-override option for pull
We no longer wish to hide the --arch-override from the cli on pulls. we now expose it.  docs updated.  tests already exist.

Fixes: #4849

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-27 10:06:39 -06:00
Brent Baude
7f69669a3a Hidden remote flags can be nil
The pull command has several options that are hidden for the remote client.  In that case, when checking to see if the flag has been flipped with .Changed, we get a nil pointer error.  Using IsSet is tolerant of this.

Fixes: #4706

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-26 14:53:22 -06:00
OpenShift Merge Robot
d07f611885
Merge pull request #4965 from baude/reviewcorrections3
APIv2 review corrections #3
2020-01-25 23:23:39 -08:00
Brent Baude
5da70b04dd APIv2 review corrections #3
The third pass of corrections for the APIv2.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-25 15:09:09 -06:00
Valentin Rothberg
ac8e6c9910 fork fatih/camelcase
faith/camelcase has been archived and is no longer maintained.
The package is sufficiently small and self-contained enough to
maintain it in libpod.

Fixes: #4783
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-25 09:42:48 +01:00
Valentin Rothberg
1531509542 seccomp policy: expect profile in config label
Move the seccomp profile from a manifest annotation to a config label.
This way, we can support it for Docker images as well and provide an
easy way to add that data via Dockerfiles.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-23 10:06:43 +01:00
OpenShift Merge Robot
9f146b1b54
Merge pull request #4861 from giuseppe/add-cgroups-disabled-conmon
oci_conmon: do not create a cgroup under systemd
2020-01-22 17:00:48 +01:00
baude
d4c2aaf38a Add service endpoint
add service endpoint for the new API.  Also supports the varlink
implementation.

Signed-off-by: baude <bbaude@redhat.com>

Refactor to allow developer more control of API server

* Add api.NewServerWithSettings() to create an API server with custom
  settings
* Add api.ListenUnix() to create a UDS net.Listener and setup UDS

Signed-off-by: Jhon Honce <jhonce@redhat.com>
Signed-off-by: baude <bbaude@redhat.com>

More service completion

Add podman service command that allows users to run either a RESTful or
varlink protocol API service.

Addition of docs and RESTful listening.

Signed-off-by: baude <bbaude@redhat.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-21 16:35:45 -06:00
Sascha Grunert
38ba9e6922
Update tag documentation regarding 'alias' usage
The word `alias` is not very common when speaking about image names and
tags. So we just refer to image name as the overall identifier of an
image.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-01-17 08:51:36 +01:00
Giuseppe Scrivano
ba0a6f34e3
podman: add new option --cgroups=no-conmon
it allows to disable cgroups creation only for the conmon process.

A new cgroup is created for the container payload.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-01-16 18:56:51 +01:00
Daniel J Walsh
45e9a6b12e
Remove c.String(net)
We have a lot of cludgy code trying to make --net and --network equivalent.
This will allow --net to still exists but will eliminate the help and confusion.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-16 09:23:32 -05:00
OpenShift Merge Robot
974373f2b3
Merge pull request #4868 from jwhonce/wip/sshd
[CI:DOCS] Add APIv2 CLI example POC
2020-01-15 18:14:11 +01:00
Jhon Honce
89678ab0ed Add APIv2 CLI example POC
* Add ReadMe, CLI and unit files to support socket activation, both for
  system and rootless

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-01-15 09:13:45 -07:00
OpenShift Merge Robot
0aa9dba3e1
Merge pull request #4806 from vrothberg/seccomp
policy for seccomp-profile selection
2020-01-15 01:16:07 +01:00
Valentin Rothberg
cf1f3191d2 make lint: include unit tests
Include the unit tests (i.e., _test.go files) for linting to make the
tests more robust and enforce the linters' coding styles etc.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-14 10:51:59 +01:00
OpenShift Merge Robot
6c3d383b50
Merge pull request #4845 from baude/pruneforce
clarify cont
2020-01-13 21:45:13 +01:00