Commit Graph

1512 Commits

Author SHA1 Message Date
Giuseppe Scrivano 6673ff78d3
podman, push: expose --compression-format
support overriding the compression format at push time.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-12-01 09:39:03 +01:00
Valentin Rothberg 9a10e2124b systemd: replace multi-user with default.target
Replace `multi-user.target` with `default.target` across the code base.
It seems like the multi-user one is not available for (rootless) users
on F35 anymore is causing issues in all kinds of ways, for instance,
enabling the podman.service or generated systemd units.

Fixes: #12438
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-11-30 14:37:25 +01:00
Daniel J Walsh f330c197bd
List /etc/containers/certs.d as default for --cert-path
Helps Document https://github.com/containers/podman/issues/10116

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-11-29 10:42:27 -05:00
Jakub Dzon dd80635df0 Support env variables based on ConfigMaps sent in payload
Fixes #12363

Signed-off-by: Jakub Dzon <jdzon@redhat.com>
2021-11-23 11:40:28 +01:00
Valentin Rothberg 566b78dd02 generate systemd: add --start-timeout flag
Add a new flag to set the start timeout for a generated systemd unit.
To make naming consistent, add a new --stop-timeout flag as well and let
the previous --time map to it.

Fixes: #11618
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-11-23 09:38:51 +01:00
OpenShift Merge Robot 0b7c132d9f
Merge pull request #12301 from umohnani8/table
Add note about volume with unprivileged container
2021-11-22 21:52:31 +01:00
Urvashi Mohnani 2ab28140d6 [CI:DOCS] Update notes on java TZ in man page
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-11-22 12:28:35 -05:00
OpenShift Merge Robot 55dbc4e198
Merge pull request #12373 from TomSweeneyRedHat/dev/tsweeney/jdoc
[CI:DOCS] Add java TZ note to run manpage
2021-11-22 17:54:13 +01:00
Urvashi Mohnani a8b3c67b97 Add note about volume with unprivileged container
Add a note to the generated kube yaml if we detect a
volume is being mounted. The note lets the user know
what needs to be done to avoid permission denied error
when trying to access the volume for an unprivileged
container.
Add the same note to the man pages.

NO NEW TESTS NEEDED

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-11-21 19:44:26 -05:00
TomSweeneyRedHat d068997694 [CI:DOCS] Add java TZ note to run manpage
Add a note to show how to workaround the `--tz` option
being ignored in the run command.

Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1984251

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2021-11-19 20:38:55 -05:00
Adrian Reber c76caba367
Use same runtime to restore a container as during checkpointing
There are at least two runtimes that support checkpoint and restore:
runc and crun. Although the checkpoints created by these are almost
compatible, it is not (yet) possible to restore a checkpoint created
with one runtime with the other runtime. To make checkpoint/restore
usage more comfortable this adds code to look into the checkpoint
archive during restore and to set the runtime to the one used during
checkpointing.

This also adds a check, if the user explicitly sets a runtime during
restore, that the runtime is also the same as used during checkpointing.

If a different runtime is selected than the one used during
checkpointing the restore will fail early.

If runc and crun will create compatible checkpoints in the future the
check can be changed to treat crun and runc as compatible
checkpoint/restore runtimes.

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-11-19 17:46:06 +00:00
OpenShift Merge Robot 319d3fba6d
Merge pull request #12354 from Luap99/exit-command
Do not store the exit command in container config
2021-11-18 23:51:12 +01:00
OpenShift Merge Robot 82a050a58f
Merge pull request #12298 from giuseppe/idmapped-bind-mounts
volumes: add new option idmap
2021-11-18 22:01:15 +01:00
Paul Holzinger 0dae50f1d3
Do not store the exit command in container config
There is a problem with creating and storing the exit command when the
container was created. It only contains the options the container was
created with but NOT the options the container is started with. One
example would be a CNI network config. If I start a container once, then
change the cni config dir with `--cni-config-dir` ans start it a second
time it will start successfully. However the exit command still contains
the wrong `--cni-config-dir` because it was not updated.

To fix this we do not want to store the exit command at all. Instead we
create it every time the conmon process for the container is startet.
This guarantees us that the container cleanup process is startet with
the correct settings.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-11-18 20:28:03 +01:00
Radostin Stoyanov 6d23ea60d2
Add --file-locks checkpoint/restore option
CRIU supports checkpoint/restore of file locks. This feature is
required to checkpoint/restore containers running applications
such as MySQL.

Signed-off-by: Radostin Stoyanov <radostin@redhat.com>
2021-11-18 19:23:25 +00:00
Giuseppe Scrivano e83d366651
volumes: add new option idmap
pass down the "idmap" mount option to the OCI runtime.

Needs: https://github.com/containers/crun/pull/780

Closes: https://github.com/containers/podman/issues/12154

[NO NEW TESTS NEEDED] there is no crun version yet that support the
new feature.

Test case (must run as root):

podman run --rm -v foo:/foo alpine touch /foo/bar

podman run --uidmap 0:1:1000 --rm -v foo:/foo:idmap alpine ls -l /foo
total 0
-rw-r--r--    1 root     root             0 Nov 15 14:01 bar

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-11-18 17:01:06 +01:00
Valentin Rothberg fceecc3a5b remote checkpoint/restore: more fixes
* Support `checkpoint --pre-checkpoint`

* Support `checkpoint --with-previous`

* Disable `restore --import-previous` for the remote client since we had
  to send two files which in turn would require to tar them up and hence
  be a breaking change.  Podman 4.0 would be the chance and I hope we'll
  find time before that to remote-restore prettier.

Note that I did not run over swagger yet to check whether all parameters
are actually documented due to time constraints.

Fixes: #12334
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-11-18 16:52:15 +01:00
Daniel J Walsh 44d1618dd7
Add --unsetenv & --unsetenv-all to remove def environment variables
Podman adds a few environment variables by default, and
currently there is no way to get rid of them from your container.
This option will allow  you to specify which defaults you don't
want.

--unsetenv-all will remove all default environment variables.

Default environment variables can come from podman builtin,
containers.conf or from the container image.

Fixes: https://github.com/containers/podman/issues/11836

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-11-15 15:10:12 -05:00
OpenShift Merge Robot e9d8ca22b8
Merge pull request #11076 from boaz0/closes_10275
Support template unit files in podman generate systemd
2021-11-15 16:30:38 +01:00
Adrian Reber 914f4c8905
Update man pages for checkpoint/restore --print-stats
This commit updates the man pages for checkpoint and restore to describe
the '--print-stats' parameter.

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-11-15 11:50:25 +00:00
OpenShift Merge Robot 8f3fb743ee
Merge pull request #12270 from rhatdan/auth
--authfile command line argument for image sign command.
2021-11-13 13:10:48 +01:00
OpenShift Merge Robot 0aecacb865
Merge pull request #12224 from cdoern/scp
Podman Image SCP transfer patch
2021-11-12 18:44:44 +01:00
cdoern ac38eca3fd Podman Image SCP transfer patch
Fixed syntax so that podman image scp transfer works with no user specified.
This command can only be executed as root so to obtain the default user, I searched for
the SUDO_USER environmental variable. If that is not found, we error out and inform the user
to set this variable and make sure they are running as root

Signed-off-by: cdoern <cdoern@redhat.com>
Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2021-11-11 20:14:38 -05:00
José Guilherme Vanz 6762d5e238
--authfile command line argument for image sign command.
Adds the --authfile command line argument to allow users to use
alternative authfile paths when signing images.

Replaces: https://github.com/containers/podman/pull/10975
Fixes: https://github.com/containers/podman/issues/10866

Signed-off-by: José Guilherme Vanz <jvanz@jvanz.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-11-11 15:11:19 -05:00
OpenShift Merge Robot d5b411c484
Merge pull request #12193 from yahavi/patch-1
[CI:DOCS] Fix Zsh completion command documentation
2021-11-11 16:17:41 +01:00
OpenShift Merge Robot 9dddc47d28
Merge pull request #12258 from edsantiago/xref_manpages_see_also
[CI:DOCS] Add CI check for SEE ALSO in man pages
2021-11-10 22:53:36 +01:00
OpenShift Merge Robot 4bf0146c29
Merge pull request #12255 from vrothberg/fix-11970
podman load: support downloading files
2021-11-10 18:27:39 +01:00
Ed Santiago 6236be4ff9 [CI:DOCS] Add CI check for SEE ALSO in man pages
Add new CI check to confirm that links and references
in SEE ALSO sections are properly formatted and that
links are valid (at least in theory: we do no actual
URL fetching to test for 404).

The check is piggybacked into existing xref-helpmsgs-manpages
script. It could conceivably be more elegant to write a
separate tool for this purpose, but I don't wish to duplicate
the logic for finding and reading markdown files.

Script identified various problems, which I fix in this PR:

  . missing '**' (asterisks) around some references, or '**'
    in the wrong place.

  . links pointing to github.com/.../tree/ instead of /blob/
    (github redirects those automatically, but I like
    consistency)

  . a few copy-paste errors, e.g. subgid linking to subuid.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-11-10 09:03:40 -07:00
Valentin Rothberg 1ef66d6d7f podman load: support downloading files
Support downloading files, for instance via
`podman load -i server.com/image.tar`.  The specified URL is downloaded
in the frontend and stored as a temp file that gets passed down to the
backend.

Also vendor in c/common@main to use the new `pkg/download`.

Fixes: #11970
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-11-10 15:43:16 +01:00
Daniel J Walsh 2720156fa5
Add links to all SEE ALSO sections
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-11-10 09:29:21 -05:00
Yahav Itzhak 8a9da76989 Fix Zsh completion command documentation
Signed-off-by: yahavi <yahavi@jfrog.com>
2021-11-09 09:08:30 +02:00
Daniel J Walsh 7225ddb5b1
Add links to podman build,run, create see also
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-11-08 21:03:18 -05:00
OpenShift Merge Robot 22ef488d24
Merge pull request #12213 from flouthoc/system-connection-rm-all
system: Adds support for removing all named destination via `--all`
2021-11-08 16:50:59 +01:00
OpenShift Merge Robot c9ba1fb7d4
Merge pull request #11958 from cdoern/scp
Podman Image SCP rootful to rootless transfer
2021-11-08 16:19:57 +01:00
Aditya Rajan 338eb9d75e
system: Adds support for removing all named destination via --all
Adds support of dropping all named destination from system connections via `--all`.

Closes: https://github.com/containers/podman/issues/12018

Signed-off-by: Aditya Rajan <arajan@redhat.com>
2021-11-08 19:42:45 +05:30
Daniel J Walsh 4e8bf8be4b
Add some information about disabling SELinux when using system volumes
A comment was made on internal mailing list about confusion on SELinux
labeling of volumes. This PR makes it a little more clear about when
you should or should not relabel.

We need a similar comment in podman pod create, but it does not support
--security-opt processing yet.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-11-06 05:47:52 -04:00
cdoern ffa5ed0e0e Podman Image SCP rootful to rootless transfer
Added functionality for users to transfer images from root storage to rootless storage without using sshd. This is
done through rootful podman by running `sudo podman image scp root@localhost::image user@localhost:: the user is needed
in order to find and use their uid/gid to exec a new process.

added necessary tests, and functions for this implementation. Created new image function Transfer so that
the underlying code is majorly removed from CLI

Signed-off-by: cdoern <cdoern@redhat.com>
2021-11-05 12:04:20 -04:00
Paul Holzinger 7f433df7e7
rename rootless cni ns to rootless netns
Since we want to use the rootless cni ns also for netavark we should
pick a more generic name. The name is now "rootless network namespace"
or short "rootless netns".

The rename might cause some issues after the update but when the
all containers are restarted or the host is rebooted it should work
correctly.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-11-05 15:44:37 +01:00
OpenShift Merge Robot 85bad0cc7c
Merge pull request #12119 from ashley-cui/updates
[CI:DOCS] Add information on how podman machine is updated
2021-10-30 14:44:43 +00:00
Giacomo Sanchietti 9fc98f265a
Fix pause usage example
The page contains a wrong 'stop' command example.

Signed-off-by: Giacomo Sanchietti <giacomo.sanchietti@nethesis.it>
2021-10-29 14:24:10 +02:00
Ashley Cui 3c79202fb9 Add information on how podman machine is updated
Update documentation on how the default podman machine distribution,
FCOS, is updated.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-10-28 09:43:00 -04:00
Giuseppe Scrivano 4e9e6f21ff
volumes: allow more options for devpts
allow to pass down more options that are supported by the kernel.

Discussion here: https://github.com/containers/toolbox/issues/568

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-10-28 15:30:06 +02:00
Valentin Rothberg 75f478c08b pod create: remove need for pause image
So far, the infra containers of pods required pulling down an image
rendering pods not usable in disconnected environments.  Instead, build
an image locally which uses local pause binary.

Fixes: #10354
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-10-26 13:51:45 +02:00
Daniel J Walsh acd8b49000
Add support to play kube for --log-opt
Fixes: https://github.com/containers/podman/issues/11727

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-25 11:40:42 -04:00
Stefan Weil 22270fb845 Replace 'an user' => 'a user'
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-10-24 22:27:39 +02:00
OpenShift Merge Robot 54c630aa0a
Merge pull request #12061 from dancerj/typo
[CI:DOCS] fuse-overlay probably means fuse-overlayfs.
2021-10-22 14:28:45 +00:00
OpenShift Merge Robot 833d92d709
Merge pull request #12021 from rhatdan/kube
Generate Kube should not print default structs
2021-10-22 14:12:44 +00:00
Junichi Uekawa ce4ed7d133 fuse-overlay probably means fuse-overlayfs.
fuse-overlayfs is usually the package name.

Signed-off-by: Junichi Uekawa <dancer@debian.org>
2021-10-22 13:41:58 +09:00
Boaz Shuster ece0c7e5d3 Support template unit files in podman generate systemd
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2021-10-22 04:19:18 +03:00
Daniel J Walsh 8e3760c29f
Remove --kernel-memory options
Kernel memory option has been depracated in runtime-spec,  It is
believed that it will not work properly on certain kernels.  runc
ignores it.

This PR removes documentation of the flag and also prints a warning if
a user uses it.

[NO NEW TESTS NEEDED]

Helps Fix: https://github.com/containers/podman/issues/12045

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-21 13:29:44 -04:00
OpenShift Merge Robot eba281c3e0
Merge pull request #11851 from cdoern/podRm
Pod Rm Infra Handling Improvements
2021-10-20 13:20:12 +00:00
Daniel J Walsh c3801f0fa9
Add information on how to discover default log driver
Fixes: https://github.com/containers/podman/issues/12008

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-19 13:55:30 -04:00
Daniel J Walsh 517b56b02d
Generate Kube should not print default structs
If podman uses Workdir="/" or the workdir specified in the image, it
should not add it to the yaml.
If Podman find environment variables in the image, they should not
get added to the yaml.

If the container or pod do not have changes to SELinux we should not
print seLinuxOpt{}

If the container or pod do not change any dns options the yaml should
not have a dnsOption={}

If the container is not privileged it should not have privileged=false
in the yaml.

Fixes: https://github.com/containers/podman/issues/11995

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-19 08:31:35 -04:00
Daniel J Walsh 34dcbc9491
Change podman connection list to use default field
Stop using "*" to indicate default.  Add default field to make
it more obvios and the json field more machine usable.

Fixes: https://github.com/containers/podman/issues/12019

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-18 16:52:52 -04:00
cdoern 4f7a431daf Pod Rm Infra Improvements
Made changes so that if the pod contains all exited containers and only infra is running, remove the pod.

resolves #11713

Signed-off-by: cdoern <cdoern@redhat.com>
2021-10-18 11:39:12 -04:00
Daniel J Walsh 4f857bc106
If CONTAINER_HOST env variable is set default podman --remote=true
Users enabling CONTAINER_HOST==PATH is indicating to podman they intend
to use remote functionality.

Fixes: https://github.com/containers/podman/issues/11196

Update man pages to document all of the environment variables.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-14 17:08:48 -04:00
Daniel J Walsh 7112a4159b
Fix codespell errors
Along with a couple of nits found by Ed.

[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-14 08:44:09 -04:00
OpenShift Merge Robot c19f257181
Merge pull request #11898 from rhatdan/docs
[CI:DOCS] Add information about .containerignore to podman build man page
2021-10-14 12:55:35 +02:00
OpenShift Merge Robot 1c156f2267
Merge pull request #11948 from rhatdan/codespell
codespell code
2021-10-13 14:46:00 +02:00
Valentin Rothberg 14bfee31f7 podman search: display only name and description by default
Change the default format of `podman search` to only display the name
and the description of each image.  The index is redundant to the name
and consumes a lot of space, and other descriptors (i.e., stars,
official, automated) are specific to Docker Hub and also consume a lot
space.  Users can still use `--format` for displaying the descriptors
they want to.

Add a `--compatible` flag to offer an easy way to get them back.

Also update the man page to account for the behavior and get some fresh
data in the examples.

Motivated by a recent conversation in libimage:
https://github.com/containers/common/pull/802#issuecomment-937108734

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-10-13 10:13:24 +02:00
Daniel J Walsh 8600bce53a
codespell code
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-12 16:44:25 -04:00
Daniel J Walsh 7b1e386f7c
Add information about .containerignore to podman build man page
Cleanup some other errors in the podman build man page.

Also slip a link between .dockerignore and containerignore.5 man page

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-12 16:42:07 -04:00
Jhon Honce b28a8bc198 Refactor podman search to be more code friendly
* JSON and API description fields are no longer truncated. Formatting
  moved to client, better support of MVP.
* --no-trunc now defaults to true
* Updated tests for changes

Closes #11894

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-10-12 09:30:40 -07:00
OpenShift Merge Robot dd9c9172af
Merge pull request #11889 from cevich/multiarch_docs
[CI:DOCS] Include manifest example usage
2021-10-11 19:49:10 +02:00
Chen Zhiwei 6fc73ea4ea [CI:DOCS] introduce --replace flag for play kube
With this flag, users can easily sync up the yaml content with the existing pods.

Fixes #11481

Signed-off-by: Chen Zhiwei <zhiweik@gmail.com>
2021-10-08 10:14:35 +08:00
Chris Evich 0479fd8d6a
[CI:DOCS] Include manifest example usage
Fixes #8872

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-10-07 13:04:03 -04:00
Daniel J Walsh a487a63824
Change podman.1 man page to show corret log-level default
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-07 08:44:48 -04:00
Daniel J Walsh 21c9dc3c40
Add --time out for podman * rm -f commands
Add --time flag to podman container rm
Add --time flag to podman pod rm
Add --time flag to podman volume rm
Add --time flag to podman network rm

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-04 07:07:56 -04:00
cdoern 6da97c8631 Pod Volumes From Support
added support for a volumes from container. this flag just required movement of the volumes-from flag declaration
out of the !IsInfra block, and minor modificaions to container_create.go

Signed-off-by: cdoern <cdoern@redhat.com>
2021-10-01 14:09:11 -04:00
OpenShift Merge Robot 1b88b678cf
Merge pull request #11707 from rhatdan/play
Add podman play kube --no-hosts options
2021-10-01 13:27:17 -04:00
Daniel J Walsh 641f0ccc4e
Add podman play kube --no-hosts options
This option will setup the containers to not modify their /etc/hosts
file and just use the one from the image.

Fixes: https://github.com/containers/podman/issues/9500

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-10-01 10:53:50 -04:00
OpenShift Merge Robot 81aabc8054
Merge pull request #11686 from cdoern/podDeviceOptions
Pod Device-Read-BPS support
2021-10-01 10:53:14 -04:00
OpenShift Merge Robot 5c2204b5ce
Merge pull request #11794 from umohnani8/pid
Allow a value of -1 to set unlimited pids limit
2021-09-30 15:14:28 -04:00
Urvashi Mohnani c25cc7230f Allow a value of -1 to set unlimited pids limit
Users can set --pids-limit to -1 now to set unlimited
pids limit for a container - this matches the convention.

[NO TESTS NEEDED]

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-09-29 16:22:55 -04:00
OpenShift Merge Robot b187dfef20
Merge pull request #11390 from giuseppe/logging-passthrough
logging: new mode -l passthrough
2021-09-29 15:33:06 -04:00
cdoern 2d86051893 Pod Device-Read-BPS support
added the option for the user to specify a rate, in bytes, at which they would like to be able
to read from the device being added to the pod. This is the first in a line of pod device options.

WARNING: changed pod name json tag to pod_name to avoid confusion when marshaling with the containerspec's name

Signed-off-by: cdoern <cdoern@redhat.com>
2021-09-28 21:20:01 -04:00
Valentin Rothberg a9a54eefab image prune: support removing external containers
Support removing external containers (e.g., build containers) during
image prune.

Fixes: #11472
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-09-28 10:24:16 +02:00
Giuseppe Scrivano 3ce98a5ec2
logging: new mode -l passthrough
it allows to pass the current std streams down to the container.

conmon support: https://github.com/containers/conmon/pull/289

[NO TESTS NEEDED] it needs a new conmon.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-09-27 12:07:01 +02:00
Nalin Dahyabhai 82818caffe Update docs for --platform in podman-build.1
Update the descriptions of the --arch, --os, --variant, and --platform
options, since the last of those hasn't been a no-op for some time, and
it was recently extended to accept multiple values.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2021-09-23 09:24:18 -04:00
OpenShift Merge Robot 3d34d3a186
Merge pull request #11647 from EduardoVega/11491-U-suffix-mount-option
Add support for :U flag with --mount option
2021-09-23 08:32:24 -04:00
OpenShift Merge Robot f342784ce5
Merge pull request #11701 from ashley-cui/stream
Fix machine image
2021-09-22 18:44:47 -04:00
Eduardo Vega ed3c4a89d6 Add support for :U flag with --mount option
The :U flag can be used to change the ownership of source volumes based on
the UID, GID of the container. This is only supported by the --volume option,
this will allow to use --mount option as well.

Signed-off-by: Eduardo Vega <edvegavalerio@gmail.com>
2021-09-22 15:42:16 -06:00
Ashley Cui f5f95d722f Fix machine image
Make sure setting machine image to `testing` pulls down the testing
stream, and not the next stream

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-09-22 14:38:24 -04:00
Valentin Rothberg 49c5688a30 podman save: add `--uncompressed`
Add an option to `podman save` to allow uncompressed layers when
copying OCI images.  Do the neccessary plumbing for the remote client,
add tests and vendor in the latest commit from c/common to fetch
the neccessary changes in libimage.

Closes: #11613
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-09-22 12:38:07 +02:00
TomSweeneyRedHat 738f2b36e3 [CI:DOCS] Add network alias note in man pages
Adds a note about the limitation of network aliases to the man pages
This should satisfy https://issues.redhat.com/browse/RUN-1189

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2021-09-21 18:15:54 -04:00
OpenShift Merge Robot d8d494994a
Merge pull request #11662 from baude/kubenodev
Remove references to kube being development
2021-09-21 11:34:40 -04:00
cdoern 8fac34b8ff Pod Device Support
added support for pod devices. The device gets added to the infra container and
recreated in all containers that join the pod.

This required a new container config item to keep track of the original device passed in by the user before
the path was parsed into the container device.

Signed-off-by: cdoern <cdoern@redhat.com>
2021-09-20 23:22:43 -04:00
OpenShift Merge Robot 7e8ce73c15
Merge pull request #11660 from rhatdan/docs
Add podman image/container inspect man pages
2021-09-20 14:35:45 -04:00
OpenShift Merge Robot 791458605a
Merge pull request #11630 from rhatdan/timeout
Add support for retrieving system service --timeout
2021-09-20 14:21:44 -04:00
OpenShift Merge Robot b700fe22fd
Merge pull request #11644 from rhatdan/now
Add podman machine init --now option
2021-09-20 13:47:43 -04:00
Brent Baude 61217f3ba9 Remove references to kube being development
At this point and even though we are always improving the play and
generate kube functions, I would say it no longers needs to be denoted
as under development.

[NO TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-09-20 12:47:15 -05:00
Daniel J Walsh b74edfb0a1
Add support for retrieving system service --timeout
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-20 12:10:14 -04:00
Daniel J Walsh 3221f50a45
Add podman image/container inspect man pages
[NO TESTS NEEDED] since this is really a docs change.

Concludes: https://github.com/containers/podman/pull/11620

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-20 12:06:26 -04:00
Urvashi Mohnani 665b451e51 [CI:DOCS] Add link to skopeo delete in podman rmi
Add a note pointing to skopeo delete for when
users want to delete an image in a remote registry.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-09-20 10:58:18 -04:00
Daniel J Walsh 74ad05396b
Add podman machine init --now option
Once we have this option, the new documentation from users becomes
a little simpler.

brew install podman
podman machine init --now
podman run ...

--now option is based off of `systemctl enable XYZ.service --now`

[NO TESTS NEEDED] The infrastructure has not been setup yet to test
podman machine init.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-19 05:53:08 -04:00
OpenShift Merge Robot fc4a47e0e7
Merge pull request #11617 from ashley-cui/ssh
[NO TESTS NEEDED] Add username flag for machine ssh
2021-09-18 06:43:03 -04:00
Ashley Cui e3e9e5175f Add username flag for machine ssh
allow users to specify what username to use when ssh-ing into the vm.
If the username flag is set, the username will be the flag value. If the
flag is not set and the the vm name is specified, the default user of
the vm will be used. if the flag is not set, and the vm name is not
specified, then the username of the default connection will be used.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-09-17 13:33:56 -04:00
OpenShift Merge Robot 08e1bb54c3
Merge pull request #11607 from Luap99/ipvlan
CNI: add ipvlan driver support and macvlan modes
2021-09-17 10:45:18 -04:00
OpenShift Merge Robot 9a5987cf6a
Merge pull request #11603 from rhatdan/truncate
Add no-trunc support to podman-events
2021-09-17 07:02:52 -04:00
Ed Santiago 62350fed61 [CI:DOCS] markdown cleanup
* podman-inspect: make references be live links, not a static
  list. Also, remove container- and image-inspect, because
  those are NOPs.

* podman-pull: add a missing right-paren

* podman-search, podman: remove unwanted indentation from
  some file descriptions. Markdown indentation renders as
  one very very long line, requiring the user to use a
  horizontal scroll bar to read the text. I searched
  using grep '^    ' and eyeball-looking for text that
  doesn't look like one-line code examples, and see
  no more, but eyeball checks are fragile.

One bug remains: MyST renders mailto: links uglily. I can find
no way to fix this other than patching the source code.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-09-16 15:59:14 -06:00
Daniel J Walsh 4216f7b7f4
Add no-trunc support to podman-events
Standardize on no-trunc through the code.
Alias notruncate where necessary.

Standardize on the man page display of no-trunc.

Fixes: https://github.com/containers/podman/issues/8941

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-16 09:41:29 -04:00
Paul Holzinger aee0ab98cd
CNI: add ipvlan driver
Add support for the ipvlan cni plugin. This allows us to create,
inspect and list ipvlan networks correctly.

Fixes #10478

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 15:37:34 +02:00
Paul Holzinger c20f61148c
CNI: network create support macvlan modes
Support setting the macvlan mode with `podman network create -d macvlan
--opt mode=bridge`. This will correctly set the specified macvlan mode
in the cni conflist file.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-16 14:53:33 +02:00
OpenShift Merge Robot 5f41ffdd19
Merge pull request #11322 from Luap99/network-libpod
Wire network interface into libpod
2021-09-15 16:11:14 -04:00
Paul Holzinger 85e8fbf7f3
Wire network interface into libpod
Make use of the new network interface in libpod.

This commit contains several breaking changes:
- podman network create only outputs the new network name and not file
  path.
- podman network ls shows the network driver instead of the cni version
  and plugins.
- podman network inspect outputs the new network struct and not the cni
  conflist.
- The bindings and libpod api endpoints have been changed to use the new
  network structure.

The container network status is stored in a new field in the state. The
status should be received with the new `c.getNetworkStatus`. This will
migrate the old status to the new format. Therefore old containers should
contine to work correctly in all cases even when network connect/
disconnect is used.

New features:
- podman network reload keeps the ip and mac for more than one network.
- podman container restore keeps the ip and mac for more than one
  network.
- The network create compat endpoint can now use more than one ipam
  config.

The man pages and the swagger doc are updated to reflect the latest
changes.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 20:00:20 +02:00
Daniel J Walsh 3e77f960f6
Set default storage from containers.conf for temporary images
Fixes: https://github.com/containers/podman/issues/11107

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-15 10:43:51 -04:00
OpenShift Merge Robot 4b6ffda31c
Merge pull request #11409 from cdoern/podVolumes
Pod Volumes Support
2021-09-15 09:10:12 -04:00
OpenShift Merge Robot 4dd7bfdfaa
Merge pull request #11556 from afbjorklund/distribution-info
Show variant and codename of the distribution
2021-09-15 06:25:00 -04:00
Paul Holzinger 5cafb6d18d
Fix example in podman machine init man page
Fixes #11582

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-15 11:06:08 +02:00
Anders F Björklund 38c5f6721f Show variant and codename of the distribution
Along with the name (id) and the version(_id)

But only show the information if is available

Examples: Fedora CoreOS, Ubuntu Focal

[NO TESTS NEEDED]

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2021-09-14 17:44:42 +02:00
cdoern 84005330aa Pod Volumes Support
added support for the --volume flag in pods using the new infra container design.
users can specify all volume options they can with regular containers

resolves #10379

Signed-off-by: cdoern <cdoern@redhat.com>
2021-09-14 08:32:07 -04:00
flouthoc a55e2a00fc rootfs: Add support for rootfs-overlay and bump to buildah v1.22.1-0.202108
Allows users to specify a readonly rootfs with :O, in exchange podman will create a writable overlay.

bump builah to v1.22.1-0.20210823173221-da2b428c56ce

[NO TESTS NEEDED]

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-09-14 13:31:39 +05:30
TomSweeneyRedHat a8875faca1 [CI:DOCS] Remove short 'a' option from all-tags
The short option 'a' for the --all-tags option in the pull
page is not valid, remove it.

Addresses: #11536

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2021-09-13 09:27:57 -04:00
OpenShift Merge Robot ec3037062d
Merge pull request #11513 from Luap99/unshare
podman unshare keep exit code
2021-09-11 17:26:35 -04:00
OpenShift Merge Robot 5e9758fd5f
Merge pull request #11323 from umohnani8/init
Add init containers to generate and play kube
2021-09-10 13:44:47 -04:00
Urvashi Mohnani f5e4ffb5e4 Add init containers to generate and play kube
Kubernetes has a concept of init containers that run and exit before
the regular containers in a pod are started. We added init containers
to podman pods as well. This patch adds support for generating init
containers in the kube yaml when a pod we are converting had init
containers. When playing a kube yaml, it detects an init container
and creates such a container in podman accordingly.
Note, only init containers created with the init type set to "always"
will be generated as the "once" option deletes the init container after
it has run and exited. Play kube will always creates init containers
with the "always" init container type.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-09-10 09:37:46 -04:00
Paul Holzinger d2e10a71d6
podman unshare keep exit code
In case the command inside the podman unshare env failed podman unshare
always exits with 125 and prints `Error: exit status 125`. This is a
bad user experience and makes it difficult to use in scripts which could
expect certain exit codes.
This commit makes sure podman unshare uses the same exit code as the
command and does not print the useless `exit status X` message.

Also to match podman run/exec it should return 126 for EPERM
and 127 for ENOENT.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-10 15:30:25 +02:00
Shion Tanaka a4cc32c2c5 Fix missing args in name in example
Signed-off-by: Shion Tanaka <shtanaka@redhat.com>
2021-09-10 15:50:02 +09:00
OpenShift Merge Robot 23527374c4
Merge pull request #11492 from rhatdan/man
[CI:DOCS] Fix spacing on --userns options in docs
2021-09-09 08:15:15 -04:00
Daniel J Walsh 2f967b81cb
Add logDriver to podman info
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-08 17:53:04 -04:00
Daniel J Walsh cee689af1e
Fix spacing on --userns options in docs
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-09-08 15:23:02 -04:00
OpenShift Merge Robot 558ba1b99e
Merge pull request #11468 from Luap99/play-kube-slirp
fix play kube --network options
2021-09-08 13:55:21 +02:00
Paul Holzinger f18ccbcc0f
fix play kube --network options
Commit 092902b455 introduced advanced network options for podman play
kube. However this never worked because it unconditionally set the
network mode to bridge after it parsed the network option.

Added a test to ensure the correct mode is set.

Truly fixes #10807

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-08 10:09:28 +02:00
OpenShift Merge Robot 30d0cc3cca
Merge pull request #11427 from flouthoc/kube-pod-logs
kube: Add support for `podman pod logs`.
2021-09-07 18:39:45 +02:00
Paul Holzinger 3d02cfb5e0
network create: add warning for deprecated macvlan flag
The macvlan driver is not deprecated, only the --macvlan flag is.
Remove the flag from the man page since it is deprecated and add a
warning to podman network create if it is used.

[NO TESTS NEEDED]

Fixes #11400

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-09-07 10:24:10 +02:00
Aditya Rajan 11fc0e5540 kube: Add support for podman pod logs
Following PR adds support for `kubectl` like `pod logs` to podman.
Usage `podman pod logs <podIDorName` gives a stream of logs for all
the containers within the pod with **containername** as a field.

Just like **`kubectl`** also supports `podman pod logs -c ctrIDorName podIDorName`
to limit the log stream to any of the specificied container which belongs to pod.

Signed-off-by: Aditya Rajan <arajan@redhat.com>
2021-09-05 16:24:49 +05:30
Daniel J Walsh c36322382a
Merge pull request #11368 from giuseppe/fix-man-format
[CI:DOCS] fix indentation for userns modes
2021-09-01 15:24:24 -04:00
Valentin Rothberg f9a689f3ed generate systemd: clarify limitations of `--new`
`generate systemd --new` is looking at the "create command" of the
container/pod which is simply the os.Args at creation time.

It does not work on containers or pods created via the REST API since
the create command is not set.  `--new` does work on such containers and
pods since there is no reliable way to reverse-map their configs to
command-line arguments of podman.

Fixes: #11370
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-09-01 08:50:03 +02:00
Valentin Rothberg d674eb41e4 [CI:DOCS] podman cp: highlight globbing and multi-file copy
`podman cp` does not allow for globbing or filtering copied data in any
form.  `docker cp` does not either, so Podman remains compatible.  Due
to a number of requests, highlight how users can effectively achieve
that by means of chaining with tools such as xargs(1) or find(1), or by
making use of `podman mount`.

Closes: #11346
Closes: #11194
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-31 17:30:58 +02:00
Giuseppe Scrivano 375c3a7b3c
docs: fix indentation for userns modes
Closes: https://github.com/containers/podman/issues/11364

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2021-08-31 13:18:33 +02:00
cdoern d28e85741f InfraContainer Rework
InfraContainer should go through the same creation process as regular containers. This change was from the cmd level
down, involving new container CLI opts and specgen creating functions. What now happens is that both container and pod
cli options are populated in cmd and used to create a podSpecgen and a containerSpecgen. The process then goes as follows

FillOutSpecGen (infra) -> MapSpec (podOpts -> infraOpts) -> PodCreate -> MakePod -> createPodOptions -> NewPod -> CompleteSpec (infra) -> MakeContainer -> NewContainer -> newContainer -> AddInfra (to pod state)

Signed-off-by: cdoern <cdoern@redhat.com>
2021-08-26 16:05:16 -04:00
OpenShift Merge Robot 94c37d7d47
Merge pull request #11298 from baude/kubeupdown
teardown play kube
2021-08-26 13:58:44 -04:00
OpenShift Merge Robot 70caa63e7c
Merge pull request #11318 from jmguzik/volume-ls-prune-docs
[CI:DOCS] Add filter params description to volume list/prune docs
2021-08-26 13:01:44 -04:00
Jakub Guzik 1e6d1e5c6b Add filter params description to volume list/prune docs
Description adjusted to the standard seen in other man pages.
[CI:DOCS]

Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-08-26 17:09:06 +02:00
OpenShift Merge Robot 18da5b0bf6
Merge pull request #11208 from ashley-cui/streams
[NO TESTS NEEDED] Allow setting of machine stream and image path from containers.conf
2021-08-26 10:13:08 -04:00
flouthoc d5507704e9 volumes: Add volume import to allow importing contents on tar into volume
Following feature makes sure that users can load contents of external
tarball into the podman volumes.

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-26 14:14:14 +05:30
Brent Baude 1e176923b1 teardown play kube
add the ability for play kube to tear down based on the yaml used to
play it.  it is indicated by --down in the play kube command.  volumes
are NOT deleted during the teardown.  pods and their containers are
stopped and removed.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-24 14:26:14 -05:00
Ashley Cui 3f22e52964 Allow setting of machine stream and image path from containers.conf
Default is "testing"

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-08-24 14:18:55 -04:00
OpenShift Merge Robot 90cf78b199
Merge pull request #11290 from flouthoc/volume-export
volumes: Add support for `volume export` which allows exporting content to  external path.
2021-08-23 14:01:20 -04:00
OpenShift Merge Robot 6a3741598c
Merge pull request #11205 from Shivkumar13/shivkumar-tls-fix
Support for --tls-verify flag in podman-run & podman-create
2021-08-23 13:44:19 -04:00
flouthoc edddfe8c4f volumes: Add support for exporting volumes to external tar
Adds support for transferring data between systems and backing up systems.
Use cases: recover from disasters or move data between machines.

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-23 20:42:41 +05:30
Shivkumar13 319c85e89e
Support for --tls-verify flag in podman run & podman create
Signed-off-by: Shivkumar13 <sople@redhat.com>
2021-08-21 00:54:13 +05:30
Brent Baude cd40c875ac Add ability to build images in play kube
When playing a kube YAML file, it can be desirable to be able to build
an image on the fly.  This is good for development of an image and YAML
files and somewhat mocks what compose does.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-18 09:55:24 -05:00
Brent Baude bef26f2582 rename oneshot initcontainers to once
after the init containers pr merged, it was suggested to use `once`
instead of `oneshot` containers as it is more aligned with other
terminiology used similarily.

[NO TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-12 12:57:15 -05:00
Daniel J Walsh 404488a087
Run codespell to fix spelling
[NO TESTS NEEDED] Just fixing spelling.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-08-11 16:41:45 -04:00
openshift-ci[bot] 1968fdc874
Merge pull request #11173 from jmguzik/pod-ps-until-filter
Add until filter to podman pod ps
2021-08-11 08:38:20 +00:00
Jakub Guzik ed30ae4a8a Add until filter to podman pod ps
This commit adds additional until filter to podman pod ps (ls/list).
Additionally, it also adds descriptions for podman pod ps filters available
via http api.

Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-08-10 22:10:40 +02:00
openshift-ci[bot] 904e0f20e1
Merge pull request #11177 from Luap99/source-ip
[CI:DOCS] Document source ip for the rootlesskit port handler
2021-08-10 14:34:30 +00:00
Paul Holzinger af46a64a8a
Document source ip for the rootlesskit port handler
Also add some missing options to podman pod create.

Fixes #10884

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-10 15:38:37 +02:00
openshift-ci[bot] e136ad485c
Merge pull request #10589 from umohnani8/pod-userns
Add support for pod inside of user namespace.
2021-08-10 12:55:52 +00:00
Daniel J Walsh 221b1add74 Add support for pod inside of user namespace.
Add the --userns flag to podman pod create and keep
track of the userns setting that pod was created with
so that all containers created within the pod will inherit
that userns setting.

Specifically we need to be able to launch a pod with
--userns=keep-id

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2021-08-09 15:17:22 -04:00
Daniel J Walsh 170fb25729
Alias build to buildx, so it won't fail
Add hidden --load and --progress flag as well.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-08-09 13:05:49 -04:00
openshift-ci[bot] 8409817733
Merge pull request #11074 from vrothberg/auto-update-rollback
auto-update: simple rollback
2021-08-06 12:26:31 +00:00
flouthoc 541e83ffe2 personality: Add support for setting execution domain.
Execution domains tell Linux how to map signal numbers into signal actions.
The execution domain system allows Linux to provide limited support for binaries
compiled under other UNIX-like operating systems.

Reference: https://man7.org/linux/man-pages/man2/personality.2.html

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-08-06 15:04:47 +05:30
openshift-ci[bot] 1f0a24437d
Merge pull request #11011 from baude/initcontainers
implement init containers in podman
2021-08-05 13:52:15 +00:00
Valentin Rothberg 30df551bde auto-update: simple rollback
Add support for simple rollbacks during `podman auto-update`.  Rollbacks
are enabled by default.  If a systemd unit cannot be restarted after an
update, the previous image will be retagged and the unit will be
restarted a second time.

Add system tests for rollbacks.  Also fix a bug in the restart sequence;
we have to use the channel to actually know whether the restart was
successful or not.

NOTE: To make rollbacks really useful, users must run their containers
with `--sdnotify=container` such that the containers send the ready
message over the (mounted) socket.  This way, restarting the systemd
units during auto update will block until the message has been received
(or a timeout kicked in).

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-05 15:20:38 +02:00
Brent Baude 3c3fa6fac4 implement init containers in podman
this is the first pass at implementing init containers for podman pods.
init containersare made popular by k8s as a way to run setup for pods
before the pods standard containers run.

unlike k8s, we support two styles of init containers: always and
oneshot.  always means the container stays in the pod and starts
whenever a pod is started.  this does not apply to pods restarting.
oneshot means the container runs onetime when the pod starts and then is
removed.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-08-04 14:14:36 -05:00
openshift-ci[bot] 8aa869e628
Merge pull request #10973 from rhatdan/quota
Support size options on builtin volumes
2021-08-04 11:59:58 +00:00
openshift-ci[bot] 3a922cbc99
Merge pull request #11003 from pascomnet/f_stats
stats: add a interval parameter to cli and api stats streaming
2021-08-04 09:56:57 +00:00
openshift-ci[bot] cbad561696
Merge pull request #11091 from Luap99/connect-disconnect
fix rootless port forwarding with network dis-/connect
2021-08-03 18:59:01 +00:00
Valentin Rothberg cc43b51334 image scp: fix typo in output
s/Loaded images(s)/Loaded image(s)/

[NO TESTS NEEDED] (I think we should test the output at some point)

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-08-03 17:17:51 +02:00
Paul Holzinger e88d8dbeae
fix rootless port forwarding with network dis-/connect
The rootlessport forwarder requires a child IP to be set. This must be a
valid ip in the container network namespace. The problem is that after a
network disconnect and connect the eth0 ip changed. Therefore the
packages are dropped since the source ip does no longer exists in the
netns.
One solution is to set the child IP to 127.0.0.1, however this is a
security problem. [1]

To fix this we have to recreate the ports after network connect and
disconnect. To make this work the rootlessport process exposes a socket
where podman network connect/disconnect connect to and send to new child
IP to rootlessport. The rootlessport process will remove all ports and
recreate them with the new correct child IP.

Also bump rootlesskit to v0.14.3 to fix a race with RemovePort().

Fixes #10052

[1] https://nvd.nist.gov/vuln/detail/CVE-2021-20199

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-08-03 16:29:09 +02:00
openshift-ci[bot] bdbc21095a
Merge pull request #10828 from cdoern/scp
Created image scp feature
2021-08-02 17:15:54 +00:00
Daniel J Walsh c0952c7334
Support size and inode options on builtin volumes
[NO TESTS NEEDED] Since it is difficult to setup xfs quota

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1982164

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-08-02 10:32:45 -04:00
cdoern 1d10ca739f Created scp.go image_scp_test.go and podman-image-scp.1.md
added functionality for image secure copying from local to remote.
Also moved system connection add code around a bit so functions within that file
can be used by scp.

Signed-off-by: cdoern <cdoern@redhat.com>
2021-07-30 17:19:24 -04:00
OpenShift Merge Robot 1bf7a9ed9c
Merge pull request #11066 from infiniteregrets/cp-md
[CI:DOCS] Update podman-cp manpage
2021-07-28 15:50:45 +02:00
OpenShift Merge Robot 6c5966cf3c
Merge pull request #10910 from adrianreber/2021-07-12-checkpoint-restore-into-pod
Add support for checkpoint/restore into and out of pods
2021-07-28 14:48:28 +02:00
Mehul Arora e3b0ba9283 [CI:DOCS] Update podman-cp manpage
Signed-off-by: Mehul Arora <aroram18@mcmaster.ca>
2021-07-28 17:05:06 +05:30
Adrian Reber eb94467780
Support checkpoint/restore with pods
This adds support to checkpoint containers out of pods and restore
container into pods.

It is only possible to restore a container into a pod if it has been
checkpointed out of pod. It is also not possible to restore a non pod
container into a pod.

The main reason this does not work is the PID namespace. If a non pod
container is being restored in a pod with a shared PID namespace, at
least one process in the restored container uses PID 1 which is already
in use by the infrastructure container. If someone tries to restore
container from a pod with a shared PID namespace without a shared PID
namespace it will also fail because the resulting PID namespace will not
have a PID 1.

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-07-27 16:10:44 +02:00
Mehul Arora 6fe03b25ab support container to container copy
Implement container to container copy.  Previously data could only be
copied from/to the host.

Fixes: #7370
Co-authored-by: Mehul Arora <aroram18@mcmaster.ca>
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-27 15:32:23 +02:00
OpenShift Merge Robot 508dc031c6
Merge pull request #10861 from jmguzik/until-prune-volume-cmd
Add prune until filter test for podman volume cli
2021-07-27 14:50:24 +02:00
Thomas Weber cdbbd79155 stats: add a interval parameter to cli and api stream mode
podman stats polled by default in a 1 sec period.
This can put quite some load on a machine if you run many containers.

The default value is now 5 seconds.
You can change this interval with a new, optional, --interval, -i cli flag.
The api request got also a interval query parameter for the same purpose.

Additionally a unused const was removed.
Api and cli will fail the request if a 0 or negative value is passed in.

Signed-off-by: Thomas Weber <towe75@googlemail.com>
2021-07-27 07:20:47 +02:00
Jakub Guzik 7fa4d2cb18 Add prune until filter test for podman volume cli
This commit follows work started in #10756. Changes made in #11015
enabled cli support for volume prune --filter until. Adding e2e test
closes #10579.

Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-07-26 22:37:45 +02:00
Valentin Rothberg 1b6423e9f1 refine dangling checks
By proxy by vendoring containers/common. Previously, a "dangling" image
was an untagged image; just a described in the Docker docs. The
definition of dangling has now been refined to an untagged image without
children to be compatible with Docker.

Further update a redundant image-prune test.

Fixes: #10998
Fixes: #10832
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-26 09:28:17 +02:00
OpenShift Merge Robot d956500743
Merge pull request #10996 from cdoern/untilLog
Implemented --until flag for Libpod's Container Logs
2021-07-24 05:56:18 -04:00
OpenShift Merge Robot e6fb92f478
Merge pull request #11013 from hshiina/cgroupsv2
[CI:DOCS] Add notes to flags not supported on cgroups V2
2021-07-22 14:36:26 -04:00
OpenShift Merge Robot 365775489f
Merge pull request #11015 from jmguzik/until-list-volume
Add until filter to volume ls filters list
2021-07-22 14:11:24 -04:00
cdoern 0f708efd8b Implemented --until flag for libpod's container logs
compat containers/logs was missing actual usage of until query param.
This led me to implement the until param for libpod's container logs as well. Added e2e tests.

Signed-off-by: cdoern <cdoern@redhat.com>
2021-07-22 10:56:56 -04:00
Jakub Guzik 2d8e837a9b Add until filter to volume ls filters list
As a conclusion of a discussion in #10861, until filter is added
by this commit to volume ls filters.

Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-07-22 00:01:07 +02:00
Hironori Shiina 12f4b14a16 Add notes to flags not supported on cgroups V2
Clarify what flags are not supported on cgroups V2 in documentation.

Signed-off-by: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
2021-07-21 17:50:37 -04:00
Valentin Rothberg 6430c13160 [CI:DOCS] refine the runlabel man page
* Write a description to outline the scope and mechanism of runlabel.
* Describe the variables/attributes that we want to be used.
* Do not describe the --optN or OPTN flags/variables since they are
  already hidden flags and date back to the Atomic days.
* Update references to other man pages.
* Remove unsupported variables (e.g., SUDO_*) which caused confusion.

Fixes: #10799
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-20 14:26:11 +02:00
Valentin Rothberg 6f1c7a0b6b systemd: require network*-online*.target
Require the network to be online in all (generated) systemd units to
make sure that containers and Podman run only after the network has been
fully configured.

Fixes: #10655
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-16 14:58:08 +02:00
José Guilherme Vanz af40dfc2bf
--infra-name command line argument
Adds the new --infra-name command line argument allowing users to define
the name of the infra container

Issue #10794

Signed-off-by: José Guilherme Vanz <jvanz@jvanz.com>
2021-07-15 21:27:51 -03:00
OpenShift Merge Robot 12b67aaf62
Merge pull request #10894 from cdoern/pidPod
podman pod create --pid flag
2021-07-15 17:30:16 -04:00
cdoern f7321681d0 podman pod create --pid flag
added support for --pid flag. User can specify ns:file, pod, private, or host.
container returns an error since you cannot point the ns of the pods infra container
to a container outside of the pod.

Signed-off-by: cdoern <cdoern@redhat.com>
2021-07-15 10:34:09 -04:00
Valentin Rothberg 59f31d86ac auto-update: add --dry-run
Add a --dry-run flag to `podman auto-update` which will look for new
images but won't perform any pull or restart any service or container.

The "UPDATED" column will now indicate the availability of a newer image
via "pending".

```
$ podman auto-update --dry-run
UNIT                    CONTAINER            IMAGE                   POLICY      UPDATED
container-test.service  08fd34e533fd (test)  localhost:5000/busybox  registry    false
```

Fixes: #9949
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-15 11:39:50 +02:00
OpenShift Merge Robot 1e236845e6
Merge pull request #10909 from rhatdan/docs
[CI:DOCS] Fix up documentation of the userns audit flag
2021-07-14 17:20:01 -04:00
Daniel J Walsh 100c23dc5b
Fix up documentation of the userns audit flag
Add reference to the `containers` user in the /etc/subuid and
/etc/subgid files.

Fixes: https://github.com/containers/podman/issues/10906

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-07-14 15:28:35 -04:00
Valentin Rothberg 01cfb51fe9 auto-update: make output more user friendly
The rather raw and scarce output of `podman auto-update` has been a
thorn in my eyes for a longer while.  So far, Podman would only print
updated systemd units, one per line, without further formatting.

Motivated by issue #9949 which is asking for some more useful
information in combination with a dry-run feature, I sat down and
reflected which information may come in handy.

Running `podman auto-update` will now look as follows:

```
$ podman auto-update
Trying to pull [...]

UNIT                    CONTAINER            IMAGE                   POLICY      UPDATED
container-test.service  08fd34e533fd (test)  localhost:5000/busybox  registry    false
```

Also refactor the spaghetti code in the backend a bit to make it easier
to digest and maintain.

For easier testing and for the sake of consistency with other commands
listing output, add a `--format` flag.

The man page will get an overhaul in a follow up commit.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-14 16:23:51 +02:00
Hironori Shiina 6bdb990c9e Restore headers of optional information in 'podman pod ps'
When optional information such as container IDs and names in pods, the
headers are not displayed. This fix restored the headers.

Documentation of this subcommand is also updated.

Signed-off-by: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
2021-07-09 18:08:23 -04:00
rugk a2d15d9816
Mention new hostname for loopback IP
The hostname `host.containers.internal` is way easier to remember and should IMHO be preferred to be used, as it is:
a) easier to remember than some random IP
b) if the IP changes some time in the future the container will continue to work

And explain hostname adding in more detail
As per @mheon's suggestion.

And explain hostname adding *reason*
Also implies an suggestion for using the hostname instead.

And port change from podman-create man page to podman-run, too

Signed-off-by: rugk <rugk+git@posteo.de>
2021-07-09 17:47:11 +02:00
OpenShift Merge Robot ba29b30d74
Merge pull request #10788 from infiniteregrets/multi-pull
support pulling multiple images sequentially in a single podman pull
2021-07-06 04:30:54 -04:00
Mehul Arora 59abb77fc2 multiple image pull support
Signed-off-by: Mehul Arora <aroram18@mcmaster.ca>
2021-07-05 16:07:49 +05:30
OpenShift Merge Robot 895b815188
Merge pull request #10836 from Luap99/diff
podman diff accept two images or containers
2021-07-03 06:17:03 -04:00
Paul Holzinger 8f6a0243f4
podman diff accept two images or containers
First, make podman diff accept optionally a second argument. This allows
the user to specify a second image/container to compare the first with.
If it is not set the parent layer will be used as before.

Second, podman container diff should only use containers and podman
image diff should only use images. Previously, podman container diff
would use the image when both an image and container with this name
exists.

To make this work two new parameters have been added to the api. If they
are not used the previous behaviour is used. The same applies to the
bindings.

Fixes #10649

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-07-02 17:11:56 +02:00
Valentin Rothberg 8606ead912 [CI:DOCS] podman search: clarify that results depend on implementation
Clarify in the man page that podman-search is not generally realiable
way of determining the presence/existence of an image.  The results of
the v1 and the v2 endpoints depend on the implementation of each
registry; the semantics are not really specified.  Some registries may
not support search at all as it's not part of the OCI dist spec.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1978556
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-07-02 11:14:01 +02:00
Matej Vasek 86c6014145 Implement --archive flag for podman cp
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-07-01 12:01:46 +02:00
Jhon Honce 2ce78aace6 Enhance system connection add URL input
* Add support for the tcp and unix schemes in connection URLs.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-06-29 16:24:03 -07:00
OpenShift Merge Robot 0a0ade3cc0
Merge pull request #10736 from trusch/feature-use-secret-config
read secret config from config file if no user data.
2021-06-25 12:45:53 -04:00
OpenShift Merge Robot 21d80faa0b
Merge pull request #10760 from vrothberg/save-docs
[CI:DOCS] podman save: clarify formats and transports
2021-06-24 09:54:14 -04:00
Tino Rusch b56b4b5374
read secret config from config file if no user data.
feat: read secret config from config file if the user hasn't entered
explicit config values

feat: allow to specify `--driver-opts opt1=val1,opt2=val2` in the secret
create command to allow overriding the default values

fix: show driver options in `podman secret inspect`

Signed-off-by: Tino Rusch <tino.rusch@gmail.com>
2021-06-24 12:31:14 +02:00
OpenShift Merge Robot 63626e9b58
Merge pull request #10766 from Procyhon/13062021_manpage
[CI:DOCS] Follow-up to PR 10676
2021-06-24 05:39:06 -04:00
Valentin Rothberg 15fbf950ed [CI:DOCS] podman save: clarify formats and transports
Mention all supports --format values and put them into the context of
supported transports.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-06-24 09:18:16 +02:00
OpenShift Merge Robot e1a7a0efbe
Merge pull request #10747 from jwhonce/wip/report
Add --format to connection list
2021-06-23 15:53:31 -04:00
OpenShift Merge Robot 3f3feaa015
Merge pull request #10716 from cdoern/podFlags
Podman Pod Create --cpus and --cpuset-cpus flags
2021-06-23 15:51:29 -04:00
Alexander Richter 7d83f9b6cc [CI:DOCS] Follow-up to PR 10676
See [PR 10676](https://github.com/containers/podman/pull/10676).

Signed-off-by: Alexander Richter <67486332+Procyhon@users.noreply.github.com>
2021-06-23 20:36:20 +02:00
cdoern bbd085ad1e Podman Pod Create --cpus and --cpuset-cpus flags
Added logic and handling for two new Podman pod create Flags.

--cpus specifies the total number of cores on which the pod can execute, this
is a combination of the period and quota for the CPU.

 --cpuset-cpus is a string value which determines of these available cores,
how many we will truly execute on.

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2021-06-23 13:47:57 -04:00
OpenShift Merge Robot e50e0dad90
Merge pull request #10676 from Procyhon/13062021_manpage
[CI:DOCS] UPDATE manpages with MANPAGE_SYNTAX
2021-06-23 13:09:30 -04:00
Daniel J Walsh 3322ea2c68
Merge pull request #10759 from dilyanpalauzov/master
markdown/*: typos 'a image'
2021-06-23 13:01:45 -04:00
Valentin Rothberg 525cb54e14 [CI:DOCS] push/pull docs: clarify supported transports
The man pages of podman push/pull were incomplete in explaining all
supported transports.  To keep things simple, explain the defaults,
refer to containers-transports(5) and give some examples.

Fixes: #10730
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-06-23 16:34:25 +02:00
Дилян Палаузов 1aa9dcfadf markdown/*: typos 'a image'
Insisting on “DCO” imposes formalities, that serve self-purpose.  One cannot
assume that the submitter has time or will to read texts about symbolism in
software contributions.  If the system wants to see the text

  nrEAUIEUAIe eanuitdnuae EAIUEAUIAIE »ℓ§444.3.72b)°»°ℓ§euaieauuae

in each commit, people will write this, or any other text, that the system wants to
see.  All such text, which presence is mandated by the system, has the same value.

Signed-off-by: Дилян Палаузов <git-dpa@aegee.org>
2021-06-23 13:46:45 +03:00
Jhon Honce 1f388ede6f Add --format to connection list
Add support for the --format option to podman system connection list.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-06-22 11:07:12 -07:00
Kye Shi 7f98d2ddbc
docs: podman-rmi removes dangling parent images
Signed-off-by: Kye Shi <shi.kye@gmail.com>
2021-06-21 10:58:45 -07:00
flouthoc 1e36be439d Add support for podman login --verbose
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-06-19 10:01:19 +05:30
Daniel J Walsh b6662eed3f
Vendor in containers/common v0.40.0
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-06-17 14:59:42 -04:00
Alexander Richter e344a5899f [CI:DOCS] UPDATE manpages with MANPAGE_SYNTAX
MANPAGE_SYNTAX was edited.

The following manpages have been adapted to the MANPAGE_SYNTAX:
- podman-container-prune
- podman-container-restore

The following manpages have had little changes:
- podman-attach
- podman-auto-update
- podman-commit
- podman-completion
- podman-container-checkpoint
- podman-container-cleanup
- podman-container-exists

Signed-off-by: Alexander Richter <67486332+Procyhon@users.noreply.github.com>
2021-06-16 17:44:11 +02:00
OpenShift Merge Robot 092b2ecafc
Merge pull request #10629 from dilyanpalauzov/master
[CI:DOCS] podman-run.1.md:detach-keys: spell the default value just once
2021-06-15 16:37:11 -04:00
OpenShift Merge Robot e549ca5078
Merge pull request #10525 from rhatdan/docs1
[CI:DOCS] Add documentation on ignore_chown_errors
2021-06-12 16:14:43 -04:00
OpenShift Merge Robot 14ae580dc6
Merge pull request #10601 from Procyhon/07062021_manpage
[CI:DOCS] UPDATE manpages with MANPAGE_SYNTAX
2021-06-12 16:11:42 -04:00
Alexander Richter 4bca1984a5 UPDATE manpages with MANPAGE_SYNTAX
The following manpages have been adapted to the MANPAGE_SYNTAX:
- podman-completion
- podman-container-checkpoint
- podman-container-cleanup
- podman-container-exists

The following manpages have had little changes:
- podman-attach
- podman-commit
- MANPAGE_SYNTAX
- Makefile

Signed-off-by: Alexander Richter <67486332+Procyhon@users.noreply.github.com>
2021-06-12 18:50:20 +02:00
Дилян Палаузов 8d860cfcde podman-run.1.md:detach-keys: spell the default value just once
Insisting on “DCO” imposes formalities, that serve self-purpose.  One cannot
assume that the submitter has time or will to read texts about symbolism in
software contributions.  If the system wants to see the text

      nrEAUIEUAIe eanuitdnuae EAIUEAUIAIE »ℓ§444.3.72b)°»°ℓ§euaieauuae

in each commit, people will write this, or any other text, that the system wants to
see.  All such text, which presence is mandated by the system, has the same value.

Signed-off-by: Дилян Палаузов <git-dpa@aegee.org>
2021-06-12 10:20:35 +03:00
Daniel J Walsh 991647c775
Add documentation on ignore_chown_errors
fixes: https://github.com/containers/podman/issues/10145

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-06-10 17:02:35 -04:00
Ed Santiago d5527c3304 System tests: deal with crun 0.20.1
crun 0.20.1 changed an error message that we relied on. Deal
with it by accepting the old and new message.

Also (unrelated): sneak in some doc fixes to get rid of
nasty go-md2man warnings that have crept into man pages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-06-09 10:15:12 -06:00
OpenShift Merge Robot 4f81bc2bc8
Merge pull request #10526 from Procyhon/31052021_manpage
[CI:DOCS] UPDATE MANPAGE_SYNTAX (commit,attach,auto-update)
2021-06-07 21:09:51 +02:00
OpenShift Merge Robot 448b582909
Merge pull request #10381 from adrianreber/2021-05-18-publish
Add --publish to container restore
2021-06-07 15:14:44 +02:00
Adrian Reber 68070f1b2a
Add --compress to podman-container-checkpoint.1.md
Signed-off-by: Adrian Reber <areber@redhat.com>
2021-06-07 08:07:15 +02:00
Adrian Reber 10875a67e4
Order checkpoint options in man page alphabetically
This just reorders the options in the podman-container-checkpoint man
page alphabetically. No actual content changed.

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-06-07 08:07:14 +02:00
Alexander Richter ab7e7f651e UPDATE MANPAGE_SYNTAX (commit,attach,auto-update)
Updated version for the MANPAGE_SYNTAX and adaption of the syntax for
the manpages of podman-commit, podman-attach, and podman-auto-update.

Signed-off-by: Alexander Richter <67486332+Procyhon@users.noreply.github.com>
2021-06-06 12:32:05 +02:00
Boaz Shuster 2810c478a7 Add CORS support
[NO TESTS NEEDED]

Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2021-06-04 16:14:52 +03:00
Adrian Reber e23c5b25f1
Add restore --publish to the man page
Signed-off-by: Adrian Reber <areber@redhat.com>
2021-06-04 13:29:02 +02:00
Valentin Rothberg 249da1b93d [CI:DOCS] rm containers-mounts.conf.5.md
The code for mounts.conf including the man page lives in
containers/common, so remove it from Podman to prevent
divergence among the two repositories.

Fixes: #10512
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-06-01 13:57:07 +02:00
OpenShift Merge Robot 60b372b49b
Merge pull request #10506 from vrothberg/fix-10493
generate systemd: make mounts portable
2021-05-31 14:53:35 +02:00
Valentin Rothberg 5307218419 generate systemd: make mounts portable
Commit 748826fc88 fixed a bug where slow mounting of the runroot was
causing issues when the units are started at boot.  The fix was to add
the container's runroot to the required mounts; the graph root has been
added as well.

Hard-coding the run- and graphroot to the required mounts, however,
breaks the portability of units generated with --now.  Those units are
intended to be running on any machine as, theoreticaly, any user.

Make the mounts portable by using the `%t` macro for the run root.
Since the graphroot's location varies across root and ordinary users,
drop it from the list of required mounts.  The graphroot was not causing
issues.

Fixes: #10493
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-31 11:31:27 +02:00
rugk 699272ed29
add missing space
Fixes a small typo in the man page. 🙂

Signed-off-by: rugk <rugk+git@posteo.de>
2021-05-31 08:36:42 +02:00
OpenShift Merge Robot c5b3cba9c3
Merge pull request #10429 from ashley-cui/manifestdocs
[CI:DOCS] Document all transports for podman manifest add
2021-05-25 18:11:10 -07:00
Valentin Rothberg 586af5c747 docs: --cert-dir: point to containers-certs.d(5)
Point to containers-certs.d(5) for details on the default paths, the
lookup logic and the structure of these directories.  Previously, the
man pages stated that the default path would be in `/etc/containers/...`
which is not entirely and a red herring for users (see #10116).

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-25 14:00:06 +02:00
flouthoc 2f5552c32d Podman info add support for status of cgroup controllers
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-05-24 16:55:23 +05:30
OpenShift Merge Robot 6a6ef402c3
Merge pull request #10400 from rhatdan/root
Clear the storage-options from the graphdriver if users specifies --root
2021-05-21 17:40:24 +02:00
Ashley Cui 0766777d62 Document all transports for podman manifest add
[CI:DOCS] podman manifest add manpage was missing some transports.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-05-21 10:55:50 -04:00
Daniel J Walsh 2b89b24146
Add support for podman manifest rm command
This is mainly to match command line of Docker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-19 17:32:02 -04:00
Daniel J Walsh 55f00bac02
Clear the storage-options from the graphdriver if users specifies --root
Fixes: https://github.com/containers/podman/issues/10393

Currently if a user specifies a --root flag to override the location of
the container storage, we still enforce the storage-opts from
storage.conf. This causes issues with people trying to intereact with
the additional stores feature, and then forces them to use the obscure
--storage-opt="" option. I belive this should be the default and we
already do this when the user specifies the --storage-driver option.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-19 15:35:59 -04:00
Valentin Rothberg 379df7f2c4 docs: generate systemd: XDG_RUNTIME_DIR
A conversation on the customer portal suggests that to add an extra note
about the requirement of XDG_RUNTIME_DIR to be set.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-19 09:15:48 +02:00
OpenShift Merge Robot 9a9118b831
Merge pull request #10366 from ashley-cui/secretoptions
Support uid,gid,mode options for secrets
2021-05-17 16:24:20 -04:00
Ashley Cui cf30f160ad Support uid,gid,mode options for secrets
Support UID, GID, Mode options for mount type secrets. Also, change
default secret permissions to 444 so all users can read secret.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-05-17 14:35:55 -04:00
OpenShift Merge Robot 0a3444613e
Merge pull request #10328 from Luap99/completions
Several shell completion fixes
2021-05-17 14:11:20 -04:00
Paul Holzinger 0d811b2339 Several shell completion fixes
- fix network filters
- add prune filters
- pod create --share support comma separated namespaces

[NO TESTS NEEDED]

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-05-17 15:56:11 +02:00
Valentin Rothberg 2a43fcf786 image prune: remove unused images only with `--all`
Fix a regression in `podman image prune` where unused images were
accidentally removed even when `--all=false`.  Extend and partially
rewrite the e2e tests to make sure we're not regressing again in the
future.

Fixing the aforementioned issue revealed another issue in the default
prune filter.  While prune should remove all "dangling" images (i.e.,
those without tag), it removed only "intermediate" ones; dangling images
without children.  Remove the mistaken comment from the libimage
migration.

Also clarify the help message and man page.

Fixes: #10350
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-17 13:52:03 +02:00
Jakub Guzik 5e6405334c Add support for cli network prune --filter flag
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-05-12 09:05:06 +02:00
Paul Holzinger 30e731ecc8 Revert escaped double dash man page flag syntax
Commit 800a2e2d35 introduced a way to disable the conversion of `--`into
an en dash on docs.podman.io, so the ugly workaround of escaping the
dashes is no longer necessary.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-05-07 18:30:00 +02:00
OpenShift Merge Robot 5616887f62
Merge pull request #10249 from rhatdan/man1
[CI:DOCS] Add documentation on short-names
2021-05-07 10:23:26 -04:00
Daniel J Walsh bdbce9bcb1
Add documentation on short-names
Once we settle on the wording for short-names in podman-pull, I will
add the same section to all of the podman commands that use pull.

Also ran through all man pages with a spell checker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-07 09:00:35 -04:00
OpenShift Merge Robot 0c411278ce
Merge pull request #10202 from EduardoVega/9763-kube-auto-update
Add support to preserve auto-update labels in play / generate kube
2021-05-07 05:36:26 -04:00
OpenShift Merge Robot 141ba94f97
Merge pull request #10221 from ashley-cui/envsec
Add support for environment variable secrets
2021-05-07 05:34:26 -04:00
Eduardo Vega 72f4f389f0 Adds support to preserve auto update labels in generate and play kube
In the case of generate kube the auto-update labels will be converted into kube annotations and for play kube they will be converted back to labels since that's what podman understands

Signed-off-by: Eduardo Vega <edvegavalerio@gmail.com>
2021-05-06 21:21:43 -06:00
OpenShift Merge Robot 034470e5be
Merge pull request #9689 from boaz0/boaz-1
add restart-policy to container filters & --filter to podman start
2021-05-06 14:50:26 -04:00
Ashley Cui 2634cb234f Add support for environment variable secrets
Env var secrets are env vars that are set inside the container but not
commited to and image. Also support reading from env var when creating a
secret.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-05-06 14:00:57 -04:00
Daniel J Walsh caa8c622b3
Add containers.conf information for changing defaults
We probably should put a whole bunch of other documentation in man
pages about containers.conf, but let's settle on this description
before we go add other docs.

Helps with: https://github.com/containers/podman/issues/2669

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-06 10:43:36 -04:00
Boaz Shuster efdc7d8465 Add restart-policy to container filters & --filter to podman start
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2021-05-06 14:35:15 +03:00
Daniel J Walsh 0d1ebc180e
codespell cleanup
[NO TESTS NEEDED] This is just running codespell on podman

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-05 15:50:59 -04:00
OpenShift Merge Robot 404bc2684e
Merge pull request #10185 from rhatdan/volume
Add filepath glob support to --security-opt unmask
2021-05-05 15:38:11 -04:00
OpenShift Merge Robot 120e1b78ef
Merge pull request #10208 from Luap99/play-kube-mac
add --mac-address to podman play kube
2021-05-05 10:10:16 -04:00
Valentin Rothberg 0f7d54b026 migrate Podman to containers/common/libimage
Migrate the Podman code base over to `common/libimage` which replaces
`libpod/image` and a lot of glue code entirely.

Note that I tried to leave bread crumbs for changed tests.

Miscellaneous changes:

 * Some errors yield different messages which required to alter some
   tests.

 * I fixed some pre-existing issues in the code.  Others were marked as
   `//TODO`s to prevent the PR from exploding.

 * The `NamesHistory` of an image is returned as is from the storage.
   Previously, we did some filtering which I think is undesirable.
   Instead we should return the data as stored in the storage.

 * Touched handlers use the ABI interfaces where possible.

 * Local image resolution: previously Podman would match "foo" on
   "myfoo".  This behaviour has been changed and Podman will now
   only match on repository boundaries such that "foo" would match
   "my/foo" but not "myfoo".  I consider the old behaviour to be a
   bug, at the very least an exotic corner case.

 * Futhermore, "foo:none" does *not* resolve to a local image "foo"
   without tag anymore.  It's a hill I am (almost) willing to die on.

 * `image prune` prints the IDs of pruned images.  Previously, in some
   cases, the names were printed instead.  The API clearly states ID,
   so we should stick to it.

 * Compat endpoint image removal with _force_ deletes the entire not
   only the specified tag.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-05 11:30:12 +02:00
Daniel J Walsh 4fd1965ab4
Add filepath glob support to --security-opt unmask
Want to allow users to specify --security-opt unmask=/proc/*.
This allows us to run podman within podman more securely, then
specifing umask=all, also gives the user more flexibilty.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-04 14:40:43 -04:00
Paul Holzinger fb7d16c7a8 add --mac-address to podman play kube
Add a new --mac-address flag to podman play kube. This is used to specify
a static MAC address which should be used for the pod. This option can be
specified several times because play kube can create more than one pod.

Fixes #9731

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-05-04 20:14:13 +02:00
Boaz Shuster a726a3d79c Add --all to podman start
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
Co-authored-by: Ed Santiago <santiago@redhat.com>
2021-05-03 22:17:06 +03:00
OpenShift Merge Robot 4d2ba323f2
Merge pull request #10063 from ParkerVR/autoupdate-local
Autoupdate Local
2021-04-29 13:37:50 -04:00
OpenShift Merge Robot c01b1cbfcd
Merge pull request #10170 from ashley-cui/machineone
[NO TESTS NEEDED] Check if another VM is running on machine start
2021-04-29 09:52:14 -04:00
Parker Van Roy caf19efdab TODO complete
changed struct to policyMapper
change "image" to "registry" in multiple locations

Updated documentation with registry alias & autoupdate local

Added relevant test

Signed-off-by: Parker Van Roy <pvanroy@redhat.com>
2021-04-29 02:40:11 -04:00
Ashley Cui 53057d5c20 Check if another VM is running on machine start
Only one VM can be up at a time. If another VM is running, or the current VM is running, error out on a podman machine start

[NO TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-04-28 15:09:10 -04:00
OpenShift Merge Robot 5dc9faf624
Merge pull request #10134 from rhatdan/conmon
[CI:DOCS] Add more documentation on conmon
2021-04-27 16:57:31 -04:00
OpenShift Merge Robot f613a2a8d5
Merge pull request #10119 from rhatdan/timeout
Add podman run --timeout option
2021-04-27 16:47:32 -04:00
Daniel J Walsh 63fd3a3fca
Add more documentation on conmon
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-27 11:57:19 -04:00
Erik Sjölund a010bb912d
[CI:DOCS] Fix Markdown layout bugs
* Add missing backticks to mark the end
  of the code block.

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2021-04-25 14:39:54 +02:00
Daniel J Walsh 3538815c5b
Add podman run --timeout option
This option allows users to specify the maximum amount of time to run
before conmon sends the kill signal to the container.

Fixes: https://github.com/containers/podman/issues/6412

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-23 11:18:05 -04:00
OpenShift Merge Robot 21c77846e4
Merge pull request #9495 from rhatdan/groups
Add '--group-add keep-groups': supplementary groups into container
2021-04-22 09:29:28 -04:00
OpenShift Merge Robot 382c0ac133
Merge pull request #10103 from pipern/patch-1
[CI:DOCS] Typo fix to usage text of --compress option
2021-04-21 15:42:47 -04:00
Daniel J Walsh e356160f41
Add --group-add keep-groups: suplimentary groups into container
Currently we have rootless users who want to leak their groups access
into containers, but this group access is only able to be pushed in by
a hard to find OCI Runtime annotation.  This PR makes this option a lot
more visable and hides the complexity within the podman client.

This option is only really needed for local rootless users. It makes
no sense for remote clients, and probably makes little sense for
rootfull containers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-21 13:28:36 -04:00
Daniel J Walsh 9c8277247d
Fixes from make codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-21 13:16:33 -04:00
Nick Piper 85937044cd
Typo fix to usage text of --compress option
Correction of `--format-docker-dir` in to `--format=docker-dir`

Signed-off-by: Nick Piper <nick.piper@cgi.com>
2021-04-21 17:26:50 +01:00
Daniel J Walsh 8ebeadc3c6
Add --noheading flag to all list commands
Currently we have only podman images list --noheading.
This PR Adds this option to volumes, containers, pods, networks,
machines, and secrets.

Fixes: https://github.com/containers/podman/issues/10065

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-21 05:22:29 -04:00
Erik Sjölund c1f117e526
[CI:DOCS] Fix Markdown table layout bugs
* Fix the Markdown table layout bugs that manifest themselves in
  corrupted tables in the generated HTML pages
  http://docs.podman.io/en/latest/markdown/podman-create.1.html
  http://docs.podman.io/en/latest/markdown/podman-run.1.html

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2021-04-20 22:18:44 +02:00
Erik Sjölund 6e5bb9d1d3
[CI:DOCS] Rewrite --uidmap doc in podman-create.1.md and podman-run.1.md
Introduce the concept of "intermediate UID" to explain
how --uidmap works when running rootless.

Add Markdown tables to show examples of how UIDs are mapped.

Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2021-04-20 20:28:11 +02:00
TomSweeneyRedHat 7f6bcc2008 [CI:DOCS] Add missing dash to verbose option
The `--verbose` option in the import man page was
missing a dash, this corrects it.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2021-04-19 16:24:52 -04:00
OpenShift Merge Robot a94360a3f7
Merge pull request #10041 from chenk008/add_pidfile_flag
Add flag "--pidfile" for podman create/run
2021-04-19 16:22:05 -04:00
chenkang 022bf589c8
improve document
Signed-off-by: chenkang <kongchen28@gmail.com>
2021-04-17 21:25:11 +08:00
chenkang 80c1dd0651
Modify according to comments
Signed-off-by: chenkang <kongchen28@gmail.com>
2021-04-17 16:08:08 +08:00
Paul Holzinger d7292dbf27 add --ip to podman play kube
Add a new --ip flag to podman play kube. This is used to specify a
static IP address which should be used for the pod. This option can be
specified several times because play kube can create more than one pod.

Fixes #8442

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-04-16 09:55:03 +02:00
wuhua.ck 8fbe06b8cb add flag "--pidfile" for podman create/run
Signed-off-by: chenkang <kongchen28@gmail.com>
2021-04-16 13:43:14 +08:00
Pablo Correa Gómez 693352c841
Update documentation of podman-run to reflect volume "U" option
The "U" option is accepted by `--volume` in `podman-build`,
but documentation is missing

Signed-off-by: Pablo Correa Gómez <ablocorrea@hotmail.com>
2021-04-14 23:55:07 +02:00
Daniel J Walsh 8f16742187
Fix handling of $NAME and $IMAGE in runlabel
Fixes: https://github.com/containers/podman/issues/9405

Add system runlabel tests.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-12 08:41:08 -04:00
OpenShift Merge Robot 9d3e310710
Merge pull request #9935 from EduardoVega/5788-kube-volume
Add support for play/generate kube PersistentVolumeClaims and Podman volumes
2021-04-12 12:36:20 +02:00
OpenShift Merge Robot 3b03ff7d1e
Merge pull request #9950 from Luap99/unshare-rootless-cni
podman unshare: add --rootless-cni to join the ns
2021-04-12 12:33:20 +02:00
Anatoli Babenia 0f1af6b37d Fix slashes in socket URLs
Signed-off-by: Anatoli Babenia <anatoli@rainforce.org>
2021-04-12 07:19:12 +03:00
Eduardo Vega 61cb6d61dd Add support for play/generate kube volumes
Signed-off-by: Eduardo Vega <edvegavalerio@gmail.com>
2021-04-09 14:01:13 -06:00
Jonathan Wakely 736be87b25 [CI:DOCS] Fix formatting of podman-build man page
An apostrophe as the first character of the line is a formatting request
in troff, so the words "'Containerfile' or 'Dockerfile'" are not
visible when viewing 'man podman-build'.

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
2021-04-08 22:50:56 +01:00
Paul Holzinger 0a39ad196c podman unshare: add --rootless-cni to join the ns
Add a new --rootless-cni option to podman unshare to also join the
rootless-cni network namespace. This is useful if you want to connect
to a rootless container via IP address. This is only possible from the
rootless-cni namespace and not from the host namespace. This option also
helps to debug problems in the rootless-cni namespace.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-04-07 15:54:12 +02:00
OpenShift Merge Robot d83f49ef6b
Merge pull request #9754 from mheon/add_dep
Add --requires flag to podman run/create
2021-04-06 16:16:49 -04:00
Matthew Heon 6acd265306 Add --requires flag to podman run/create
Podman has, for a long time, had an internal concept of
dependency management, used mainly to ensure that pod infra
containers are started before any other container in the pod. We
also have the ability to recursively start these dependencies,
which we use to ensure that `podman start` on a container in a
pod will not fail because the infra container is stopped. We have
not, however, exposed these via the command line until now.

Add a `--requires` flag to `podman run` and `podman create` to
allow users to manually specify dependency containers. These
containers must be running before the container will start. Also,
make recursive starting with `podman start` default so we can
start these containers and their dependencies easily.

Fixes #9250

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2021-04-06 14:01:31 -04:00
OpenShift Merge Robot 254a5d4c26
Merge pull request #9909 from w4tsn/docs/add-containers-storage-transport
[CI:DOCS] Add transport and destination info to manifest doc
2021-04-05 21:12:15 +02:00
Daniel J Walsh 69ace20535
Allow users to override default storage opts with --storage-opt
We define in the man page that this overrides the default storage
options, but the code was appending to the existing options.

This PR also makes a change to allow users to specify --storage-opt="".
This will turn off all storage options.

https://github.com/containers/podman/issues/9852

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-04-05 12:48:09 -04:00
Erik Sjölund ace3a3efd0
podman-run.1.md, podman-create.1.md : Adjust Markdown layout for --userns
* Adjust Markdown layout for --userns.
* Make the --userns sections identical for podman-run.1.md and podman-create.1.md

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2021-04-03 15:43:04 +02:00
Erik Sjölund cecb7099f5
Fix typos --uidmapping and --gidmapping
* Fix typos --uidmapping and --gidmapping in podman-run.1.md
* Add the corresponding sentence in podman-create.1.md

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2021-04-03 14:41:12 +02:00
Alexander Wellbrock ab7a3b2069
Add transport and destination info to manifest doc
Initially I was missing transport information on podman manifest add.
Especially the `containers-storage` transport which references the
local image store. Had a use case where this came in quite handy and it
is not stated anywhere else in the docs. Suppose it does not make sense
for podman pull & push.

I've only added containers-storage and docker transports for
manifest add since I know those work. Maybe others work too.

I then also added the destination section to manifest push as it is done
in podman push & pull. I've added all transports here, but I don't know
if all are supported. Please review.

Signed-off-by: Alexander Wellbrock <a.wellbrock@mailbox.org>
2021-04-03 13:12:34 +02:00
Ashley Cui f8bc391e34 Add ssh connection to root user
When initing a VM, create two add connections - one to user, one to
root.
podman machine remove removes both connections as well.

[NO TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-04-01 13:51:02 -04:00
baude f6438d36f3 Remove --execute from podman machine ssh
The --execute flag ended up serving no purpose.  It was removed and
documentation was updated.

Fixed a panic when no VM name was provided.

[NO TESTS NEEDED]

Signed-off-by: baude <bbaude@redhat.com>
2021-03-31 12:51:33 -05:00
OpenShift Merge Robot 2d824d85e1
Merge pull request #9888 from baude/machineign
podman machine init --ignition-path
2021-03-31 15:24:47 +02:00
OpenShift Merge Robot a373e2fdf3
Merge pull request #9885 from ashley-cui/machinels
Add podman machine ls
2021-03-30 22:36:25 +02:00
Ashley Cui ef4e91a59e Add podman machine list
podman machine list lists all virtual machines & indicates the default VM
connection, if it exists. it also can take a --format flag arg as a go
template.

[NO TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-03-30 14:56:21 -04:00
baude b898b19e45 podman machine init --ignition-path
allow for the user to provide an alternate ignition-file rather than the
auto-generated one.

updated docs to describe ramifications of providing an alterate ignition
file.

[NO TESTS NEEDED]

Signed-off-by: baude <bbaude@redhat.com>
2021-03-30 09:44:04 -05:00
Daniel J Walsh 5b50fa565f
Document --volume from podman-remote run/create client
[NO TESTS NEEDED] This PR is mainly documentation and some code cleanup.

Also cleanup and consolidate handling of other hanlding of podman-remote
hidden options.

Fixes: https://github.com/containers/podman/issues/9874

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-03-30 10:05:54 -04:00
OpenShift Merge Robot 08eab3f8f7
Merge pull request #9307 from Luap99/powershell-completion
Add powershell completions
2021-03-29 15:17:44 +00:00
OpenShift Merge Robot 00792f8c95
Merge pull request #9856 from Luap99/fix-longflag
[CI:DOCS] Fix long option format on docs.podman.io
2021-03-29 14:40:44 +00:00
Paul Holzinger 6a78fcaa0a Add powershell completions
Add support for generating powershell completion files. This is especially
useful for people using the podman remote client on windows.

[NO TESTS NEEDED]

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-03-29 15:00:09 +02:00
Paul Holzinger bc48211924 Fix long option format on docs.podman.io
Escape the two dashes, otherwise they are combined into one long dash.
I tested that this change is safe and still renders correctly on github
and with the man pages.

This commit also contains a small change to make it build locally.
Assuming you have the dependencies installed you can do:
```
cd docs
make html
```
Preview the html files in docs/build/html with
`python -m http.server 8000 --directory build/html`.

Fixes containers/podman.io#373

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-03-29 14:38:25 +02:00
Valentin Rothberg fe270c7524 man pages: correct seccomp-policy label
The implementation uses `io.containers.seccomp.profile` while the docs
mentioned `io.podman`.  Correct the two references in the docs to
reflect the implementation.

Fixes: #9853
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-03-29 11:45:59 +02:00
baude 7a79f708a4 Podman machine enhancements
Podman machine remove is now called `rm`.

Podman machine create now supports resizing the image to the value of
--disk-size as provided.  The default is to 10G.

Added systemd unit file on guest via ignition that sends a Ready message
to the host over a virtio-socket so that we know when the VM is booted
and ready for use.

Podman machine commands no longer require a VM name as an argument.  A
default VM name is defined and if no VM name is provided as a arg, the
default will be used.

[NO TESTS NEEDED]

Signed-off-by: baude <bbaude@redhat.com>
2021-03-27 10:08:11 -05:00
OpenShift Merge Robot 47006d32ed
Merge pull request #9726 from tunacado/add_runroot_mount_require_to_systemd_gen
Add RequiresMountsFor= to systemd generate
2021-03-26 15:59:12 +00:00
Robb Manes 748826fc88 Add RequiresMountsFor= to systemd generate
It is rare but possible that storage locations for the graphroot and the
runroot are not mounted at boot time, and therefore might race when
doing container operations.  An example we've seen in the wild is that a
slow tmpfs mount for the runroot would suddenly mount over /run, causing
the container to lose all currently-running data, requiring a system
refresh to get it back.

This patch adds RequiresMountsFor= to the systemd.unit header to ensure
the paths for both the graphroot and runroot are mounted prior to
starting any generated unit files.

Signed-off-by: Robb Manes <rmanes@redhat.com>
2021-03-26 08:53:26 -04:00
Ashley Cui f663857103 Rename podman machine create to init and clean up
Rename podman machine create to init because we're initing a VM, not
really creating it
Wire up CPUs flag
Suppress QEMU GUI from popping up when not in debug mode

[NO TESTS NEEDED]
Signed-off-by: Ashley Cui <acui@redhat.com>
2021-03-25 17:45:27 -04:00
baude 4ab8a6f67e Improvements for machine
clean up ci failures and add appropriate arch,os exclusion tags

Signed-off-by: baude <bbaude@redhat.com>
2021-03-25 11:02:33 -05:00
Ashley Cui e766113737 Add --execute flag to podman machine ssh
--execute, -e allows to execute a command through ssh

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-03-25 08:46:43 -05:00
baude b5f54a9b23 introduce podman machine
podman machine allows podman to create, manage, and interact with a vm
running some form of linux (default is fcos).  podman is then configured
to be able to interact with the vm automatically.

while this is usable on linux, the real push is to get this working on
both current apple architectures in macos.

Ashley Cui contributed to this PR and was a great help.

[NO TESTS NEEDED]

Signed-off-by: baude <bbaude@redhat.com>
2021-03-25 08:43:51 -05:00
Ashley Cui a861f6fd3e Podman machine CLI and interface stub
Podman machine will be a mac-only command that manages the VM where
containers are run. Currently, only the CLI is written and the interface
function for the VM management is stub for future developement

The podman machine cli is only built on mac builds.

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-03-25 08:41:11 -05:00
OpenShift Merge Robot 860de13d4f
Merge pull request #9749 from jwillikers/generate-kube-persistent-volume-claim
Generate Kubernetes PersistentVolumeClaims from named volumes
2021-03-23 13:20:22 -07:00
TomSweeneyRedHat fb628e32f4 [CI:DOCS] Add note to mappings for user/group userns in build
Add a note to the `--userns-uid-map` and `--userns-gid-map` options in
the `podman build` man page.

Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1930509

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2021-03-22 11:56:38 -04:00
Jordan Williams 1e255b6df9
Generate Kubernetes PersistentVolumeClaims from named volumes
Fixes #5788

This commit adds support for named volumes in podman-generate-kube.
Named volumes are output in the YAML as PersistentVolumeClaims.
To avoid naming conflicts, the volume name is suffixed with "-pvc".
This commit adds a corresponding suffix for host path mounts.
Host path volumes are suffixed with "-host".

Signed-off-by: Jordan Williams <jordan@jwillikers.com>
2021-03-19 13:52:35 -05:00
Ashley Cui 3d01d42f26 Docs: removing secrets is safe for in-use secrets
Add docs explaining that it is safe to remove a secret that is in use by
a container: secrets are copied and mounted into the container at
creation

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-03-16 16:18:58 -04:00
Daniel J Walsh c9ef260710
Document CONTAINERS_CONF/CONTAINERS_STORAGE_CONF Env variables
Also Switch to using CONTAINERS_REGISTRIES_CONF for registries.conf
overrides.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-03-10 06:34:47 -05:00
xcffl dc0c72a48b
Docs: Add docs to access APIs inside container
Signed-off-by: xcffl <2216902+xcffl@users.noreply.github.com>
2021-03-10 07:47:52 +08:00
Valentin Rothberg 2abfef3809 podman cp: ignore EPERMs in rootless mode
Ignore permission errors when copying from a rootless container.
TTY devices inside rootless containers are owned by the host's
root user which is "nobody" inside the container's user namespace
rendering us unable to even read them.

Enable the integration test which was temporarily disabled for rootless
users.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-03-09 09:02:14 +01:00
Daniel J Walsh 9eac4a7f7b
podman-remote build does not support volumes
Remove --volume option from podman-remote since it is
not supported, also add information to podman-build man page
indicating options not supported over remote connections.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-03-08 13:46:42 -05:00
Daniel J Walsh 326f3eda31
Handle podman build --dns-search
Fixes: https://github.com/containers/podman/issues/9574

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-03-07 08:08:32 -05:00
Jakub Guzik 3ae580b0ef [ci skip] Bad formatting fix in build documentation
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-03-06 01:49:41 +01:00
OpenShift Merge Robot 7b76340864
Merge pull request #9568 from wjt/podman-system-service-timeout-docs
[ci:docs] podman-system-service.1.md: fix timeout example
2021-03-04 10:32:25 -05:00
OpenShift Merge Robot 87e20560ac
Merge pull request #9536 from jmguzik/enable-cgroupsv2-sec-opts
Enable cgroupsv2 rw mount via security-opt unmask
2021-03-03 12:28:54 -05:00
Jakub Guzik 81a3f8a432 Add /sys/fs/cgroup as readonly path in docs
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-03-03 15:27:45 +01:00
Will Thompson 63a3b8a093 podman-system-service.1.md: fix timeout example
The rest of this document claims that the argument is called '--time',
not '--timeout', and that the value is expressed in seconds. As
currently written, the example (which ostensibly runs the API service
for 5 seconds) uses the '--timeout' spelling (which actually does work,
as an undocumented alias) and passes a value of '5000', which is more
than an hour. Fix both.

[NO TESTS NEEDED] as this is a simple documentation change.

Signed-off-by: Will Thompson <wjt@endlessos.org>
2021-03-02 14:31:43 +00:00
Steve Phillips cc679d952a
podman-image-sign.1.md: typo fix
identify -> identity

Signed-off-by: Steve Phillips <steve@tryingtobeawesome.com>
2021-02-27 09:05:25 -08:00
Kier Davis 431f755197 podman-system-connection.1.md: fix copy/paste error
Signed-off-by: Kier Davis <me@kierdavis.com>
2021-02-24 11:09:19 -06:00
Eduardo Vega 874f2327e6 Add U volume flag to chown source volumes
Signed-off-by: Eduardo Vega <edvegavalerio@gmail.com>
2021-02-22 22:55:19 -06:00
OpenShift Merge Robot a6e7d19c46
Merge pull request #9445 from jmguzik/no-header-info-for-systemd-generation
No header info for systemd generation
2021-02-22 13:44:43 -05:00
Jakub Guzik d2f3098c6f --no-header flag implementation for generate systemd
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
2021-02-22 14:48:33 +01:00
Daniel J Walsh f06dd45e0c
Allow podman play kube to read yaml file from stdin
Fixes: https://github.com/containers/podman/issues/8996

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-02-19 12:53:25 -05:00
paranlee a532994f8b Fix typo podman run doc in flag -pid=mode "efault"
Signed-off-by: paranlee <paran.lee@mail.uk>
2021-02-16 20:46:21 +09:00
OpenShift Merge Robot f98605e0e4
Merge pull request #9125 from ashley-cui/secretswiring
Implement Secrets
2021-02-09 17:51:08 +01:00
Ashley Cui 832a69b0be Implement Secrets
Implement podman secret create, inspect, ls, rm
Implement podman run/create --secret
Secrets are blobs of data that are sensitive.
Currently, the only secret driver supported is filedriver, which means creating a secret stores it in base64 unencrypted in a file.
After creating a secret, a user can use the --secret flag to expose the secret inside the container at /run/secrets/[secretname]
This secret will not be commited to an image on a podman commit

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-02-09 09:13:21 -05:00
baude 91ea3fabd6 add network prune
add the ability to prune unused cni networks.  filters are not implemented
but included both compat and podman api endpoints.

Fixes :#8673

Signed-off-by: baude <bbaude@redhat.com>
2021-02-06 07:37:29 -06:00
Ed Santiago dfa9a340ad Makefile: make bin/* real targets!
Backstory: every time you run 'make podman' or even
just 'make', you get a full recompile. This is sub-ideal.

Cause: I don't really know. It looks complicated. #5017
introduced a .PHONY for bin/podman, for reasons not
explained in the PR. Then, much later, #5880 well-
intentionedly but improperly tweaked the 'find'
command used in defining SOURCES, adding a -prune
but without the corresponding and required -print.
Let's just say, it was an unfortunate cascade of events.

This PR fixes the SOURCES definition and removes the
highly-undesired .PHONY from podman & podman-remote,
making it so you can type 'make' and, oh joy, not
build anything if it's current. The way 'make' is
supposed to work.

Why fix this now? Because my PR (#9209) was failing in CI,
in the Validate step:

    Can't exec "./bin/podman": No such file or directory at hack/xref-helpmsgs-manpages line 223.

It failed even on Re-run, and only passed once I force-pushed
the PR (with no changes, just a new commit SHA). I have no idea
why bin/podman wasn't built, and I have zero interest in pursuing
that right now, but the proper solution is to add bin/podman as
a Makefile dependency for that particular test. So done.

While I'm at it, fix what is pretty clearly a typo in a .PHONY

And, finally, fix a go-md2man warning introduced in #9189

[NO TESTS NEEDED]

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-02-03 05:49:17 -07:00
OpenShift Merge Robot 8f51d325af
Merge pull request #9174 from bitstrings/master
Make slirp MTU configurable (network_cmd_options)
2021-02-03 06:51:23 -05:00
bitstrings 0959196807 Make slirp MTU configurable (network_cmd_options)
The mtu default value is currently forced to 65520.
This let the user control it using the config key network_cmd_options,
i.e.: network_cmd_options=["mtu=9000"]

Signed-off-by: bitstrings <pino.silvaggio@gmail.com>
2021-02-02 13:50:26 -05:00
baude e11d8f15e8 add macvlan as a supported network driver
instead of using the --macvlan to indicate that you want to make a
macvlan network, podman network create now honors the driver name of
*macvlan*.  Any options to macvlan, like the parent device, should be
specified as a -o option.  For example, -o parent=eth0.

the --macvlan option was marked as deprecated in the man page but is
still supported for the duration of 3.0.

Signed-off-by: baude <bbaude@redhat.com>
2021-02-01 14:42:38 -06:00
OpenShift Merge Robot 8f3bcf6247
Merge pull request #9144 from vrothberg/fix-9134
Revert "podman build --pull: use correct policy"
2021-01-29 13:27:19 -05:00
Daniel J Walsh d7c356552e
Podman-remote push can support --format
Fix man page to document podman push --format fully.

Also found that push was not handling the tlsverify so fixed this.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-29 08:48:35 -05:00
Valentin Rothberg c0bf0ba9e5 podman build --pull: refine help message and docs
Refine and correct the wording of the `--pull` flag in the help message
and the docs.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-01-28 18:00:22 +01:00
Daniel J Walsh 84f7bdc4db
Switch podman image push handlers to use abi
Change API Handlers to use the same functions that the
local podman uses.

At the same time:

Cleanup and pass proper bindings.  Remove cli options from
podman-remote push.  Cleanup manifest push.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-27 09:27:25 -05:00
OpenShift Merge Robot f13385e80e
Merge pull request #8761 from ybelleguic/fix-man-page-on-overlayfs-in-rootless-mode
[CI:DOCS] Fix man page for fuse-overlayfs config in rootless mode
2021-01-26 15:59:58 +01:00
Daniel J Walsh 5623cb9d3d
Fix --arch and --os flags to work correctly
Currently podman implements --override-arch and --overide-os
But Podman has made these aliases for --arch and --os.  No
reason to have to specify --override, since it is clear what
the user intends.

Currently if the user specifies an --override-arch field but the
image was previously pulled for a different Arch, podman run uses
the different arch.  This PR also fixes this issue.

Fixes: https://github.com/containers/podman/issues/8001

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-25 14:58:24 -05:00
baude 393a8f0261 disable dnsname when --internal
when doing a network creation, the dnsname plugin should be disabled
when the --internal bool is set.  a warning is displayed if this
happens and docs are updated.

Signed-off-by: baude <bbaude@redhat.com>
2021-01-25 08:51:15 -06:00
OpenShift Merge Robot 1305f7c47a
Merge pull request #9067 from Luap99/podman-manifest-exists
podman manifest exists
2021-01-23 11:05:09 +01:00
Paul Holzinger 6e6a38b416 podman manifest exists
Add podman manifest exists command with remote support.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-22 20:19:13 +01:00
xcffl 94f96c78a6 Add a notice to remove pod before starting service
Signed-off-by: xcffl <2216902+xcffl@users.noreply.github.com>
2021-01-22 18:28:19 +08:00
Paul Holzinger 9d31fed5f7 podman volume exists
Add podman volume exists command with remote support.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-21 19:18:51 +01:00
Yohan Belléguic 6518391e87 Fix man page for fuse-overlayfs config in rootless mode
Signed-off-by: Yohan Belléguic <yohan.belleguic@arkea.com>
2021-01-20 14:58:42 +01:00
OpenShift Merge Robot 5e7262ddf5
Merge pull request #9021 from Luap99/podman-network-exists
podman network exists
2021-01-19 16:56:17 -05:00
Ed Santiago 37abec240a [CI:DOCS] fix go-md2man HTMLSpan warnings
I'm tired of seeing these every time I run 'make':

   WARNING: go-md2man does not handle node type HTMLSpan

Cause: left-angle-brackets ( < ) in document source

Solution:
  1) backquote-escape those that need to be shown, usually
     ones referring to an argument or email address; or
  2) Actual HTML ( <sup> and <a> ) which are meant to be
     shown in generated HTML docs but can't be shown in
     man pages, we filter out via a sed expression.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2021-01-19 12:59:03 -07:00
Paul Holzinger a45d22a1dd podman network exists
Add podman network exists command with remote support.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-19 15:18:03 +01:00
OpenShift Merge Robot 341c4b1fd9
Merge pull request #8942 from rhatdan/push
Allow podman push to push manifest lists
2021-01-17 06:52:35 -05:00
Daniel J Walsh cf51c7ed9f
Allow podman push to push manifest lists
When doing a podman images, manifests lists look just like images, so
it is logical that users would assume that they can just podman push them
to a registry.  The problem is we throw out weird errors when this happens
and users need to somehow figure out this is a manifest list rather then
an image, and frankly the user will not understand the difference.

This PR will make podman push just do the right thing, by failing over and
attempting to push the manifest if it fails to push the image.

Fix up handling of manifest push

Protocol should bring back a digest string, which can either be
printed or stored in a file.

We should not reimplement the manifest push setup code in the tunnel
code but take advantage of the api path, to make sure remote and local
work the same way.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-15 13:24:34 -05:00
OpenShift Merge Robot 7d3a628c6b
Merge pull request #8982 from Luap99/container-rename-bindings
Container rename bindings
2021-01-15 10:48:27 -05:00
Paul Holzinger 0688f080b8 Fix missing podman-container-rename man page link
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-15 12:57:33 +01:00
Daniel J Walsh c88022589a
Bump to containers/buildah 1.9.2
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-15 06:23:19 -05:00
OpenShift Merge Robot 3fcf346890
Merge pull request #8955 from mheon/rename
Container Rename
2021-01-14 22:03:01 -05:00
Matthew Heon 997de2f8e9 Initial implementation of renaming containers
Basic theory: We remove the container, but *only from the DB*.
We leave it in c/storage, we leave the lock allocated, we leave
it running (if it is). Then we create an identical container with
an altered name, and add that back to the database. Theoretically
we now have a renamed container.

The advantage of this approach is that it doesn't just apply to
rename - we can use this to make *any* configuration change to a
container that does not alter its container ID.

Potential problems are numerous. This process is *THOROUGHLY*
non-atomic at present - if you `kill -9` Podman mid-rename things
will be in a bad place, for example. Also, we can't rename
containers that can't be removed normally - IE, containers with
dependencies (pod infra containers, for example).

The largest potential improvement will be to move the majority of
the work into the DB, with a `RecreateContainer()` method - that
will add atomicity, and let us remove the container without
worrying about depencies and similar issues.

Potential problems: long-running processes that edit the DB and
may have an older version of the configuration around. Most
notable example is `podman run --rm` - the removal command needed
to be manually edited to avoid this one. This begins to get at
the heart of me not wanting to do this in the first place...

This provides CLI and API implementations for frontend, but no
tunnel implementation. It will be added in a future release (just
held back for time now - we need this in 3.0 and are running low
on time).

This is honestly kind of horrifying, but I think it will work.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-01-14 18:29:28 -05:00
Matthew Heon b53cb57680 Initial implementation of volume plugins
This implements support for mounting and unmounting volumes
backed by volume plugins. Support for actually retrieving
plugins requires a pull request to land in containers.conf and
then that to be vendored, and as such is not yet ready. Given
this, this code is only compile tested. However, the code for
everything past retrieving the plugin has been written - there is
support for creating, removing, mounting, and unmounting volumes,
which should allow full functionality once the c/common PR is
merged.

A major change is the signature of the MountPoint function for
volumes, which now, by necessity, returns an error. Named volumes
managed by a plugin do not have a mountpoint we control; instead,
it is managed entirely by the plugin. As such, we need to cache
the path in the DB, and calls to retrieve it now need to access
the DB (and may fail as such).

Notably absent is support for SELinux relabelling and chowning
these volumes. Given that we don't manage the mountpoint for
these volumes, I am extremely reluctant to try and modify it - we
could easily break the plugin trying to chown or relabel it.

Also, we had no less than *5* separate implementations of
inspecting a volume floating around in pkg/infra/abi and
pkg/api/handlers/libpod. And none of them used volume.Inspect(),
the only correct way of inspecting volumes. Remove them all and
consolidate to using the correct way. Compat API is likely still
doing things the wrong way, but that is an issue for another day.

Fixes #4304

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2021-01-14 15:35:33 -05:00
Daniel J Walsh a7c0c9125f
Add more information and examples on podman and pipes
Improve the documentation to help users to know proper way to
use podman within a pipe.

Helps Prevent: https://github.com/containers/podman/issues/8916

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-13 15:08:46 -05:00
OpenShift Merge Robot 183f443a58
Merge pull request #8957 from srcshelton/feature/issue-8945
Add 'MemUsageBytes' format option
2021-01-13 06:28:00 -05:00
Stuart Shelton a6af56f5b4 Add 'MemUsageBytes' format option
Although storage is more human-readable when expressed in SI units,
IEC/JEDEC (Bytes) units are more pertinent for memory-related values
(and match the format of the --memory* command-line options).

(To prevent possible compatibility issues, the default SI display is
left unchanged)

See https://github.com/containers/podman/issues/8945

Signed-off-by: Stuart Shelton <stuart@shelton.me>
2021-01-12 23:38:08 +00:00
Daniel J Walsh a6046dceef
Remove the ability to use [name:tag] in podman load command
Docker does not support this, and it is confusing what to do if
the image has more then one tag.  We are dropping support for this
in podman 3.0

Fixes: https://github.com/containers/podman/issues/7387

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-12 17:38:32 -05:00
OpenShift Merge Robot 5575c7be20
Merge pull request #8819 from chen-zhuohan/add-pre-checkpoint
Add pre-checkpoint and restore with previous
2021-01-12 07:57:05 -05:00
unknown 2aa381f2d0 add pre checkpoint
Signed-off-by: Zhuohan Chen <chen_zhuohan@163.com>
2021-01-10 21:38:28 +08:00
Daniel J Walsh 3d453f9d2e
podman build --force-rm defaults to true in code
The man page and code should match for what is the default settings.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-10 05:52:33 -05:00
Paul Holzinger 38baf3d5e2 Add Networks format placeholder to podman ps and pod ps
`podman ps --format {{.Networks}}` will show all connected networks for
this container. For `pod ps` it will show the infra container networks.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-09 19:15:43 +01:00
Paul Holzinger 1242e7b7a6 Add network filter for podman ps and pod ps
Allow to filter on the network name or full id.
For pod ps it will filter on the infra container networks.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-09 17:03:32 +01:00
OpenShift Merge Robot 49db79e735
Merge pull request #8781 from rst0git/cr-volumes
Add support for checkpoint/restore of containers with volumes
2021-01-08 10:41:05 -05:00
Daniel J Walsh d9ebbbfe5b
Switch references of /var/run -> /run
Systemd is now complaining or mentioning /var/run as a legacy directory.
It has been many years where /var/run is a symlink to /run on all
most distributions, make the change to the default.

Partial fix for https://github.com/containers/podman/issues/8369

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-07 05:37:24 -05:00
Radostin Stoyanov 288ccc4c84 Include named volumes in container migration
When migrating a container with associated volumes, the content of
these volumes should be made available on the destination machine.

This patch enables container checkpoint/restore with named volumes
by including the content of volumes in checkpoint file. On restore,
volumes associated with container are created and their content is
restored.

The --ignore-volumes option is introduced to disable this feature.

Example:

 # podman container checkpoint --export checkpoint.tar.gz <container>

The content of all volumes associated with the container are included
in `checkpoint.tar.gz`

 # podman container checkpoint --export checkpoint.tar.gz --ignore-volumes <container>

The content of volumes is not included in `checkpoint.tar.gz`. This is
useful, for example, when the checkpoint/restore is performed on the
same machine.

 # podman container restore --import checkpoint.tar.gz

The associated volumes will be created and their content will be
restored. Podman will exit with an error if volumes with the same
name already exist on the system or the content of volumes is not
included in checkpoint.tar.gz

 # podman container restore --ignore-volumes --import checkpoint.tar.gz

Volumes associated with container must already exist. Podman will not
create them or restore their content.

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2021-01-07 07:51:19 +00:00
baude c81e29525b add --cidfile to container kill
Add the ability to read container ids from one or more files for the
kill command.

Fixes: #8443

Signed-off-by: baude <bbaude@redhat.com>
2020-12-23 12:01:46 -06:00
OpenShift Merge Robot 54b82a175f
Merge pull request #8787 from jsoref/spelling
Spelling
2020-12-23 17:38:43 +01:00
Tobias Boesch 3cc0801516
Document uid/gidmap are based on subuid/gid mapping
* Closes #6123

Signed-off-by: Tobias Boesch <tobias.boesch@googlemail.com>
2020-12-23 11:47:59 +01:00
Daniel J Walsh b41fa90a4c
Merge pull request #8774 from cevich/events_file_docs
[CI:DOCS] Document location of backend events file
2020-12-23 04:43:16 -05:00
Daniel J Walsh 767e1ac17f
Merge pull request #8804 from baude/issue8512
add pod filter for ps
2020-12-23 04:42:30 -05:00
Josh Soref 4fa1fce930 Spelling
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-12-22 13:34:31 -05:00
baude c50c75419b add pod filter for ps
adds the ability to filter containers based on the filter "pod".  the
value can be a pod name or its full or partial id.

Fixes: #8512

Signed-off-by: baude <bbaude@redhat.com>
2020-12-22 09:40:39 -06:00
Daniel J Walsh 04b43ccf64
Add Security information to podman info
When debugging issues, it would be helpful to know the
security settings of the system running into the problem.
Adding security info to `podman info` is also useful to users.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-22 08:13:14 -05:00
Chris Evich ea6c1c5bd0
Document location of backend events file
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-12-18 16:18:27 -05:00
Valentin Rothberg adcb3a7a60 remote copy
Implement `podman-remote cp` and break out the logic from the previously
added `pkg/copy` into it's basic building blocks and move them up into
the `ContainerEngine` interface and `cmd/podman`.

The `--pause` and `--extract` flags are now deprecated and turned into
nops.

Note that this commit is vendoring a non-release version of Buildah to
pull in updates to the copier package.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-12-18 12:08:49 +01:00
OpenShift Merge Robot e5741b984e
Merge pull request #8689 from bblenard/issue-8672-volume-prune
Add volume prune --filter support
2020-12-14 09:22:30 -05:00
Baron Lenardson a0204ada09 Add volume prune --filter support
This change adds support for the `--filter` / `?filters` arguments on
the `podman volume prune` subcommand.

  * Adds ParseFilterArgumentsIntoFilters helper for consistent
    Filter string slice handling
  * Adds `--filter` support to podman volume prune cli
  * Adds `?filters...` support to podman volume prune api
  * Updates apiv2 / e2e tests

Closes #8672

Signed-off-by: Baron Lenardson <lenardson.baron@gmail.com>
2020-12-12 20:07:04 -06:00
OpenShift Merge Robot 36bec385f3
Merge pull request #7718 from QiWang19/sign-multi-arch
Sign multi-arch images
2020-12-12 03:46:31 -05:00
Qi Wang 6730556e2f Sign multi-arch images
podman image sign handles muti-arch images.
--all option to create signature for each manifest from the image manifest list.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-12-11 14:15:56 -05:00
Daniel J Walsh 098e0a7885
Handle --rm when starting a container
podman start should follow the same behaviour as podman run when removing a
container.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-11 06:07:14 -05:00
OpenShift Merge Robot 6823a5d6cc
Merge pull request #8664 from rhatdan/prune
Add --filter to podman system prune
2020-12-10 13:32:41 -05:00
OpenShift Merge Robot eaa19a1c10
Merge pull request #8641 from umohnani8/play
Do not pull if image domain is localhost
2020-12-10 05:20:48 -05:00
Daniel J Walsh 15cdcdca76
Add --filter to podman system prune
Also document the allowable filters in podman system prune, podman image prune
and podman container prune.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-09 16:01:13 -05:00
OpenShift Merge Robot 059c2ee739
Merge pull request #8669 from giuseppe/unmask-also-cover-ro-paths
security: honor systempaths=unconfined for ro paths
2020-12-09 15:04:41 -05:00
Giuseppe Scrivano 176be90e0a
security: honor systempaths=unconfined for ro paths
we must honor systempaths=unconfined also for read-only paths, as
Docker does:

proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-12-09 19:26:23 +01:00
OpenShift Merge Robot 49d11b53e1
Merge pull request #8661 from rhatdan/codespell
Fix spelling mistakes
2020-12-09 09:52:20 -05:00
OpenShift Merge Robot b875c5c27c
Merge pull request #8599 from rhatdan/prune
Repeat system pruning until there is nothing removed
2020-12-09 08:46:44 -05:00
Daniel J Walsh a59e2a1a11
Repeat system pruning until there is nothing removed
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-09 06:17:28 -05:00
Valentin Rothberg c21bc8f034 auto updates: document systemd unit and timer
Fixes: #8605
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-12-09 12:03:42 +01:00
Daniel J Walsh bf5d184325
Fix spelling mistakes
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-09 06:00:04 -05:00
OpenShift Merge Robot 3bf02fb00a
Merge pull request #8630 from umohnani8/sec-opt
Add systempaths=unconfined option
2020-12-08 12:19:26 -05:00
Urvashi Mohnani 239bd57662 Add systempaths=unconfined option
Add the systempaths=unconfined option to --security-opt
to match the docker options for unmasking all the paths
that are masked by default.
Add the mask and unmask options to the podman create doc.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2020-12-08 09:42:33 -05:00
OpenShift Merge Robot 9b3a81a002
Merge pull request #8571 from Luap99/podman-network-reload
Implement pod-network-reload
2020-12-08 06:15:40 -05:00
Urvashi Mohnani b0707af68b Do not pull if image domain is localhost
With podman play kube, podman would always attempt to
pull if the image has the :latest tag. But this would
fail if the image was built locally and given latest
as the tag. Images build with podman and buildah have
localhost as the domain, so check if the domain is localhost.
If that is the case, then don't attempt a pull.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2020-12-07 17:04:53 -05:00
OpenShift Merge Robot bfbeece27b
Merge pull request #8581 from baude/kubegen
generate kube on multiple containers
2020-12-07 16:16:15 -05:00
Matthew Heon b0286d6b43 Implement pod-network-reload
This adds a new command, 'podman network reload', to reload the
networks of existing containers, forcing recreation of firewall
rules after e.g. `firewall-cmd --reload` wipes them out.

Under the hood, this works by calling CNI to tear down the
existing network, then recreate it using identical settings. We
request that CNI preserve the old IP and MAC address in most
cases (where the container only had 1 IP/MAC), but there will be
some downtime inherent to the teardown/bring-up approach. The
architecture of CNI doesn't really make doing this without
downtime easy (or maybe even possible...).

At present, this only works for root Podman, and only locally.
I don't think there is much of a point to adding remote support
(this is very much a local debugging command), but I think adding
rootless support (to kill/recreate slirp4netns) could be
valuable.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-12-07 19:26:23 +01:00
baude 749ee2a10e generate kube on multiple containers
add the ability to add multiple containers into a single k8s pod
instead of just one.

also fixed some bugs in the resulting yaml where an empty service
description was being added on error causing the k8s validation to fail.

Signed-off-by: baude <bbaude@redhat.com>
2020-12-07 11:34:39 -06:00
Qi Wang cf8f2342a1 image sign using per user registries.d
Support per user ~/.config/containers/registries.d to allow rootless image sign configurations.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-12-07 09:58:38 -05:00
OpenShift Merge Robot 0f496e4b81
Merge pull request #8570 from vrothberg/run-950
rewrite container copy
2020-12-04 13:33:36 -05:00
Valentin Rothberg ccbca0b4ab rewrite podman-cp
* Add a new `pkg/copy` to centralize all container-copy related code.

* The new code is based on Buildah's `copier` package.

* The compat `/archive` endpoints use the new `copy` package.

* Update docs and an several new tests.

* Includes many fixes, most notably, the look-up of volumes and mounts.

Breaking changes:

 * Podman is now expecting that container-destination paths exist.
   Before, Podman created the paths if needed.  Docker does not do
   that and I believe Podman should not either as it's a recipe for
   masking errors.  These errors may be user induced (e.g., a path
   typo), or internal typos (e.g., when the destination may be a
   mistakenly unmounted volume).  Let's keep the magic low for such
   a security sensitive feature.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-12-04 14:39:55 +01:00
Daniel J Walsh d9154e97eb
Add containerenv information to /run/.containerenv
We have been asked to leak some information into the container
to indicate:
* The name and id of the container
* The version of podman used to launch the container
* The image name and ID the container is based on.
* Whether the container engine is running in rootless mode.

Fixes: https://github.com/containers/podman/issues/6192

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-03 13:32:15 -05:00
Paul Holzinger 8437a6df16 Correct which network commands can be run as rootless
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-12-03 14:43:37 +01:00
OpenShift Merge Robot 5cf7aa65fb
Merge pull request #8408 from umohnani8/sec-opt
Add mask and unmask option to --security-opt
2020-12-03 00:49:23 +01:00
Urvashi Mohnani 0334b61958 Add mask and unmask option to --security-opt
Add the mask and unmask option to the --security-opt flag
to allow users to specify paths to mask and unmask in the
container. If unmask=ALL, this will unmask all the paths we
mask by default.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2020-12-02 16:07:18 -05:00
OpenShift Merge Robot e74072e742
Merge pull request #8112 from QiWang19/load-optional-name
Drop name argument from Load API
2020-12-02 21:35:31 +01:00
Qi Wang f525d8b843 Do not pass name argument to Load API
Not pass the name argument to Load API. Specify in the document the usage of the optional argument is tagging an additional image.
Close #7337

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-12-02 09:25:01 -05:00
Paul Holzinger c31a5c0d9c Add support for network ids
The network ID is not stored. It is just the sha256 hash from
the network name. There is a risk of a potential hash collision.
However it's very unlikely and even if we hit this it will
complain that more than network with this ID exists.

The main benefit is that the compat api can have proper
network ID support. Also this adds the support for
`podman network ls --format "{{.ID}}"` and `--filter id=<ID>`.

It also ensures that we can do network rm <ID> and network
inspect <ID>.

Since we use a hash this commit is backwards compatible even for
already existing networks.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-12-02 10:27:00 +01:00
Anders F Björklund 7f1be76b5c Add podman network create option for bridge vlan
Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2020-12-01 22:33:16 +01:00
Anders F Björklund b1b35707aa Add podman network create option for bridge mtu
Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2020-12-01 22:33:03 +01:00
OpenShift Merge Robot e3313fdd50
Merge pull request #8488 from rhatdan/platform
Add support for --platform
2020-12-01 21:48:40 +01:00
OpenShift Merge Robot b7ff6f0912
Merge pull request #8505 from Luap99/network-labels
podman network label support
2020-12-01 21:43:27 +01:00
OpenShift Merge Robot 1316b2927b
Merge pull request #8519 from rhatdan/man
[CI:DOCS] Document volume mounts of source directories do NOT get created
2020-12-01 15:17:37 +01:00
OpenShift Merge Robot 9ae12f84e8
Merge pull request #8475 from rhatdan/subscriptions
Switch from pkg/secrets to pkg/subscriptions
2020-12-01 14:31:35 +01:00
Daniel J Walsh 969dc227d4
Document volume mounts of source directories do NOT get created
We differ from Docker, in that we do not create the source directory
in a --volume mount if it does not exists.  We return an error.

We do not believe that a `typo` from the user should cause a directory
to be created and silently ignored by Podman.

Fixes: https://github.com/containers/podman/issues/8513

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-12-01 08:28:36 -05:00
OpenShift Merge Robot f6fb297a49
Merge pull request #8517 from rhatdan/man
[CI:DOCS] Fix option names --subuidname and --subgidname
2020-11-30 20:30:32 +01:00
Matthew Heon 0a87dbe353 Fix extra quotation mark in manpages.
Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-11-30 13:54:03 -05:00
OpenShift Merge Robot e2c406f199
Merge pull request #8465 from rhatdan/pull
Document docker transport is the only supported remote transport
2020-11-30 19:52:04 +01:00
Daniel J Walsh 56ad7ac54e
Fix option names --subuidname and --subgidname
Options --subuid and --subgid does not exists

Fixes: https://github.com/containers/podman/issues/8510

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-30 13:29:51 -05:00
Luap99 f3402c73d4 Revert "Allow multiple --network flags for podman run/create"
As described in issue #8507 this commit contains a breaking
change which is not wanted in v2.2.

We can discuss later if we want this in 3.0 or not.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-30 18:10:26 +01:00
Daniel J Walsh 9ba52e8ef0
Document docker transport is the only supported remote transport
The goal is to improve errors when users use the wrong transport
in certain cases we stutter, in other cases we don't give enough
information.

Remove stutters when failing to pull remote images, because of
lack of support.

Fix errors returned by reference.Parse to wrap in image that was being
checked.

Fixes: https://github.com/containers/podman/issues/7116

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-29 06:28:39 -05:00
Paul Holzinger 8494bcb866 podman network label support
Add label support for podman network create. Use the `args`
field in the cni config file to store the podman labels.
Use `podman_labels` as key name and store the labels as
map[string]string.

For reference: https://github.com/containernetworking/cni/blob/master/CONVENTIONS.md#args-in-network-config
https://github.com/containernetworking/cni/blob/spec-v0.4.0/SPEC.md#network-configuration

Example snippet:

```
...
"args": {
	"podman_labels": {
		"key1":"value1",
		"key2":"value2"
	}
}
...
```

Make podman network list support several filters. Supported filters are name,
plugin, driver and label. Filters with different keys work exclusive. Several label
filters work exclusive and the other filter keys are working inclusive.

Also adjust the compat api to support labels in network create and list.

Breaking changes:

- podman network ls -f shortform is used for --filter instead --format
This matches docker and other podman commands (container ps, volume ps)

- libpod network list endpoint filter parameter is removed. Instead the
filters paramter should be used as json encoded map[string][]string.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-28 18:35:43 +01:00
Daniel J Walsh 20160af018
Switch from pkg/secrets to pkg/subscriptions
The buildah/pkg/secrts package was move to
containers/common/pkg/subscriptions.
Switch to using this by default.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-26 07:30:18 -05:00
Daniel J Walsh 88f8d96ed8
Add support for --platform
For docker compatibility we need to support --platform
flag.

podman create --platform
podman run --platform
podman pull --platform

Since we have --override-os and --override-arch already
this can be done just by modifying the client to split
the --platform call into os and arch and then pass those
options to the server side.

Fixes: https://github.com/containers/podman/issues/6244

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-26 06:08:11 -05:00
Qi Wang 05f7c95568 [CI:DOCS] fix misleading save/load usage
Fix the container archive description in podman save/load docs that may lead to misusing the save/load instead of import/export for containers.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-11-24 13:48:30 -05:00
OpenShift Merge Robot 10c2c839c0
Merge pull request #8446 from Luap99/podman-container-ps
Add podman container ps command
2020-11-23 19:09:45 +01:00
Paul Holzinger c901a766fb Add podman container ps command
This command exists in docker and is also in our documentation.

Also remove mentions of `podman ls` or `podman list`. These
commands do not exists in podman or docker.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-23 10:49:26 +01:00
Valentin Rothberg 5d9647a120 clarify ps(1) fallback of `podman top`
Podman top falls back to executing ps(1) inside the container in the
presence of ps-specific flags.  Clarify that a bit more to help users
resolve issues when, for instance, ps(1) isn't installed in the
container.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-11-23 10:35:52 +01:00
OpenShift Merge Robot b30ca110ec
Merge pull request #8410 from Luap99/fix-multiple-networks
Allow multiple --network flags for podman run/create
2020-11-21 02:11:22 +01:00
OpenShift Merge Robot 864fe21ed0
Merge pull request #8406 from jwhonce/issues/8390
Make podman service log events
2020-11-20 18:10:56 +01:00
Paul Holzinger f441190d10 Allow multiple --network flags for podman run/create
We allow a container to be connected to several cni networks
but only if they are listed comma sperated. This is not intuitive
for users especially since the flag parsing allows multiple string
flags but only would take the last value. see: spf13/pflag#72

Also get rid of the extra parsing logic for pods. The invalid options
are already handled by `pkg/specgen`.

A test is added to prevent a future regression.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-20 17:02:48 +01:00
Jhon Honce d8795a36b2 Make podman service log events
* Log endpoint calls at level Info
* Ensure API server started at level Info

Fixes #8390

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-11-19 14:42:56 -07:00
Daniel J Walsh 9770947818
Document containers.conf settings for remote connections
Currently we don't document which end of the podman-remote client server
operations uses the containers.conf.  This PR begins documenting this
and then testing to make sure the defaults follow the rules.

Fixes: https://github.com/containers/podman/issues/7657

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-19 14:48:10 -05:00
OpenShift Merge Robot e239bfa15b
Merge pull request #8391 from baude/networkconnectdisconnect
add network connect|disconnect compat endpoints
2020-11-19 16:54:29 +01:00
baude a3e0b7d117 add network connect|disconnect compat endpoints
this enables the ability to connect and disconnect a container from a
given network. it is only for the compatibility layer. some code had to
be refactored to avoid circular imports.

additionally, tests are being deferred temporarily due to some
incompatibility/bug in either docker-py or our stack.

Signed-off-by: baude <bbaude@redhat.com>
2020-11-19 08:16:19 -06:00
Paul Holzinger e7fd9234cd Align the podman pod ps --filter behavior with podman ps
Filters with the same key work inclusive with the only exception being
`label` which is exclusive. Filters with different keys always work exclusive.

Also update the documentation with the new behavior.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-18 19:31:25 +01:00
OpenShift Merge Robot 770b03a50c
Merge pull request #8363 from AlbanBedel/play-kube-create-only
Add an option to control if play kube should start the pod
2020-11-17 22:40:28 +01:00
Alban Bedel 7ab936eafa Add an option to control if play kube should start the pod
Having play kube start the pod is not always appropriate, one might
for example like to have the pod running as a set of systemd services.
Add a `start` option to the command line and API to control if the pod
should be started or not; it defaults to true for backward
compatibility.

Signed-off-by: Alban Bedel <albeu@free.fr>
2020-11-17 20:00:58 +01:00
TomSweeneyRedHat 586a7d97c2 [CI:DOCS] fix an apostrophe nit in man page
A quick follow up to #8367 to add a missing apostrophe in three
man pages.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-11-17 11:43:03 -05:00
Paul Holzinger 31ceaf7bd4 Explain the relation between --pod and --network
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-17 11:57:28 +01:00
OpenShift Merge Robot 392075631a
Merge pull request #8345 from afbjorklund/volume-filter
Add support for volume ls --filter label=key=value
2020-11-15 15:13:51 +01:00
Anders F Björklund 0dad2499a3 Add support for volume ls --filter label=key=value
Supposed to be able to search for labels with a given value.

Previously it meant searching for label key and label value:

--filter label=key --filter label=value

Add some documentation and integration tests for it as well.

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2020-11-14 20:18:52 +01:00
TomSweeneyRedHat 928e3a65a9 [CI:DOCS] Touch up Podman description in man page menu
The title for the Podman man page on the commands menu was a little
light, adding a few more words to it.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-11-13 20:28:52 -05:00
OpenShift Merge Robot 738d62ea96
Merge pull request #7964 from vrothberg/shortnames
short-name aliasing
2020-11-13 18:28:17 +01:00
OpenShift Merge Robot 2993e97dec
Merge pull request #6442 from Luap99/podman-autocomplete
Shell completion
2020-11-13 16:46:51 +01:00
OpenShift Merge Robot 6d9d9fee30
Merge pull request #8326 from Luap99/fix-build-namespace
Fix namespace flag parsing for podman build
2020-11-13 16:44:45 +01:00
Valentin Rothberg 8e4a42aa42 short-name aliasing
Add support for short-name aliasing.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-11-13 15:40:06 +01:00
TomSweeneyRedHat 6ea13fd872 Change podman build --pull=true to PullIfMissing
One last tweak to the man page for 'build --pull' and after
further testing against Docker, one slight change to the
pull policy.  First I changed `--pull=false` from PullNever
to PullIfMissing.  This matches Docker and will pull the
image if it's not present rather than erroring.  We've
the `--pull-never` option if someone wants the pull to
not do an actual pull and to error if the image isn't
local.

Then for the man page, I'd a much bigger change, in the
initial PR, I've backed most of that out and just
added a tweak.

Hopefully this puts this portion of the pull work behind
us for a while.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-11-12 18:50:31 -05:00
OpenShift Merge Robot 2fc2d4643e
Merge pull request #8316 from rhatdan/codespell
Fix issues found with codespell
2020-11-12 23:29:51 +01:00
Paul Holzinger 79f5aed316 Add podman build --net alias for --network
Fixes #8332

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-12 23:17:42 +01:00
Paul Holzinger f5a2e578eb Maintain consistent order of short and long flag names in docs
Make the order of short and long flag names in the documentation
consistent. Also adjust the man page validaten script to only allow
the `**--long**, **-s**` syntax.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-12 21:46:17 +01:00
Daniel J Walsh a7431003b8
Fix issues found with codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-12 13:37:38 -05:00
Paul Holzinger ae3816614d Install the new shell completion logic
Add a new make target (completion) to generate the shell
completion scripts. This will generate the scripts for bash,
zsh and fish for both podman and podman-remote with `podman completion`.
The scripts are put into the completions directory and can be
installed system wide with `sudo make install.completions`.

This commit replaces the current handwritten scripts for bash and zsh.

The `validate.completion` target has been adjusted to make sure nobody
edits these scripts directly.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-12 11:40:29 +01:00
Paul Holzinger b5d1d89a37 Add shell completion with cobra
Allow automatic generation for shell completion scripts
with the internal cobra functions (requires v1.0.0+).

This should replace the handwritten completion scripts
and even adds support for fish. With this approach it is
less likley that completions and code are out of sync.

We can now create the scripts with
- podman completion bash
- podman completion zsh
- podman completion fish

To test the completion run:
source <(podman completion bash)

The same works for podman-remote and podman --remote and
it will complete your remote containers/images with
the correct endpoints values from --url/--connection.

The completion logic is written in go and provided by the
cobra library. The completion functions lives in
`cmd/podman/completion/completion.go`.

The unit test at cmd/podman/shell_completion_test.go checks
if each command and flag has an autocompletion function set.
This prevents that commands and flags have no shell completion set.

This commit does not replace the current autocompletion scripts.

Closes #6440

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-12 11:38:31 +01:00
Ed Santiago b0601cb34a [CI:DOCS] Restore man page cross-checker
Somewhere in the CIv2 migration we lost the man page vs --help
cross-checker. Add it back, by adding it into the man-page-check
Makefile target; this is part of 'make validate', which is run
in CI even on CI:DOCS PRs.

As happens when CI doesn't run, things broke. Man pages got out
of sync with --help. This PR:

 1) Fixes hack/xref-helpmsgs-manpages to deal with the new
    "Options" (instead of "Flags") form of podman help. #8034
    did part of that, but one of my review comments was
    accidentally left out.

 2) Fixes hack/xref-helpmsgs-manpages to deal with the new
    option syntax in man pages, post- #8292, in which each
    option is preceded by four hashes so as to make them
    HTML <h4> elements with named anchors.

 3) Fixes man pages that #8292 accidentally missed.

 4) Adds man page entries for two flags that got added
    to podman but not documented (pod create --network-alias,
    play kube --log-driver)

Fixes: #8296

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-11-11 08:31:30 -07:00
OpenShift Merge Robot ca672373b5
Merge pull request #8292 from Luap99/doc-anchors
[CI:DOCS] Add anchors for flag names on docs.podman.io
2020-11-10 19:12:58 +01:00
OpenShift Merge Robot ce2ac7d2d2
Merge pull request #8251 from baude/networkaliases
network aliases for container creation
2020-11-10 19:10:59 +01:00
Paul Holzinger 52a8694705 Add anchors for flag names on docs.podman.io
Change the docs markdown so that flag names will be h4 headers.
Sphinx will automatically add anchors to headers. Add css to
make sure the flag names are not to big compared to the text.

The man pages also still renders fine but it looks a bit different.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-11-10 15:27:08 +01:00
OpenShift Merge Robot da01191aa3
Merge pull request #8278 from rhatdan/man1
[CI:DOCS] Add example of fuse-overlay to podman system reset
2020-11-10 14:25:44 +00:00
Daniel J Walsh 0ba2261528
Add example of fuse-overlay to podman system reset
A fairly common mistake users are hitting is running rootless podman without
installing fuse-overlay.  Then they want to reset storage.  Sometimes they
modify storage.conf first and `podman system reset` fails.

This PR attempts to explain how to convert properly.

Fixes: https://github.com/containers/podman/issues/7446

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-10 07:24:13 -05:00
Antonio Ojea e7a72d72fd enable ipv6 network configuration options
enable the ipv6 flag in podman network to be able to create
dual-stack networks for containers.

This is required to be compatible with docker, where --ipv6
really means dual stack.

podman, unlike docker, support IPv6 only containers since
07e3f1bba9.

Signed-off-by: Antonio Ojea <aojea@redhat.com>
2020-11-10 08:34:52 +01:00
baude b7b5b6f8e3 network aliases for container creation
podman can now support adding network aliases when running containers
(--network-alias).  It requires an updated dnsname plugin as well as an
updated ocicni to work properly.

Signed-off-by: baude <bbaude@redhat.com>
2020-11-09 15:08:58 -06:00
Daniel J Walsh c12065401f
Update podman build man page to match buildah bud man page
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-09 15:10:20 -05:00
Kier Davis 71fe822434 podman-pull.1.md: add example for pulling an image by hash
Signed-off-by: Kier Davis <me@kierdavis.com>
2020-11-09 13:18:38 -06:00
Kier Davis c20a70f8c3 podman-import.1.md: fix paragraph formatting
Signed-off-by: Kier Davis <me@kierdavis.com>
2020-11-09 13:18:38 -06:00
Kier Davis f29cda6d92 podman-import.1.md: fix shell syntax
Signed-off-by: Kier Davis <me@kierdavis.com>
2020-11-09 13:18:38 -06:00
OpenShift Merge Robot 4d013caffc
Merge pull request #8249 from marcnuri-forks/fix/doc-typo
[CI:DOCS] fix: podman-system-service doc time is seconds
2020-11-05 16:03:52 +01:00
Marc Nuri 59a3078853 fix: podman-system-service doc time is seconds
Signed-off-by: Marc Nuri <marc@marcnuri.com>
2020-11-05 14:44:25 +01:00
Daniel J Walsh 6ca705bf1a
Add support for mounting external containers
Continue progress on use of external containers.

This PR adds the ability to mount, umount and list the
storage containers whether they are in libpod or not.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-04 13:52:08 -05:00
OpenShift Merge Robot 5b17f58e7e
Merge pull request #8219 from rhafer/rootless-mounts
docs: Mention mounts.conf location for non-root users
2020-11-03 14:34:08 -05:00
OpenShift Merge Robot 8dfbdb561b
Merge pull request #8166 from rhatdan/unbindable
Allow users to mount with unbindable flag
2020-11-02 18:19:39 +01:00
Ralf Haferkamp 448aafc2fd docs: Mention mounts.conf location for non-root users
Signed-off-by: Ralf Haferkamp <rhafer@suse.com>
2020-11-02 16:55:10 +01:00
Daniel J Walsh 3ee44d942e
Add better support for unbindable volume mounts
Allow users to specify unbindable on volume command line

Switch internal mounts to rprivate to help prevent leaks.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-02 07:19:12 -05:00
TomSweeneyRedHat 7841aea292 Match build pull functionality with Docker's
This is a continuation of #8189 and #8085.

When doing a `docker build` command, if the `--pull` command is not specified
or set to `false` the pullOption used is `PullifMissing`.  This causes the
build to pull the image only if it is not present in local storage.  It also will
raise an error if the image is not found in the registry (or the registry is down),
even if the image is present in local storage.

If the `--pull` command IS specified or specified with an argument of `true`, the
build will always pull the image from the registries.  This uses the pullOption
`PullAlways`.  It also will raise an error if the image is not found in the registry,
even if the image is present in local storage.

These changes now brings the pull functionality for `podman build` into line
with `docker build`.

However, I consider this to be a breaking change.  Previously if you did
`podman build --pull`, `podman build` or `podman build --pull = true`, then
the image would be pulled from the registry if there was not an image in
local storage or if the image in the registry was newer than the one in
local storage.  An error would *NOT* be raised if there was not an image in
the registry or the registry was down as long as there was a copy in the local
storage.  An error would be raised if the image could not be retrieved from
both the registry and local storage.  This is the PullOption `PullIfNewer`.

I believe this also differs from what Buildah does at this time but I'm too
beat to chase that down at the moment.

Personally I'd like to use the `PullIfNewer` for at least `--pull` and
`--pull=true` so that you don't get an error if the registry has a network
hiccup and the image is already stored locally.  But this differs from Docker.

I'd like to post scrum about this at our next stand up to make sure we're
all on the same page about the ramifications of this change.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-10-31 20:11:00 -04:00
Qi Wang cab33cfbf6 Remove search limit since pagination support
Remove the search limit check since the c/image v5.6.0 supports pagination and can give result over 100 entries.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-10-30 11:00:40 -04:00
Valentin Rothberg 65a618886e new "image" mount type
Add a new "image" mount type to `--mount`.  The source of the mount is
the name or ID of an image.  The destination is the path inside the
container.  Image mounts further support an optional `rw,readwrite`
parameter which if set to "true" will yield the mount writable inside
the container.  Note that no changes are propagated to the image mount
on the host (which in any case is read only).

Mounts are overlay mounts.  To support read-only overlay mounts, vendor
a non-release version of Buildah.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-10-29 15:06:22 +01:00
OpenShift Merge Robot 7149a7cb39
Merge pull request #8102 from ashley-cui/inspect
Add pod, volume, network to inspect package
2020-10-27 17:04:44 -04:00
Ashley Cui 61deec451f Add pod, volume, network to inspect package
podman inspect only had the capabilities to inspect containers and images. if a user wanted to inspect a pod, volume, or network, they would have to use `podman network inspect`, `podman pod inspect` etc. Docker's cli allowed users to inspect both volumes and networks using regular inspect, so this commit gives the user the functionality

If the inspect type is not specified using --type, the order of inspection is:

containers
images
volumes
networks
pods

meaning if container that has the same name as an image, podman inspect would return the container inspect.

To avoid duplicate code, podman network inspect and podman volume inspect now use the inspect package as well. Podman pod inspect does not because podman pod inspect returns a single json object while podman inspect can return multiple)

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-10-27 14:42:54 -04:00
OpenShift Merge Robot 95f3ec7b08
Merge pull request #8133 from xordspar0/cpu-limit-details
[CI:DOCS] Add more details about how CPU limits work
2020-10-27 13:26:53 -04:00
Jordan Christiansen f393d32e96 Document how to enable CPU limit delegation
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-27 10:05:43 -05:00
Jordan Christiansen fa73b929e0 Add more details about how CPU limits work
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-27 09:32:41 -05:00
baude c593e49701 filter events by labels
adding the ability to filter evens by the container labels.  this requires that container labels be added to the events data being recorded and subsequently read.

Signed-off-by: baude <bbaude@redhat.com>
2020-10-23 12:07:34 -05:00
Daniel J Walsh 15345ce4c3
podman create doesn't support creating detached containers
Detached containers and detach keys are only created with the podman run, i
exec, and start commands.  We do not store the detach key sequence or the
detach flags in the database, nor does Docker. The current code was ignoreing
these fields but documenting that they can be used.

Fix podman create man page and --help output to no longer indicate that
--detach and --detach-keys works.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 21:00:50 -04:00
OpenShift Merge Robot a1b942ff40
Merge pull request #8034 from rhatdan/options
Switch help messages from using [flags] to [options]
2020-10-21 12:59:42 -04:00
Daniel J Walsh 980b1e87d4
Switch use of Flags to Options
Want to have man pages match commands, since we have lots of printed
man pages with using Options, we will change the command line to use
Options in --help.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 08:37:57 -04:00
Daniel J Walsh 3f265e91f4
Fix handling and documentation of podman wait --interval
In older versions of podman, we supported decimal numbers defaulting
to microseconds.  This PR fixes to allow users to continue to specify
only digits.

Also cleaned up documentation to fully describe what input for --interval flag.

Finally improved testing on podman wait to actually make sure the command succeeded.
Fixed tests to work on podman-remote.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-21 06:25:36 -04:00
Daniel J Walsh 3d2ad0f97a
--tls-verify and --authfile should work for all remote commands
These options are now fully supported in the remote API and should no
longer be hidden and/or documented as non supported.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-19 05:55:11 -04:00
OpenShift Merge Robot 7ffcab0854
Merge pull request #7908 from rhatdan/diff
fix podman container exists and diff for storage containers
2020-10-19 02:49:27 -04:00
Jordan Christiansen 88bc133dac Make man page headings more consistent
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-16 15:06:33 -05:00
Jordan Christiansen 579a10157d Fix podman-run man page heading
Sharing IPC is meant to be an example under the Examples heading, not a
new section.

Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-15 09:51:25 -05:00
Daniel J Walsh db23e12611
Add support for external container
External containers are containers created outside of Podman.
For example Buildah and CRI-O Containers.

$ buildah from alpine
alpine-working-container
$ buildah run alpine-working-container touch /test
$ podman container exists --external alpine-working-container

$ podman container diff alpine-working-container
C /etc
A /test

Added --external flag to refer to external containers, rather then --storage.

Added --external for podman container exists and modified podman ps to use
--external rather then --storage.  It was felt that --storage would confuse
the user into thinking about changing the storage driver or options.

--storage is still supported through the use of aliases.

Finally podman contianer diff, does not require the --external flag, since it
there is little change of users making the mistake, and would just be a pain
for the user to remember the flag.

podman container exists --external is required because it could fool scripts
that rely on the existance of a Podman container, and there is a potential
for a partial deletion of a container, which could mess up existing users.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-15 09:51:31 -04:00
Daniel J Walsh 22c8270135
fix podman container exists and diff for storage containers
Current these commands only check if a container exists in libpod. With
this fix, the commands will also check if they are in containers/storage.

This allows users to look at differences within a buildah or CRI-O container.

Currently buildah diff does not exists, so this helps out in that situation
as well as in CRI-O since the cri does not implement a diff command.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-15 09:51:15 -04:00
Ashley Cui 8f603a76f6 Restore --format: stats & pod ps
Restore formatting for stats
Fix formatting for pod ps

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-10-13 09:08:13 -04:00
Qi Wang 66798e993a Search repository tags using --list-tags
For fix of BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1684263
Add --list-tags to podman search to return a table the repository tags.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-10-09 11:49:46 -04:00
OpenShift Merge Robot fa01b838a6
Merge pull request #7891 from rhatdan/rm
This PR allows users to remove external containers directly
2020-10-09 10:55:15 -04:00
Daniel J Walsh fea78d5530
This PR allows users to remove external containers directly
Currenly if a user specifies the name or ID of an external storage
container, we report an error to them.

buildah from scratch
working-container-2
podman rm working-container-2
Error: no container with name or ID working-container-2 found: no such container

Since the user specified the correct name and the container is in storage we
force them to specify --storage to remove it. This is a bad experience for the
user.

This change will just remove the container from storage.  If the container
is known by libpod, it will remove the container from libpod as well.

The podman rm --storage option has been deprecated, and removed from docs.

Also cleaned documented options that are not available to podman-remote.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-09 06:06:08 -04:00
OpenShift Merge Robot 953e16f31a
Merge pull request #7910 from EduardoVega/7567-podman-configmaps
Enable k8s configmaps as flags for play kube
2020-10-09 06:01:50 -04:00
Eduardo Vega 39dde9bcb7 Enable k8s configmaps as flags for play kube
Signed-off-by: Eduardo Vega <edvegavalerio@gmail.com>
2020-10-07 08:54:24 -06:00
Daniel J Walsh ccc5bc167f
Attempt to turn on some more remote tests
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-07 10:19:08 -04:00
Daniel J Walsh 348f2df0c0
Support max_size logoptions
Docker supports log-opt max_size and so does conmon (ALthough poorly).
Adding support for this allows users to at least make sure their containers
logs do not become a DOS vector.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-05 17:51:45 -04:00
OpenShift Merge Robot 01c7ae6407
Merge pull request #7856 from rhatdan/root
podman-remote does not support most of the global flags
2020-10-02 16:37:43 -04:00
Daniel J Walsh b3f17936aa
podman-remote does not support most of the global flags
podman-remote --help is showing a bunch of global flags that it
does not support

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-02 06:32:17 -04:00
Giuseppe Scrivano 4f7da3274b
spec: open fuse with --device .*/fuse
If the container uses the /dev/fuse device, attempt to load the fuse
kernel module first so that nested containers can use it.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1872240

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-10-02 10:12:58 +02:00
Daniel J Walsh 22474095ab
Fix handling of remove of bogus volumes, networks and Pods
In podman containers rm and podman images rm, the commands
exit with error code 1 if the object does not exists.

This PR implements similar functionality to volumes, networks, and Pods.

Similarly if volumes or Networks are in use by other containers, and return
exit code 2.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-29 15:52:43 -04:00
OpenShift Merge Robot 63f0bb93f8
Merge pull request #7783 from ashley-cui/slirp
Add support for slirp network for pods
2020-09-29 15:34:37 +00:00
Ashley Cui b6176d8987 Add support for slirp network for pods
flag --network=slirp4netns[options] for root and rootless pods

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-09-25 21:34:23 -04:00
Valentin Rothberg 1f66a827e8 remote load: check if input is directory
The remote client does not support loading directories yet.  To prevent
confusing error messages and to make the behaviour more explicit, check
if the input points to a directory and throw an error if needed.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-09-24 14:40:54 +02:00
Paul Holzinger 44d7270a34 Fix incorrect parsing of create/run --volumes-from
Add a bunch of tests to ensure that --volumes-from
works as expected.

Also align the podman create and run man page.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-09-20 22:49:09 +02:00
Qi Wang 9258dfca79 fix a typo of login.1.md
fix a typo of login.1.md and link containers-registries.conf(5).

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-09-17 16:45:13 -04:00
OpenShift Merge Robot 46280d6aba
Merge pull request #7620 from rhatdan/DOCKER_HOST
Document the connection path for podman --remote
2020-09-15 19:54:47 +02:00
Paul Holzinger 685ef847dd podman wait accept args > 1
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-09-15 00:02:45 +02:00
Daniel J Walsh 48927f186d
Document the connection path for podman --remote
Issue: GH-7010
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-14 17:06:24 -04:00
Daniel J Walsh 08cc87636e
Vendor in containers/buildah 1.16.1
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-11 13:37:37 -04:00
OpenShift Merge Robot d7db1da789
Merge pull request #7600 from rhatdan/codespell
Fix up errors found by codespell
2020-09-11 11:30:05 -04:00
OpenShift Merge Robot 881f2dfe92
Merge pull request #7403 from QiWang19/runtime-flag
Add global options --runtime-flags
2020-09-11 11:00:11 -04:00
Daniel J Walsh 526f01cdf5
Fix up errors found by codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-11 06:14:25 -04:00
Qi Wang 8467cd3d2e Add auth.json(5) link to login/logout docs
Add auth.json(5) link to login/logout docs. Provide more details about the usage of auth.json by podman-login.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-09-10 14:50:19 -04:00
OpenShift Merge Robot fc70360a3b
Merge pull request #7576 from openSUSE/manifest-add-extend-flags
Extend the flags of the `manifest add` command
2020-09-10 12:51:21 -04:00
OpenShift Merge Robot 49cb0edd65
Merge pull request #7290 from rhatdan/external
Show c/storage (Buildah/CRI-O) containers in ps
2020-09-09 12:15:46 -04:00
Flavio Castelli 4caa8b31d7
Update man page of `manifest add`
Ensure all the flags are covered by the man page.

Signed-off-by: Flavio Castelli <fcastelli@suse.com>
2020-09-09 12:44:15 +02:00
Daniel J Walsh 581afbb86f
Show c/storage (Buildah/CRI-O) containers in ps
The `podman ps --all` command will now show containers that
are under the control of other c/storage container systems and
the new `ps --storage` option will show only containers that are
in c/storage but are not controlled by libpod.

In the below examples, the '*working-container' entries were created
by Buildah.

```
podman ps -a
CONTAINER ID  IMAGE                             COMMAND  CREATED       STATUS                   PORTS  NAMES
9257ef8c786c  docker.io/library/busybox:latest  ls /etc  8 hours ago   Exited (0) 8 hours ago          gifted_jang
d302c81856da  docker.io/library/busybox:latest  buildah  30 hours ago  storage                         busybox-working-container
7a5a7b099d33  localhost/tom:latest              ls -alF  30 hours ago  Exited (0) 30 hours ago         hopeful_hellman
01d601fca090  localhost/tom:latest              ls -alf  30 hours ago  Exited (1) 30 hours ago         determined_panini
ee58f429ff26  localhost/tom:latest              buildah  33 hours ago  storage                         alpine-working-container

podman ps --external
CONTAINER ID  IMAGE                             COMMAND  CREATED       STATUS    PORTS  NAMES
d302c81856da  docker.io/library/busybox:latest  buildah  30 hours ago  external         busybox-working-container
ee58f429ff26  localhost/tom:latest              buildah  33 hours ago  external         alpine-working-container

```
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-09-09 06:10:02 -04:00
Valentin Rothberg 7fea46752c support multi-image (docker) archives
Support loading and saving tarballs with more than one image.
Add a new `/libpod/images/export` endpoint to the rest API to
allow for exporting/saving multiple images into an archive.

Note that a non-release version of containers/image is vendored.
A release version must be vendored before cutting a new Podman
release.  We force the containers/image version via a replace in
the go.mod file; this way go won't try to match the versions.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-09-08 08:47:19 +02:00
Qi Wang 6b0864434a Add global options --runtime-flags
Add global options --runtime-flags for setting options to container runtime.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-09-04 15:04:36 -04:00
Paul Holzinger ebfea2f4f8 APIv2 add generate systemd endpoint
Add support for generating systemd units
via the api and podman-remote.

Change the GenerateSystemdReport type to return the
units as map[string]string with the unit name as key.

Add `--format` flag to `podman generate systemd`
to allow the output to be formatted as json.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-09-02 22:06:19 +02:00
Daniel J Walsh 3c6603a2f8
Add support for variant when pulling images
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-08-28 09:36:11 -04:00
Daniel J Walsh f49b98c610
Document override-arch and override-os
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-08-28 09:35:13 -04:00
Paul Holzinger 7dce7a64ca [CI:DOCS] Update podman-remote docs
Add support for multi level subcommands.
e.g. podman system connection.

Update the flags and add note for containers.conf.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-08-27 20:03:06 +02:00
OpenShift Merge Robot 3a9d5248ac
Merge pull request #7364 from TomSweeneyRedHat/dev/tsweeney/exposeport
Note port publishing needs in pods for create/run
2020-08-26 09:16:06 -04:00
Daniel J Walsh 52b14a2218
Update vendor of buildah to latest code
Fix podman build man pages to match buildah functionality.

Also document .dockerignore formatted files.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-08-25 08:13:28 -04:00
Giuseppe Scrivano d856210ea8
podman: add option --cgroup-conf
it allows to manually tweak the configuration for cgroup v2.

we will expose some of the options in future as single
options (e.g. the new memory knobs), but for now add the more generic
--cgroup-conf mechanism for maximum control on the cgroup
configuration.

OCI specs change: https://github.com/opencontainers/runtime-spec/pull/1040

Requires: https://github.com/containers/crun/pull/459

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-08-21 19:06:05 +02:00
Daniel J Walsh eb9e8fc558 Add support for --connection
* override --url and/or --identity fields from containers.conf
* --connection flag has higher precedence than ActiveService from
containers.conf. Which is set via podman system connection default
* Add newline to error message printed on stderr
* Added --connection to bash completion and documentation
* Updated bindings to query server in case of no path or /

Closes #jira-991
Fixes #7276

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Jhon Honce <jhonce@redhat.com>

Squashed commits to work around CI issue
2020-08-19 08:37:44 -07:00
TomSweeneyRedHat 65b8bf795b Note port publishing needs in pods for create/run
Add notes to the podman-create and podman-run man pages
to note that ports do not need to be published and should not
be, for containers that will be part of a pod.

Addresses: #6769

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-08-19 09:21:31 -04:00
Paul Holzinger 02e0d4ab38 fix podman create/run UTS NS docs
Add better error message when using `--pod` and `--hostname`.
Improve the docs to better explain the uts hostname relation.
Add more valid options for the `--uts` flag.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-08-18 18:00:49 +02:00
Giuseppe Scrivano feff414ae1
run, create: add new security-opt proc-opts
it allows to customize the options passed down to the OCI runtime for
setting up the /proc mount.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-08-12 23:46:38 +02:00
Adis Hamzić 95e73c65ae Add support for setting the CIDR when using slirp4netns
This adds support for the --cidr parameter that is supported
by slirp4netns since v0.3.0. This allows the user to change
the ip range that is used for the network inside the container.

Signed-off-by: Adis Hamzić <adis@hamzadis.com>
2020-08-12 17:30:13 +02:00
Christian Heimes 1ae8d2f096 Enable systemd mode for /usr/local/sbin/init
Podman 1.6.2 changed systemd mode auto-detection from commands ending in
``init`` to hard-coded paths ``/sbin/init`` and ``/usr/sbin/init``. This
broke FreeIPA container. ``podman run`` and ``podman create`` now
activate systemd mode when the command is ``/usr/local/sbin/init``.

Fixes: https://github.com/containers/podman/issues/7287
Signed-off-by: Christian Heimes <cheimes@redhat.com>
2020-08-11 11:41:14 +02:00
Daniel J Walsh 8f346c30c3
Add missing pages for docs.podman.io
Lots of references to man pages missing from docs.podman.io

Also fix sort order in man pages and other documents.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-08-10 19:35:23 -04:00
OpenShift Merge Robot 95e2e15a3f
Merge pull request #7216 from 5eraph/master
support outbound-addr
2020-08-09 07:45:20 -04:00
TomSweeneyRedHat 5aaf6788f9 [CI:DOCS] BZ1860126 - Fix userns defaults in run man page
Addresses the multiple "default" userns values found
in the podman-run(1) man page:  http://docs.podman.io/en/latest/markdown/podman-run.1.html.

This in response to: https://bugzilla.redhat.com/show_bug.cgi?id=1860126
which this PR wil fix.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-08-07 15:42:13 -04:00
5eraph e6a5a56aa6 changes to support outbound-addr
Fixes #6064

Signed-off-by: Bohumil Cervenka <5eraph@protonmail.com>
2020-08-07 19:34:45 +02:00
OpenShift Merge Robot 919e5d4d6e
Merge pull request #7209 from giuseppe/support-mount-devpts
podman: support --mount type=devpts
2020-08-04 12:14:47 +02:00
Giuseppe Scrivano 976e364a97
podman: support --mount type=devpts
Allow to create a devpts mount.

This is useful for containers that bind mount /dev/ from the host but
at the same time want to create a terminal.

It can be used as:

podman run -v /dev:/dev --mount type=devpts,target=/dev/pts ...

Closes: https://github.com/containers/podman/issues/6804

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-08-03 23:05:10 +02:00
Matthew Heon 7bedff9635 Do not set host IP on ports when 0.0.0.0 requested
Docker and CNI have very different ideas of what 0.0.0.0 means.
Docker takes it to be 0.0.0.0/0 - that is, bind to every IPv4
address on the host. CNI (and, thus, root Podman) take it to mean
the literal IP 0.0.0.0. Instead, CNI interprets the empty string
("") as "bind to all IPs".

We could ask CNI to change, but given this is established
behavior, that's unlikely. Instead, let's just catch 0.0.0.0 and
turn it into "" when we parse ports.

Fixes #7014

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-08-03 14:32:16 -04:00
Paul Holzinger c90ad68fa1 Change recommended systemd unit path for root.
`/usr/lib/systemd/system` should only be used by the package manager
administrators should use: `/etc/systemd/system` or
`/usr/local/lib/systemd/system`

see: man systemd.unit

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-08-01 14:55:48 +02:00
OpenShift Merge Robot 7f0c0941e8
Merge pull request #6851 from rhatdan/mount
Add podman image mount
2020-07-29 04:30:01 -04:00
Ed Santiago 409d07a181 System tests: add environment, volume tests
Tests for #7094, in which symlinks in a volume would
cause chown errors and nonrunnable containers.

Tests for environment variable precedence, now
include --env-host and proxy settings

Fix a bug caught by covscan in helpers.t ('source'
path would fail if path included spaces).

Fix podman-run man page: it was incorrect in stating
precedence between in-image environment and --env-host.

Fixes: #7099

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-28 09:22:22 -06:00
Daniel J Walsh 6979d140f1
Add podman image mount
There are many use cases where you want to just mount an image
without creating a container on it. For example you might want
to just examine the content in an image after you pull it for
security analysys.  Or you might want to just use the executables
on the image without running it in a container.

The image is mounted readonly since we do not want people changing
images.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-28 10:27:44 -04:00
OpenShift Merge Robot 288ebec6e7
Merge pull request #6909 from rhatdan/podman
Switch all references to github.com/containers/libpod -> podman
2020-07-28 10:12:55 -04:00
OpenShift Merge Robot 14f8085016
Merge pull request #7079 from rhatdan/tuturial
update configuration for rootless podman
2020-07-28 14:58:52 +02:00
Daniel J Walsh a5e37ad280
Switch all references to github.com/containers/libpod -> podman
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-28 08:23:45 -04:00
Daniel J Walsh 8f7ed50cb2
Cleanup handling of podman mount/unmount
We should default to the user name unmount rather then the internal
name of umount.

Also User namespace was not being handled correctly. We want to inform
the user that if they do a mount when in rootless mode that they have
to be first in the podman unshare state.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-27 16:53:02 -04:00
Daniel J Walsh 7d0a5fc0da
update configuration for rootless podman
I updated the configuration part of the tutorial on rootless podman. I added the
 order in which configuration files are read in and a hint, how users can create
 default configuration in the home directories.

Closes #6777

Signed-off-by: Niklas Netter <niknett@gmail.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-25 05:41:31 -04:00
OpenShift Merge Robot 22b1483902
Merge pull request #6938 from jwhonce/wip/n-connection
Refactor podman system connection
2020-07-24 17:01:40 +02:00
OpenShift Merge Robot d9244761e4
Merge pull request #7041 from jkonowitch/reset-docs
Improve Docs for `podman system reset`
2020-07-24 11:00:50 +02:00
Erik Sjölund c10d5a5ebe
Fix exit code example in podman-run.1.md
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2020-07-23 20:51:37 +02:00
Jeffrey Konowitch 65bcc2ba5f Update system.rst
Signed-off-by: Jeffrey Konowitch <jeff.konowitch@onepeloton.com>

Update podman-system-reset.1.md

Signed-off-by: Jeffrey Konowitch <jeff.konowitch@onepeloton.com>

PR feedback

Signed-off-by: Jeffrey Konowitch <jeff.konowitch@onepeloton.com>

remove errant punctuation

Signed-off-by: Jeffrey Konowitch <jeff.konowitch@onepeloton.com>
2020-07-23 12:38:24 -04:00
Jhon Honce 964d3300c6 [WIP] Refactor podman system connection
* Add support to manage multiple connections
  * Add connection
  * Remove connection
  * Rename connection
  * Set connection as default
  * Add markdown/man pages
* Fix recursion in hack/xref-helpmsgs-manpages

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-07-22 15:25:44 -07:00
OpenShift Merge Robot 59bad8bf71
Merge pull request #7006 from ashley-cui/umask
Add --umask flag for create, run
2020-07-22 05:40:32 -04:00
Ashley Cui d4d3fbc155 Add --umask flag for create, run
--umask sets the umask inside the container
Defaults to 0022

Co-authored-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Ashley Cui <acui@redhat.com>
2020-07-21 14:22:30 -04:00
OpenShift Merge Robot e5b3563a89
Merge pull request #7036 from rhatdan/docker
Add noop function disable-content-trust
2020-07-21 13:43:58 -04:00
OpenShift Merge Robot 5abf33de32
Merge pull request #7028 from xordspar0/patch-1
docs: Fix formatting mistake
2020-07-21 13:16:05 -04:00
Jordan Christiansen 111a1fe082 Document proxy env var precedence
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-07-21 10:11:05 -05:00
Daniel J Walsh fc52aa6704
Add noop function disable-content-trust
People who use docker scripts with Podman see failures
if they use disable-content-trust flag.  This flag already
existed for podman build, adding it to pull/push/create/run.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-21 10:18:27 -04:00
Jordan Christiansen 25105b91db docs: Clarify how env var overriding works
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-07-21 08:50:55 -05:00
Jordan Christiansen 16e603147f docs: Fix formatting mistake
Part of this section was a code block, and part of it was absorbed into
the preceding normal paragraph.

Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-07-20 20:27:58 -05:00
Daniel J Walsh 841eac0af6
Switch references from libpod.conf to containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-20 15:09:54 -04:00
Qi Wang 020d81f113 Add support for overlay volume mounts in podman.
Add support -v for overlay volume mounts in podman.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-07-20 09:48:55 -04:00
OpenShift Merge Robot d86bae2a01
Merge pull request #6965 from giuseppe/followup-pr6324
allow switching of port-forward approaches in rootless/using slirp4netns
2020-07-17 04:44:49 -04:00
Giuseppe Scrivano d35d8125bf
docs: document the new slirp4netns options
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-07-16 22:37:28 +02:00
Jhon Honce 74ca2716a8 Fix `podman system connection` panic
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-07-15 14:20:54 -07:00
Ashley Cui d419856009 Fix & add notes regarding problematic language in codebase
Podman is committed to inclusivity, a core value of open source. Historically, there have been technology terms that are problematic and divisive, and should be changed. We are currently taking time to audit our repository in order to eliminate such terminology, and replace it with more inclusive terms. We are starting where we can, with our own code, comments, and documentation. However, such terms may be used in dependencies, and must be used in our repositories at the current moment for compatibility. Podman will change these terms in our repo as soon as new and better terminology is available to us via our dependencies.

For more information: https://www.redhat.com/en/blog/making-open-source-more-inclusive-eradicating-problematic-language?sc_cid=701600000011gf0AAA

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-07-15 09:13:15 -04:00
Sagi Shnaidman 6fe9bd0f7a docs: user namespace can't be shared in pods
When running "podman pod create --share user" the errors appears:
Error: User sharing functionality not supported on pod level
Fix docs and remove 'user' from shareable parameters.

Signed-off-by: Sagi Shnaidman <sshnaidm@redhat.com>
2020-07-14 20:05:40 +03: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
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
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
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
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
Ashley Cui 9a1543caec Add --tz flag to create, run
--tz flag sets timezone inside container
Can be set to IANA timezone as well as `local` to match host machine

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-07-02 13:30:59 -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
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
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 6ac009d530
Merge pull request #6666 from giuseppe/conmon-delegate
podman: add new cgroup mode split
2020-06-29 10:53:41 -04: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
Giuseppe Scrivano 6ee5f740a4
podman: add new cgroup mode split
When running under systemd there is no need to create yet another
cgroup for the container.

With conmon-delegated the current cgroup will be split in two sub
cgroups:

- supervisor
- container

The supervisor cgroup will hold conmon and the podman process, while
the container cgroup is used by the OCI runtime (using the cgroupfs
backend).

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-06-25 17:16:12 +02:00
Ed Santiago c6090c290e Docs: consistency between man / --help
New functionality in hack/man-page-checker: start cross-
referencing the man page 'Synopsis' line against the
output of 'podman foo --help'. This is part 1, flag/option
consistency. Part 2 (arg consistency) is too big and will
have to wait for later.

flag/option consistency means: if 'podman foo --help'
includes the string '[flags]' in the Usage message,
make sure the man page includes '[*options*]' in its
Synopsis line, and vice-versa. This found several
inconsistencies, which I've fixed.

While doing this I realized that Cobra automatically
includes a 'Flags:' subsection in its --help output
for all subcommands that have defined flags. This
is great - it lets us cross-check against the
usage synopsis, and make sure that '[flags]' is
present or absent as needed, without fear of
human screwups. If a flag-less subcommand ever
gets extended with flags, but the developer forgets
to add '[flags]' and remove DisableFlagsInUseLine,
we now have a test that will catch that. (This,
too, caught two instances which I fixed).

I don't actually know if the new man-page-checker
functionality will work in CI: I vaguely recall that
it might run before 'make podman' does; and also
vaguely recall that some steps were taken to remedy
that.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-06-24 10:39:10 -06:00
Valentin Rothberg 1c6c12581c podman untag: error if tag doesn't exist
Throw an error if a specified tag does not exist.  Also make sure that
the user input is normalized as we already do for `podman tag`.

To prevent regressions, add a set of end-to-end and systemd tests.

Last but not least, update the docs and add bash completions.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-24 15:34:46 +02:00
Peter Oliver 4e85acf052 Fix typo in manpage for `podman auto update`.
Signed-off-by: Peter Oliver <git@mavit.org.uk>
2020-06-23 20:15:37 +01:00
Jhon Honce 7377e578a9 V2 podman system connection
* Implement command
* Refactor podman-remote to pull from containers.conf by default
* podman-remote defaults to --remote being true
* Write podman-system-connection.1.md

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-06-23 08:18:53 -07:00
OpenShift Merge Robot 9e37fd43e4
Merge pull request #6625 from QiWang19/fd
Add --preservefds to podman run
2020-06-23 10:00:21 +02:00
Gavin Campbell d2d4523be0 "pod" was being truncated to "po" in the names of the generated systemd unit files.
s/po/pod

Signed-off-by: Gavin Campbell <gavin@gavincampbell.dev>
2020-06-21 18:19:19 +01:00
Yuan-Hao Chen f18d2751f6
correct the absolute path of `rm` executable
Signed-off-by: Yuan-Hao Chen <yhchen0906@gmail.com>
2020-06-19 22:23:35 +08:00
Qi Wang f61a7f25a8 Add --preservefds to podman run
Add --preservefds to podman run. close https://github.com/containers/libpod/issues/6458

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-06-19 09:40:13 -04:00
Ashley Cui 4dc934080b Fix remote docs
Fix renaming bug in remote-docs.sh
Remove mentions of 'remote' in windows and mac dos
Remove podman-remote.conf.5

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-06-18 12:13:46 -04:00
OpenShift Merge Robot 7b00e49f65
Merge pull request #6560 from mheon/fix_exec_logdriver
Do not share container log driver for exec
2020-06-17 17:17:27 -04:00
Matthew Heon 6f1440a3ec Add support for the unless-stopped restart policy
We initially believed that implementing this required support for
restarting containers after reboot, but this is not the case.
The unless-stopped restart policy acts identically to the always
restart policy except in cases related to reboot (which we do not
support yet), but it does not require that support for us to
implement it.

Changes themselves are quite simple, we need a new restart policy
constant, we need to remove existing checks that block creation
of containers when unless-stopped was used, and we need to update
the manpages.

Fixes #6508

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-06-17 11:16:12 -04:00
Matthew Heon 0e171b7b33 Do not share container log driver for exec
When the container uses journald logging, we don't want to
automatically use the same driver for its exec sessions. If we do
we will pollute the journal (particularly in the case of
healthchecks) with large amounts of undesired logs. Instead,
force exec sessions logs to file for now; we can add a log-driver
flag later (we'll probably want to add a `podman logs` command
that reads exec session logs at the same time).

As part of this, add support for the new 'none' logs driver in
Conmon. It will be the default log driver for exec sessions, and
can be optionally selected for containers.

Great thanks to Joe Gooch (mrwizard@dok.org) for adding support
to Conmon for a null log driver, and wiring it in here.

Fixes #6555

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-06-17 11:11:46 -04:00
Jhon Honce 2e22e18afb Add deprecated message to varlink command
* Remove varlink references from the man pages
* Fix signature for extractTarFile()

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-06-15 11:41:57 -07:00
Valentin Rothberg fe488b5f11 pod create --replace
Add a `--replace` flag to the `pod create` command.  If another pod with
the same name already exists, it will be replaced and removed.

Adding this flag is motivated by #5485 to make running Podman in systemd
units (or any other scripts/automation) more robust.  In case of a
crash, a pod may not be removed by a sytemd unit anymore.  The
`--replace` flag allows for supporting crashes.

Note that the `--replace` flag does not require the `--name` flag to be
set, so it can be set unconditionally in `podman generate systemd`.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-15 15:55:55 +02:00
Valentin Rothberg fa3b8a75c4 {create,run} --replace
Add a `--replace` flag to the `container {create,run}` commands.
If another container with the same name already exists, it will
be replaced and removed.

Adding this flag is motivated by #5485 to make running Podman in systemd
units (or any other scripts/automation) more robust.  In case of a
crash, a container may not be removed by a sytemd unit anymore.  The
`--replace` flag allows for supporting crashes.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-15 15:53:51 +02:00
OpenShift Merge Robot 1408dbfa4d
Merge pull request #6551 from QiWang19/doc-check-auth
update document login see config.json as valid
2020-06-11 14:39:50 -04:00
Qi Wang b1f8aac056 update document login see config.json as valid
Update the document, pointing out podman credentials from $HOME/.docker/config.json can be used by Podman.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-06-11 13:24:21 -04:00
Valentin Rothberg 139f82933d docs: create/run fix --pod-id-file description
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-11 11:01:13 +02:00
Valentin Rothberg 8d8746adee generate systemd: create pod template
Create a new template for generating a pod unit file. Eventually, this
allows for treating and extending pod and container generation
seprately.

The `--new` flag now also works on pods.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-11 11:01:13 +02:00
Valentin Rothberg 402c68b41d pod create: add `--infra-conmon-pidfile`
Add an `--infra-conmon-pidfile` flag to `podman-pod-create` to write the
infra container's conmon process ID to a specified path.  Several
container sub-commands already support `--conmon-pidfile` which is
especially helpful to allow for systemd to access and track the conmon
processes.  This allows for easily tracking the conmon process of a
pod's infra container.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-11 11:01:13 +02:00
Valentin Rothberg cf89bb6711 container-{create,run}: add `--pod-id-file`
Allow containers to join an existing pod via the `--pod-id-file` which
is already supported by a number of `podman-pod` subcommands.  Also add
tests to make sure it's working and to prevent future regressions.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-11 11:01:13 +02:00
Valentin Rothberg 7d71d24440 podman-pod{rm,start,stop}: support --pod-id-file
Support the `--pod-id-file` flag in the rm, start and stop pod commands.
This completes the already support flag in pod-create and is another
prerequisite for generating generic systemd unit files for pods.

Also add completions, docs and tests.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-11 11:01:13 +02:00
Valentin Rothberg 99cbe59917 podman-events: clarify streaming behaviour
Unless `--since` or `--until` is specified, `podman events` will stream
new events.  Clarify this behavior in the `--help` message and man page
to avoid confusion.

Fixes: #6536
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-06-10 11:09:12 +02:00
Brent Baude d023909c0b add socket information to podman info
this is step 1 to self-discovery of remote ssh connections.  we add a remotesocket struct to info to detect what the socket path might be.

Co-authored-by: Jhon Honce <jhonce@redhat.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-06-03 15:20:37 -05:00
Jhon Honce cbca625328 V2 Add support for ssh authentication methods
* podman --remote ssh://<user>:<password>@<host>:<port><path>
* podman --remote ssh://<user>:<password>@<host>:<port><path> \
  --identity <path> --passphrase <phrase>
* ssh-add <key>
  podman --remote ssh://<user>@<host><path>
* Fix `podman help` to run even if podman missing components
* Prompt for passphrase on stdin IFF key is protected and passphrase
  not given via any other configuration

* cobra flags do not support optional value flags therefore refactored
  --remote to be a boolean and --url will now contain the URI to Podman
  service

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-06-03 09:54:39 -07:00
Matthew Heon eb9788db23
Update man pages for --ip with CNI networks
Originally, we did not allow this, and the manpage reflects that.
We added support with 1.7.0, but did not update the manpage. Fix
the manpages so they are once again accurate.

Signed-off-by: Matthew Heon <mheon@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-31 06:02:34 -04:00
OpenShift Merge Robot 78c38460eb
Merge pull request #6380 from mheon/fix_mount_readonly
Add support for `readonly` option to --mount
2020-05-29 08:26:05 -04:00
Boaz Shuster 1f8a78747a Add --format to pod inspect
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2020-05-27 09:48:38 +03:00
Matthew Heon e26f9eda64 Add support for `readonly` option to --mount
This is just an alias to the `ro` option, but it's already in the
manpages (and Docker) so we might as well add support for it.

Fixes #6379

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-26 16:05:11 -04:00
OpenShift Merge Robot 1077d2d0b7
Merge pull request #6321 from Luap99/podman-generate-systemd-unit-prefix
Allow to change the generated systemd unit name prefix
2020-05-25 06:46:17 -04:00
Daniel J Walsh 35567e706b
Attempt to turn on additional build tests
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-22 12:55:23 -04:00
Luap99 e704f1362a Added new flags to 'podman generate systemd' to change the unit name prefix
--container-prefix <string> - default 'container'
Systemd unit name prefix for containers

--pod-prefix <string> - default 'pod'
Systemd unit name prefix for pods

--separator <string> - default '-'
Systemd unit name seperator between name/id and prefix

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2020-05-22 18:38:39 +02:00
Daniel J Walsh 7b188f7b5b
podman version --format ... was not working
This patch fixes the podman --version --format command.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-21 16:31:34 -04:00
Daniel J Walsh 17171aecf4
Display human build date in podman info
Currently we are displaying the Seconds since EPOCH
this will change to displaying date, similar to `podman version`

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-21 16:31:34 -04:00
Daniel J Walsh 2e7d2c2f47
Start testing with cross compilation
Add missing man page links for podman-image-search and
podman-image-diff

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-21 11:58:15 -04:00
OpenShift Merge Robot a852afab2f
Merge pull request #6270 from mheon/detached_exec
Implement detached exec
2020-05-21 16:02:52 +02:00
OpenShift Merge Robot 588df90397
Merge pull request #6161 from kunalkushwaha/network-inspect
`--format` and `--filter` options for `network ls` and `network inspect` command
2020-05-20 23:32:52 +02:00
Matthew Heon 6330e7bd32 Update manpage for `podman exec` to include detach flag
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-20 16:16:58 -04:00
Matthew Heon 5ec56dc790 Add ability to clean up exec sessions with cleanup
We need to be able to use cleanup processes to remove exec
sessions as part of detached exec. This PR adds that ability. A
new flag is added to `podman container cleanup`, `--exec`, to
specify an exec session to be cleaned up.

As part of this, ensure that `ExecCleanup` can clean up exec
sessions that were running, but have since exited. This ensures
that we can come back to an exec session that was running but has
since stopped, and clean it up.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-20 16:11:05 -04:00
Kunal Kushwaha ade20f3323 format option added to network inspect command.
This helps user to print the inspect output in go template format.

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2020-05-20 02:53:47 +00:00
Kunal Kushwaha 1dde2730e8 filter option added to network ls command.
filter option helps to filter output based on name or supported plugins
by CNI networks.

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2020-05-20 02:53:47 +00:00
Ondřej Kraus 9177c89edd
Give `auto-update` ability to use per-container authfile specified by label.
Signed-off-by: Ondřej Kraus <neverberlerfellerer@gmail.com>
2020-05-17 11:37:12 +02:00
Qi Wang 28ffe74e44 fix bug --format {{json.}} of events
Allow the `podman events --format` accept {{json.}} and complete small fix podman-events.1.md

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-14 14:28:51 -04:00
Valentin Rothberg 1c3bd95b81 auto-update: support authfiles
Support using custom authfiles for auto updates by adding a new
`--authfile` flag and passing it down into the backend.

Also do some minor fixes in the help text and the man page.

Fixes: #6159
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-12 10:20:48 +02:00
OpenShift Merge Robot 428246d4e4
Merge pull request #6106 from mheon/fix_manpages
[CI:DOCS] Update manpages for image volumes and MAC address
2020-05-08 19:42:09 +02:00
Eduardo Minguez Perez 161fc5e264 Fixed typo on podman network create man
Signed-off-by: Eduardo Minguez Perez <e.minguez@gmail.com>
2020-05-08 13:18:23 +02: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
Matthew Heon 344084430e Update manpages for image volumes and MAC address
When reviewing the manpages for `podman run` to find options to
test, I found a few mistakes. The description of how we handle
image volumes is extremely outdated, and we now provide full
support for the `--mac-address` option. Update the docs for these
flags so they're accurate.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-06 14:30:51 -04: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
Qi Wang 1090d4d5d9 manifest annotate
Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-05 15:01:32 -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
OpenShift Merge Robot ca1c674d2e
Merge pull request #5966 from vrothberg/v2-pod-stats
implement pod stats
2020-04-27 16:15:09 +02:00
OpenShift Merge Robot 7cb46450fd
Merge pull request #5973 from rhatdan/man
[ci:docs] Cleanup man pages for pull and push
2020-04-27 15:35:27 +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
Daniel J Walsh 3d0fa726c1
Cleanup man pages for pull and push
The podman pull man page has a section on source, but does not show
this in the top definitions.  This PR attempts to cleanup the man page
to make it more understandable.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-25 06:33:06 -04: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
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 bd8a0b08cd
Merge pull request #5548 from kunalkushwaha/image-prune
image prune skips images with child images.
2020-04-17 15:19:45 -04:00
Sujil02 a037d9cd4d Update podman-generate-systemd man page
Update links, content, and adding more examples to show how to run
the generated .service files as root and non-root. Fix for #5497

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-16 09:17:27 -04:00
Kunal Kushwaha 1e8e4bb331 note for skipping cache image added.
Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2020-04-15 02:49:47 +00:00
OpenShift Merge Robot 878570bf70
Merge pull request #5724 from zypA13510/patch-1
man page: add note about issue with SELinux
2020-04-08 12:42:05 +02:00
Yuping Zuo af83322679 man page: add note about issue with SELinux
Signed-off-by: Yuping Zuo <zypA13510@users.noreply.github.com>
2020-04-08 08:07:28 +08:00
OpenShift Merge Robot 64b6a19733
Merge pull request #5478 from giuseppe/auto-userns
userns: support --userns=auto
2020-04-06 23:08:36 +02:00
Brent Baude e20ecc733c refactor info
the current implementation of info, while typed, is very loosely done so.  we need stronger types for our apiv2 implmentation and bindings.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-06 12:45:42 -05:00
OpenShift Merge Robot e318b09b68
Merge pull request #5620 from cfelder/play-kube-networking
Add support for specifying CNI networks in podman play kube
2020-04-06 18:45:25 +02:00
Giuseppe Scrivano 3a0a727110
userns: support --userns=auto
automatically pick an empty range and create an user namespace for the
container.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-04-06 16:32:36 +02:00
Daniel J Walsh 3449b27cd1
Switch to using --time as opposed to --timeout to better match Docker.
We need to consistently use --time rather then --timeout throughout the code.
Fix locations where timeout defaults are not set correctly as well.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-31 08:50:32 -04:00
OpenShift Merge Robot 21b67e6469
Merge pull request #4976 from rpjday/rpjday/podman_version
docs: mention that "podman version" prints out Remote API Version
2020-03-28 10:52:42 +01:00
Daniel J Walsh 4352d58549
Add support for containers.conf
vendor in c/common config pkg for containers.conf

Signed-off-by: Qi Wang qiwan@redhat.com
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-27 14:36:03 -04:00
Christian Felder 91dbdff77e Add support for specifying CNI networks in podman play kube
Fixes: #5609
Signed-off-by: Christian Felder <c.felder@fz-juelich.de>
2020-03-27 10:00:01 +01:00
Erik Sjölund f33942166d
Fix Markdown typo in podman-create.1.md
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2020-03-27 08:37:14 +01:00
Sujil02 5efa6dae90 Implemented --iidfile for podman commit
Added flag to Write the image ID to the file with podman commit command.
Fix to issue #5461

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-03-19 16:32:02 -04:00
Valentin Rothberg f4e873c4e1 auto updates
Add support to auto-update containers running in systemd units as
generated with `podman generate systemd --new`.

`podman auto-update` looks up containers with a specified
"io.containers.autoupdate" label (i.e., the auto-update policy).

If the label is present and set to "image", Podman reaches out to the
corresponding registry to check if the image has been updated.  We
consider an image to be updated if the digest in the local storage is
different than the one of the remote image.  If an image must be
updated, Podman pulls it down and restarts the container.  Note that the
restarting sequence relies on systemd.

At container-creation time, Podman looks up the "PODMAN_SYSTEMD_UNIT"
environment variables and stores it verbatim in the container's label.
This variable is now set by all systemd units generated by
`podman-generate-systemd` and is set to `%n` (i.e., the name of systemd
unit starting the container).  This data is then being used in the
auto-update sequence to instruct systemd (via DBUS) to restart the unit
and hence to restart the container.

Note that this implementation of auto-updates relies on systemd and
requires a fully-qualified image reference to be used to create the
container.  This enforcement is necessary to know which image to
actually check and pull.  If we used an image ID, we would not know
which image to check/pull anymore.

Fixes: #3575
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-17 17:18:56 +01:00
OpenShift Merge Robot 412a114d33
Merge pull request #5439 from ttys3/fixup-systemdgen-with-new-param
systemd generator: force run container detached if CreateCommand has no detach param
2020-03-16 14:40:02 +01:00
荒野無燈 194723f314
force run container detached if container CreateCommand missing the detach param
the podman generated systemd service file has `Type=forking` service,
so the command after `ExecStart=` should not run in front.
if someone created a container and has the detach(`-d`) param missing
like this
```
podman create --name ngxdemo -P nginxdemos/hello
```
and generate the file with `--new` param:
```
podman generate systemd --name --new ngxdemo
```
because `podman run xxx` has no `-d` param,
so the container is not run in background and nerver exit.
and systemd will fail to start the service:
```
sudo systemctl start container-ngxdemo.service
Job for container-ngxdemo.service failed because a timeout was exceeded.
See "systemctl status container-ngxdemo.service" and "journalctl -xe" for details.
```

Signed-off-by: 荒野無燈 <ttys3@outlook.com>
2020-03-14 21:54:12 +08:00
Ed Santiago 3d1bff6db9 man page cross-reference fixes: part 2
The other direction: fix or clean up elements documented in
man pages but which did/do not exist in actual podman:

  * runlabel: add missing "-n" alias for --name

And, remove man page entries for nonexistent options:

  * podman commit: --iidfile
  * podman container runlabel: --rootfs, --storage
  * podman create: --cpu-count

There are two problems I don't know how to deal with. Both
are related to main_local.go:rootCmd.PersistentFlags() :

  1) podman-build.1.md documents --cni-config-dir and
     --runtime options, but these are not actually options
     under podman build; they are global options. The
     documentation in this man page differs from that
     under podman-build.

  2) podman ps implements a binary --namespace option,
     but this option does not (cannot?) appear in --help
     because there's a global --namespace string option
     and Cobra somehow gets confused about this.

Do we really intend for global options to be parsed on
the right-hand side of subcommands? This strikes me as
unintuitive and potentially confusing, although the
fact that it has taken me this long to discover it
suggests that it's not _that_ confusing.

Suggestions welcome. I can file issues for 1/2 above,
or simply teach my script to special-case ignore them.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-11 11:05:37 -06:00
Ed Santiago 281def2647 man pages: fix inconsistencies
I wrote a script to cross-reference podman --help against
man pages. It found a bunch of inconsistencies fix them:

 * options missing from man pages
 * options misspelled or misformatted in man pages (usually
   misplaced asterisks or missing dashes, but see --dns-opt)
 * one spurious comma in the actual source file --help

This is a fix in which I iterate over 'podman CMD --help'
and check for presence in man pages. The other way around
(look for flags in man pages, check podman CMD --help)
is probably impossible: there are too many special cases

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-10 15:03:59 -06:00
OpenShift Merge Robot fe49daa3c2
Merge pull request #5402 from vrothberg/syslog
docs: clarify bools in `podman --help`
2020-03-10 21:57:04 +01:00
Clint Olson 539fbacba7 Remove nonexistent --set arg from runlabel documentation
Signed-off-by: Clint Olson <clint@populi.co>
2020-03-10 01:07:02 -07:00
Valentin Rothberg 49b70946bc docs: clarify that --syslog expects an argument
Clarify in the man page that --syslog expexts an argument to prevent
users from believing it's a switch.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-10 08:33:39 +01:00
Valentin Rothberg 220f9a71e4 generate systemd: add `default.target` to INSTALL
When enabling a systemd service we can specify which target will start
it by specifying it in the `[INSTALL]` section.  In case of root, this
is commonly set to `multi-user.target` which is used to start other
essential system services such as the network manager, D-BUS and more.

However, the `multi-user.target` is not enough on all systems,
especially when running rootless and enabling user services.  Multiple
users have reported issues that there isn't even an attempt to start the
service.

Setting the INSTALL target to `default.target` will fix the rootless
case.  However, `default.target` may vary among systems.  Fedora
Workstation, for instance, sets the `default.target` to the graphical
target (i.e., runlevel 5) while Fedora Server sets it to
`multi-user.target` which is on runlevel 2 and hence way earlier in the
startup sequence.

As INSTALL allows for specifying multiple INSTALL targets, we can set it
to `multi-user.target` to continue supporting existing workloads AND to
`default.target` which MAY redundantly attempt to start it at a later point;
effectively a NOP for the root case and essential for rootless.

Fixes: #5423
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-09 13:33:09 +01:00
OpenShift Merge Robot f378e82e2d
Merge pull request #5412 from rhatdan/tmpdir
Allow users to set TMPDIR environment
2020-03-08 17:03:59 +01:00
Daniel J Walsh ac354ac94a
Fix spelling mistakes in code found by codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-07 10:30:44 -05:00
Daniel J Walsh cb51707f91
Allow users to set TMPDIR environment
Some users have small /var/tmp directories and need to be able to specify a different location
for temporary files, which includes more space.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-06 10:21:37 -05:00
OpenShift Merge Robot 90eef95cb1
Merge pull request #4772 from boaz0/closes_4628
Add the rmi flag to podman-run to delete container image
2020-03-04 10:58:10 -05:00
Boaz Shuster 11e5c53d11 Add the rmi flag to podman-run to delete container image
The --rmi flag will delete the container image after its execution
unless that image is already been used by another container(s).

This is useful when one wants to execute a container once and remove
any resources attached to it.

Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2020-03-03 14:27:11 +02:00
Daniel J Walsh f678b3fcf1
Update docs/source/markdown/podman-build.1.md
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-02 16:39:21 -05:00
Daniel J Walsh b163640c61
Allow devs to set labels in container images for default capabilities.
This patch allows users to specify the list of capabilities required
to run their container image.

Setting a image/container label "io.containers.capabilities=setuid,setgid"
tells podman that the contained image should work fine with just these two
capabilties, instead of running with the default capabilities, podman will
launch the container with just these capabilties.

If the user or image specified capabilities that are not in the default set,
the container will print an error message and will continue to run with the
default capabilities.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-02 16:37:32 -05:00
OpenShift Merge Robot eef9875a61
Merge pull request #5300 from baude/disablehealth
Add --no-healthcheck command to create/run
2020-02-23 12:21:55 -05:00
Stefan Becker 111af1ba4a docs: symlink to host device is resolved
Also apply changes from commit 3fd9f0c028
to the other two commands that have the --device option.

Documents #4550

Signed-off-by: Stefan Becker <chemobejk@gmail.com>
2020-02-23 14:38:34 +02:00
Brent Baude 0184714a82 Add --no-healthcheck command to create/run
Now support --no-healthcheck option to disable defined healthchecks in a container image.  --health-cmd=none remains supported as well.

Fixes: #5299

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-22 12:45:15 -06:00
Ed Santiago 29930fae70 podman images: add --filter=since=XX
Looks like a bit of a misunderstanding from early on.

Docker implements --filter=since=IMAGE. Podman implements 'after'
instead of 'since'. Add an equivalent case statement to handle
both, keeping 'after' because we have no way of knowing if it
is used in the field.

Update documentation ... and fix what looks like a complete
misinterpretation of what the code actually does: the man page
claimed that these were time fields, but I don't see any
possible incantation in which a time value works or could
work. Updated docs to reflect IMAGE usage. Also changed
nonworking '==' to single '='.

Added tests. [UPDATE: skip with broken podman-remote]

Fixes: #5040

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-02-20 07:55:29 -07:00
OpenShift Merge Robot 846405256b
Merge pull request #5241 from mheon/pod_network_opts_add
Add network opts to pods
2020-02-20 10:39:15 +01:00
OpenShift Merge Robot da249e2fe2
Merge pull request #5225 from vrothberg/fix-5087
config: use built-in TOML merge and adhere to label setting
2020-02-19 17:30:21 +01:00
Matthew Heon 97323808ed Add network options to podman pod create
Enables most of the network-related functionality from
`podman run` in `podman pod create`. Custom CNI networks can be
specified, host networking is supported, DNS options can be
configured.

Also enables host networking in `podman play kube`.

Fixes #2808
Fixes #3837
Fixes #4432
Fixes #4718
Fixes #4770

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-02-19 11:29:30 -05:00
OpenShift Merge Robot cba5791a5d
Merge pull request #5233 from QiWang19/login/out-parameter
fix mandatory parameter in login/logout
2020-02-19 15:11:54 +01:00
Valentin Rothberg 0fcaa93573 libpod.conf: clarify `label` description
Clarify that the label option sets the defaults which can still be
overriden by the CLI.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-02-19 11:04:02 +01:00
OpenShift Merge Robot c58926e54b
Merge pull request #5243 from Akasurde/misc_typo
Misc typo fixes
2020-02-18 21:58:14 +01:00
Qi Wang 4c135017b2 fix mandatory parameter in login/logout
fix #5146
Insted of using a registry as mandatory parameter, this path allows podman to use the first registry from registries.conf.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-02-18 15:30:49 -05:00
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
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
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
OpenShift Merge Robot 0e644933ff
Merge pull request #5192 from kolyshkin/man
podman-run(1): fixes
2020-02-14 17:28:51 +01:00
Kir Kolyshkin 3fd9f0c028 podman(1): fixes
I saw some bad formatting when reading "man podman-run" and
proceeded to fix it. I have now opened a can of worms...

This commit tries to fix some of the formatting, wording and
other bugs I came across (unfortunately not all of them).

Can't list every fix that I made here, but in general:
- format lists as such (prepend items with "- ");
- format examples as such (enclose in ```...```);
- format literal values (option names, literal values) as **bold**;
- format man page references as **page**(1).
- format replacements (option values) and file names as _italic_;
- remove some duplicate info (such as what's the default value);
- move option value description to option syntax;
- end sentences with a period.

To test:
```console
$ make docs
$ man ./docs/build/man/podman-run.1 ### check terminal formatting
$ man -Tps ./docs/build/man/podman-run.1 > podman-run.ps
$ ps2pdf podman-run.ps ### optional
$ evince podman-run.pdf ### check printer formatting (or use ps viewr
```

NOTE
 - there is much more to do here;
 - I haven't checked any factual contents, this is about formatting

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-02-13 16:28:31 -08: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
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
OpenShift Merge Robot e223675625
Merge pull request #5144 from marusak/doc_fixes
[CI:DOCS] podman system service doc fixes
2020-02-12 13:48:56 +01: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
Matej Marusak 6eac49ed1d doc: Fix examples for 'podman system service'
Signed-off-by: Matej Marusak <mmarusak@redhat.com>
2020-02-10 16:26:27 +01:00
Stefan Becker 20cb169874 docs: add workaround for --device with rootless containers (II)
Update documentation for crun >= 0.11.

See 6df930821d

Fixes #4477

Signed-off-by: Stefan Becker <chemobejk@gmail.com>
2020-02-10 11:19:33 +02: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
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
OpenShift Merge Robot ba1d1304a6
Merge pull request #5028 from baude/commitimage
make image reference for commit optional
2020-01-30 17:10:20 -08:00
OpenShift Merge Robot fad36345f5
Merge pull request #5024 from rpjday/markdown/asterisks
markdown: fix erroneous asterisk markup for options
2020-01-30 14:44:39 -08: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
OpenShift Merge Robot 1729350f66
Merge pull request #4951 from rpjday/docs/unshare
markdown: fix grammar/formatting, standardize on markdown
2020-01-30 06:40:16 -08:00
Robert P. J. Day 0bc96b4829 markdown: fix erroneous asterisk markup for options
Fix option markup in a number of man pages so it renders
properly when viewing online.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-30 06:44:33 -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
Robert P. J. Day 8c825cdaae docs: replace '~' with $HOME in markdown as '~' isn't rendered properly
Apparently, a tilde is currently rendered as a single space, making
a mess of command examples that use it, so use $HOME instead.

https://github.com/mattermost/mattermost-server/issues/8228

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-28 12:56:55 -05:00
OpenShift Merge Robot 3b574dde6c
Merge pull request #4995 from rpjday/docs/podman_stop
docs: add missing hyphen for '-t' option, command '$' prompts
2020-01-28 04:44:15 -08:00
OpenShift Merge Robot 9d30e9f2b6
Merge pull request #4974 from rhatdan/man
Cleanup man pages exit code descriptions
2020-01-28 03:28:18 -08:00
Robert P. J. Day c38e22de23 docs: add missing hyphen for '-t' option, command '$' prompts
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-28 05:31:52 -05: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
OpenShift Merge Robot 7794fafdad
Merge pull request #4982 from rpjday/rpjday/exists_sudo
docs: remove reference to "sudo" in "podman exists" examples
2020-01-27 04:49:58 -08:00
Robert P. J. Day 4aeb25d5f2 docs: add boolean values and defaults to "man podman-history" options
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-26 14:13:54 -05:00
OpenShift Merge Robot c28af15932
Merge pull request #4979 from rpjday/rpjday/system_prune
docs: fix system-prune markdown; reword for clarity
2020-01-26 10:18:27 -08:00
Robert P. J. Day bb66d78b2f docs: remove reference to "sudo" in "podman exists" examples
In both of "podman {container,image} exists" man pages, there
are superfluous uses of "sudo" in examples -- get rid of them.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-26 12:43:26 -05:00
Robert P. J. Day 5871446e8d docs: fix system-prune markdown; reword for clarity
In addition to tweaking markdown, reword the explanation of
the "--volumes" option for clarity.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-26 07:46:21 -05:00
Robert P. J. Day 3ff2ea329b docs: clean up "man podman-rm", "man podman-rmi"
Standardize markdown for options and commands, and add leading
dollar signs to emphasize commands being run.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-26 07:16:16 -05:00
OpenShift Merge Robot d7e99b04b9
Merge pull request #4933 from rpjday/docs/markdown/inspect
markdown: reword 'podman-inspect' to properly explain '--size'
2020-01-26 03:00:31 -08:00
Robert P. J. Day 2e34d06d0f docs: mention that "podman version" prints out Remote API Version
Since "man podman-version" seems to want to list everything printed
about the current version, add a reference to Remote API Version
for completeness.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-26 05:40:41 -05:00
Daniel J Walsh 2557cdb4b2
Cleanup man pages exit code descriptions
The conversion of markdown to man pages is causing "_" to cover entire lines.
This PR cleans this up and fixes some of the english.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-26 08:53:52 +01:00
OpenShift Merge Robot c21445d73d
Merge pull request #4926 from TomSweeneyRedHat/dev/tsweeney/fixsystemdf
Fix example format in system df man
2020-01-25 23:35:33 -08:00
Robert P. J. Day 103b5e7807 markdown: fix grammar/formatting, standardize on markdown
While fixing grammar and list formatting issues, standardize on
markdown as follows:

  - commands are marked by '**'
  - files are marked by backquotes
  - list items are marked with leading '-'

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-23 06:59:21 -05: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
TomSweeneyRedHat 71c38e8f2e Fix example format in system df man
Fix the formatting of the examples in the
podman system df man page.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2020-01-22 16:59:21 -05:00
OpenShift Merge Robot 94b53a2d4a
Merge pull request #4929 from rpjday/docs/migrate
markdown: remove erroneous spaces after '**'
2020-01-22 15:40:46 -05:00
OpenShift Merge Robot c42383f70a
Merge pull request #4934 from rpjday/docs/markdown/exec
markdown: fix formatting of commands at bottom of podman-exec
2020-01-22 13:23:40 -05: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
Robert P. J. Day 1e82702ff5 markdown: fix formatting of commands at bottom of podman-exec
Current (lack of) formatting crunches first two lines together.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-22 10:57:16 -05:00
Robert P. J. Day a78658a11a markdown: reword 'podman-inspect' to properly explain '--size'
Reword the man page to clarify that the '--size' option displays
the container size in addition to the normal output.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-22 10:02:06 -05:00
Robert P. J. Day fafa67e7b5 markdown: remove extraneous backquote from "podman rmi"
Extraneous backquote messes up rendering of "man podman-rmi".

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2020-01-22 07:50:48 -05:00