1391 Commits

Author SHA1 Message Date
aa47e05ae4 libpod: Add pasta networking mode
Conceptually equivalent to networking by means of slirp4netns(1),
with a few practical differences:

- pasta(1) forks to background once networking is configured in the
  namespace and quits on its own once the namespace is deleted:
  file descriptor synchronisation and PID tracking are not needed

- port forwarding is configured via command line options at start-up,
  instead of an API socket: this is taken care of right away as we're
  about to start pasta

- there's no need for further selection of port forwarding modes:
  pasta behaves similarly to containers-rootlessport for local binds
  (splice() instead of read()/write() pairs, without L2-L4
  translation), and keeps the original source address for non-local
  connections like slirp4netns does

- IPv6 is not an experimental feature, and enabled by default. IPv6
  port forwarding is supported

- by default, addresses and routes are copied from the host, that is,
  container users will see the same IP address and routes as if they
  were in the init namespace context. The interface name is also
  sourced from the host upstream interface with the first default
  route in the routing table. This is also configurable as documented

- sandboxing and seccomp(2) policies cannot be disabled

- only rootless mode is supported.

See https://passt.top for more details about pasta.

Also add a link to the maintained build of pasta(1) manual as valid
in the man page cross-reference checks: that's where the man page
for the latest build actually is -- it's not on Github and it doesn't
match any existing pattern, so add it explicitly.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2022-11-08 00:16:35 +01:00
013bd81417 Merge pull request #16394 from vrothberg/fix-16387
remove container/pod id file along with container/pod
2022-11-04 05:22:57 -04:00
0702b4cf4c Merge pull request #15359 from rhatdan/manifest
Add --insecure flag to podman manifest inspect for Docker compatibility
2022-11-04 05:14:46 -04:00
3fee351c35 remove container/pod id file along with container/pod
Remove the container/pod ID file along with the container/pod.  It's
primarily used in the context of systemd and are not useful nor needed
once a container/pod has ceased to exist.

Fixes: #16387
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-11-03 17:07:09 +01:00
a1fe0cd662 Merge pull request #16374 from rhatdan/man
[CI:DOCS] Fix documentation on read-only-tmpfs
2022-11-03 08:02:16 -04:00
274d0f4956 Add --insecure,--tls-verify,--verbose flags to podman manifest inspect
--insecure and --verbose flags for docker compatibility

--tls-verify for syntax compatibility and allow users to inspect
manifests at remote Container Registiries without requiring tls.

Helps fix: https://github.com/containers/podman/issues/14917

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-03 08:00:15 -04:00
f6c74324bc Add podman kube apply command
Add the abilitiy to deploy the generated kube yaml to a
kubernetes cluster with the podman kube apply command.
Add support to directly apply containers, pods, or volumes
by passing in their names or ids to the command.
Use the kubernetes API endpoints and http requests to connect
to the cluster and deploy the various kubernetes object kinds.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-11-01 15:30:17 -04:00
8e55abafde Fix documentation on read-only-tmpfs
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-11-01 14:45:06 -04:00
d76bf4cb5e man pages: assorted underscore fixes
Underscore is special in markdown. We usually escape them
properly, but these are a few that we missed. Found using:

   $ ack '[A-Z]\\fI[A-Z]' docs/build/man

(plus one that I found by accident).

If anyone has ideas on how to add a commit check for these,
please speak up. I'm at a complete loss to automate this.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-31 06:43:57 -06:00
b20ef9c348 [CI:DOCS] fix --tmpdir typos
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-10-30 09:57:43 +01:00
26e5661c27 Merge pull request #15862 from edsantiago/docs_format_images
[CI:DOCS] man pages: document some --format options: images
2022-10-28 06:02:29 -04:00
47bcd10f61 Merge pull request #16243 from alexlarsson/volume-create-ignore
Add podman volume create --ignore
2022-10-26 15:00:51 -04:00
a141c9ac23 update api versions on docs.podman.io
Fixes #16300

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-10-26 14:56:58 +02:00
ac8b401c48 Merge pull request #16237 from alexlarsson/quadlet-updates
Various quadlet updates
2022-10-26 04:05:40 -04:00
1c9c321d3c Merge pull request #15979 from ygalblum/play_kube_volume_import
play kube: Allow the user to import the contents of a tar file into a volume
2022-10-25 10:05:45 -04:00
0ce234425a play kube: Allow the user to import the contents of a tar file into a volume
Add a new annotation to allow the user to point to a local tar file
If the annotation is present, import the file's content into the volume
Add a flag to PlayKubeOptions to note remote requests
Fail when trying to import volume content in remote requests
Add the annotation to the documentation
Add an E2E test to the new annotation

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-10-25 15:11:25 +03:00
bac907abf8 Clarify the docs on DropCapability
It was a bit unclear what setting it to empty means.

Also, add to the tests verification that this works.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:10:18 +02:00
b07ba24419 quadlet: Support multiple Network=
This is supported by podman run with --network, so makes sense.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
8716de2ac3 quadlet: Add support for Network=...
This just gets translated to --network=...

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
721922fa7e Fix manpage for podman run --network option
This just fixes the indentation which was previously breaking the
list such that the various network modes were just mixed into one large
paragraph instead of a list.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
6042ca7fd0 quadlet: Add support for AddDevice=
This lets you add custom device nodes into the container

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:51 +02:00
f6f65f49db quadlet: Add support for setting seccomp profile
Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:48 +02:00
a9f0957c24 quadlet: Allow multiple elements on each Add/DropCaps line
You can still use multiple lines, but this is not necessary.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:09:22 +02:00
998f834b04 quadlet: Change ReadOnly to default to enabled
This makees much more sense for typical service loads, and can
easily be reverted by `ReadOnly=no`.

Also updates and adds various tests for this.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-25 13:08:21 +02:00
fdc8dac699 Merge pull request #16240 from edsantiago/preprocessor_xref
[CI:DOCS] markdown-preprocess: cross-reference where opts are used
2022-10-24 18:58:35 -04:00
51a9bc8205 Merge pull request #16191 from odra/fix-16180_ancestor-filter-regex
adding regex support to the ancestor ps filter function
2022-10-24 18:55:56 -04:00
63a8f9aeaa Merge pull request #16234 from jakecorrenti/system-df-verbose-format-usability
Fix `system df` issues with `-f` and `-v`
2022-10-24 11:44:09 -04:00
734c435e01 Add podman volume create --ignore
This ignores the create request if the named volume already exists.
It is very useful when scripting stuff.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-24 17:30:31 +02:00
622638b72b docs: generate systemd: point to kube template
Point to the kube template in the notes of `--new`.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-24 10:14:34 +02:00
c1de4d3ce2 docs: kube play: mention restart policy
Mention the default restart policy in the `kube play` docs.

Fixes: #16252
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-10-24 10:08:55 +02:00
6c7ae378c3 adding regex support to the ancestor ps filter function
Signed-off-by: Leonardo Rossetti <lrossett@redhat.com>
2022-10-21 08:33:51 -03:00
e5032a8dea Fix system df issues with -f and -v
Fixed the issue of `--format` and `--verbose` flags being allowed in
combination with one another.

Implemented functionality for `--format json` or `--format '{{ json }}' `.

Implemented command-completion help for `--format`.

Fixes: #16204

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-10-20 23:12:09 -04:00
c9c2f644da markdown-preprocess: cross-reference where opts are used
In each options/foo.md, keep a list of where the option is used.
This will be valuable to anyone making future edits, and to
those reviewing those edits.

This may be a controversial commit, because those crossref lists
are autogenerated as a side effect of the script that reads them.
It definitely violates POLA. And one day, some kind person will
reconcile (e.g.) --label, using it in more man pages, and maybe
forget to git-commit the rewritten file, and CI will fail.

I think this is a tough tradeoff, but worth doing. Without this,
it's much too easy for someone to change an option file in a way
that renders it inapplicable/misleading for some podman commands.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-20 10:57:51 -06:00
34ee37b91e Add man page for quadlet
This adds the "podman-systemd.unit(5)" manpage that describes
the podman generators from a high level, and all the supported
options.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-10-19 10:30:31 +02:00
8fef5eb12c Merge pull request #16170 from edsantiago/manpage_generic_include
[CI:DOCS] markdown-preprocess: add generic include mechanism
2022-10-17 09:53:06 -04:00
bd4ee2d578 markdown-preprocess: add generic include mechanism
This is what was supposed to be an easy two-or-three-line
change to enable a more general-purpose include mechanism
than '@@option'; one that could include an arbitrary file.

This is commit 2 of 2, the "easy" part. Unfortunately, it's
not looking good. The source .md file has UTF8 checkmarks,
and nroff is not happy with those: the generated man pages
are gross.

Another problem: the source .md might need tweaking, because
we don't want a level 1 header in the man page. Obvious solution
is to make kubernetes_support.md a .md.in file as well, and
move the tables to a separate file (or files). Deferred for later.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-13 15:57:43 -06:00
8c76738571 Man pages: refactor common options (misc)
Accumulated cleanup from the man-page deduplication effort.
Various minor things that slipped.

 --publish-all : remove duplicate "default is false" (toth @dilyanpalauzov)

 --shm-size    : rephrase 'you' and 'y'all'

 --tls-verify  : make narrower, add asterisks to true/false,
                 and linkify containers-registries.conf

  --volume     : incorporate feedback from @mheon

  rename pid.md to pid.container.md, because there's a pid.pod.md
  for the --pid option used in pod-related man pages.

  ...and some whitespace, comma, other minor edits

Fixes: #15356

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-13 12:14:28 -06:00
617a2de3a4 Man pages: Refactor common options: --detach-keys
Refactored among all files that mentioned it.

DANGER WILL ROBINSON! REVIEW CAREFULLY! Here are two major
decisions I made:

  1) Look at the text for podman-run, in particular the "" text.
     It currently says "will use the default". As best I can
     tell this is not true, so I changed it to "will disable"
     which matches all the other commands.

  2) The "containers.conf" text, I decided, applies to all
     commands, not just podman-run (it was only present in
     podman-run). If this is not the case, please yell.

Other changes are cosmetic formatting stuff, asterisks end newlines.
Hard to review with hack/markdown-preprocess-review, because all
the text is one horrible long line instead of 80-char breaks.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-13 10:42:50 -06:00
a584bb4e74 Man pages: refactor common options: --attach
Only between podman-create and -run; podman-start was too
different. (But please look into it, maybe there's a way
to reconcile the diffs).

Very minor formatting changes made to reconcile the two.
Easy to review using hack/markdown-preprocess-review

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-13 08:35:48 -06:00
687b5a2298 Merge pull request #16134 from edsantiago/docs_dedup_annotation
[CI:DOCS] Man pages: refactor common options: --annotation (manifest)
2022-10-13 10:34:45 -04:00
8356621249 Merge pull request #16125 from containers/dependabot/go_modules/github.com/spf13/cobra-1.6.0
build(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0
2022-10-12 16:13:56 -04:00
5da54e1834 docs: add missing options
The new cobra update fixed a bug which caused some options to not be
included in --help when there was already a option with the same name
on a parent command.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-10-12 17:00:27 +02:00
57ddeffd0f Man pages: refactor common options: --annotation (manifest)
[Note: I already refactored --annotation for container-related
 commands; this one is for manifest-related commands]

This one needed reconciling: one man page said "newly added image",
the other said "specified image", I just reduced that to "image".
If that's not cool, any suggestions on how to make it better? Or,
just reject this PR, we can live with this duplication.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-12 08:54:04 -06:00
6e6280d233 Merge pull request #16071 from edsantiago/docs_dedup_os_version
[CI:DOCS] Man pages: refactor common options: --os-version
2022-10-12 10:39:52 -04:00
695a848968 Merge pull request #16078 from rhatdan/main
Revert "cmd/podman: add support for checkpoint images"
2022-10-12 10:12:41 -04:00
b47b48fd03 Revert "Add checkpoint image tests"
This reverts commit bbe1063a5ae681ad04a049518c6087421b919f2e.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-10-11 10:04:55 -04:00
d4052c1aa9 Man pages: Add mention of behavior due to XDG_CONFIG_HOME
When the `XDG_CONFIG_HOME` environment variable is changed, for example,
to switch development contexts, the behavior of the podman-machine can
be confusing. The documentation had not mentioned this, and this commit
adds these mentions.

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

Reviewed-by: Daniel J Walsh <dwalsh@redhat.com>
Signed-off-by: Naoaki Ueda <nao@uedder.com>
2022-10-10 22:24:09 +09:00
f8b659d095 Man pages: refactor common options: --os-version
Only between the two podman-manifest-* commands. podman-build
is too different.

Easy one, text was already identical

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-06 08:37:48 -06:00
51c3578415 Man pages: refactor common options: --time
Only in container/pod stop/rm/restart man pages; the others
(volume-rm, network-rm, system-service) are too different to refactor.

Mostly an easy one, no manual reconciliation needed apart from
the pod-vs-container difference.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-10-05 09:59:01 -06:00
cc609e52bd Merge pull request #16055 from edsantiago/docs_dedup_pod
[CI:DOCS] Man pages: refactor common options: --pod
2022-10-05 16:13:48 +02:00