2533 Commits

Author SHA1 Message Date
38574f823d podmansh man page UID=$(id -u lockedu) is not allowed
Switch man page to user USERID instead of UID, since UID environment
variable is set at login, and is not allowed to be changed.

UID=foobar
bash: UID: readonly variable

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-16 19:30:27 +00:00
2d02865cb7 [v4.6] Remove zstd:chunked reference
Remove the references of the zstd:chunked encryption algorithm as
this will not be supported in RHEL 8.9/9.3 in Podman v4.6.1.  Support
is expected in Podman v4.7 and later.

[NO NEW TESTS NEEDED]
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2023-08-08 15:09:39 -04:00
e4e983e7af Mention TimeoutStartSec in quadlet man page
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-07-31 18:19:02 +00:00
09b1da382f Ensure that we appropriately warn that TCP is insecure
`podman system service` + TCP is not a configuration we should be
recommending. There was already language about this in the
manpages, but it was not sufficient in explaining how bad of an
idea this is. Expand the manpage warnings, add a dedicated
heading so people notice, and add a warning every time the
service starts with a TCP URL that directs people to the manpage
to see that explanation.

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-07-20 16:06:44 -04:00
574b78291c top: do not depend on ps(1) in container
This ended up more complicated then expected. Lets start first with the
problem to show why I am doing this:

Currently we simply execute ps(1) in the container. This has some
drawbacks. First, obviously you need to have ps(1) in the container
image. That is no always the case especially in small images. Second,
even if you do it will often be only busybox's ps which supports far
less options.

Now we also have psgo which is used by default but that only supports a
small subset of ps(1) options. Implementing all options there is way to
much work.

Docker on the other hand executes ps(1) directly on the host and tries
to filter pids with `-q` an option which is not supported by busybox's
ps and conflicts with other ps(1) arguments. That means they fall back
to full ps(1) on the host and then filter based on the pid in the
output. This is kinda ugly and fails short because users can modify the
ps output and it may not even include the pid in the output which causes
an error.

So every solution has a different drawback, but what if we can combine
them somehow?! This commit tries exactly that.

We use ps(1) from the host and execute that in the container's pid
namespace.
There are some security concerns that must be addressed:
- mount the executable paths for ps and podman itself readonly to
  prevent the container from overwriting it via /proc/self/exe.
- set NO_NEW_PRIVS, SET_DUMPABLE and PDEATHSIG
- close all non std fds to prevent leaking files in that the caller had
  open
- unset all environment variables to not leak any into the contianer

Technically this could be a breaking change if somebody does not
have ps on the host and only in the container but I find that very
unlikely, we still have the exec in container fallback.

Because this can be insecure when the contianer has CAP_SYS_PTRACE we
still only use the podman exec version in that case.

This updates the docs accordingly, note that podman pod top never falls
back to executing ps in the container as this makes no sense with
multiple containers so I fixed the docs there as well.

Fixes #19001
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2215572

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-20 15:46:28 -04:00
5445bd6f03 [CI:DOCS] fix command incorrect in windows
Signed-off-by: Black-Hole1 <bh@bugs.cc>
2023-07-20 15:46:28 -04:00
50195c2449 [CI:DOCS] Reformat and reorder table with --userns options
Reorder the table with --userns options to match the description below.
Also, reformat the Markdown to be better readable in source form.

Signed-off-by: Philipp Wagner <phw@ibm.com>
2023-07-20 15:46:28 -04:00
924bc70550 [CI:DOCS] Better document the default value of --userns
Better document which value `podman run --userns` has if no default
value is specified. Also improve documentation of "host" being an alias
for "".

Fixes #15764

Signed-off-by: Philipp Wagner <phw@ibm.com>
2023-07-20 15:46:27 -04:00
7a4bd4c954 Fix markdown in docs for podman-network-create
Signed-off-by: iczero <iczero4@gmail.com>
2023-07-20 15:46:27 -04:00
7cbe412128 Fix multiple filter options logic for podman volume ls
Fixes a bug where `podman volume ls` with multiple `label` filters would
return volumes that matched *any* of the filters, not *all* of them.

Adapts generating volume filter functions to be more in
line with how it is done for containers and pods.

Fixes: #19219

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2023-07-20 15:46:27 -04:00
39b7ac99dc Fix podman container prune docs for --filter
Fixes an error in the `podman container prune` docs that provides an
example of how to use the `--filter until=` flag/filter in an incorrect
way.

Fixes: #19119

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2023-07-20 15:46:27 -04:00
7ba306ec68 docs: podman-build --network add slirp and pasta
Support was added in buildah some weeks ago. [1]

[1] https://github.com/containers/buildah/pull/4877

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-20 15:46:27 -04:00
c810420c83 docs: podman run --network mention comma separted names
This syntax was used prior to 4.0 and is still supported for backwards
compatibility.

Fixes #19089

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-20 15:46:27 -04:00
2c970dd014 network create: document --internal better
When using --internal for macvlan/ipvlan networks we simply do not add a
default gateway/route. Make this clear in the docs.

Fixes #18914

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-20 15:46:27 -04:00
8f05405db4 Podmansh: Better error, increase timeout to 30s
Co-authored-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-07-18 18:52:16 +00:00
afe48ba36c auto update: fix usage of --authfile
The --authfile flag has been ignored.  Fix that and add a test to make
sure we won't regress another time.  Requires a new --tls-verify flag
to actually test the code.

Also bump c/common since common/pull/1538 is required to correctly check
for updates.  Note that I had to use the go-mod-edit-replace trick on
c/common as c/buildah would otherwise be moved back to 1.30.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2218315
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-13 09:28:26 -04:00
28e92b9de2 manifest inspect: support authentication
Previous tests have worked by pure chance since the client and server
ran on the same host; the server picked up the credentials created by
the client login.

Extend the gating tests and add a new integration test which is further
capable of exercising the remote code.

Note that fixing authentication support requires adding a new
`--authfile` CLi flag to `manifest inspect`.  This will at least allow
for passing an authfile to be bindings.  Username and password are not
yet supported.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-13 09:05:56 -04:00
edc51d9ff2 Fixes typo in the path where quadlet looks for files
This change matches the list above in the same document, in the section
`Podman user unit search path`. I also confirmed that this matches [the
code](https://github.com/containers/podman/blob/60a5a59/cmd/quadlet/main.go#L119).

Signed-off-by: Michael Hrivnak <mhrivnak@hrivnak.org>
2023-07-13 09:05:56 -04:00
a673bb23e1 [CI:DOCS] uidmap man pages: fix corrupt italics
The markdown-to-manpage sequence interprets
_from_uid_ and *from_uid* differently.
Use the latter syntax to get the expected result.

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

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2023-07-13 09:05:56 -04:00
dd7dbb8261 [CI:DOCS] podman-system-service.1.md: document systemd usage
Regarding "The command does not support more than one listening socket for the API service."
See this Podman source code: (a permalink into the main branch as of 2 July 2023)
539be58163/cmd/podman/system/service_abi.go (L48-L50)

Move up the paragraph "The REST API provided ...".

Move up the sentence "Note: The default systemd ...".

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2023-07-13 09:05:56 -04:00
a312553fcb Use bytes size consistently instead of human size
Previously podman was using "MB" and "GB" (binary) for input but
"MB" and "GB" (decimal) for output, which was causing confusion.

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2023-07-13 09:05:56 -04:00
cf5c4c9ee6 [CI:DOCS] Document support of pod security context IDs
With PR #14167, the pod-level security Context ID are supported, while the markdown says it isn't.
This patch fixes it.

```
None
```

Signed-off-by: Fabian Wiesel <fwiesel@users.noreply.github.com>
2023-07-13 09:05:56 -04:00
e30197e6f8 Fix up podmansh man page
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-07-13 09:05:56 -04:00
e4cf2afbc0 [CI:DOCS] tag podmansh as tech preview in RELEASE_NOTES.md
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-07-07 10:31:30 -04:00
c422072b65 [CI:DOCS] uidmap man pages: fix corrupt tables
[backport of #19088. No conflicts.]

The markdown-to-manpage sequence needs a long row of dashes,
not a single dash. A single dash, as used in this one option,
generates unreadable *roff.

Also, some tool somewhere doesn't like too-long columns. Shrtn thm.

Also, verify that there are no more three-or-fewer-dash columns:

    $ ack '\|\s+-{1,3}\s' docs/source/markdown

Reference: #19086

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-07-06 11:18:36 -06:00
384638861b Merge pull request #18978 from rhatdan/man1
[CI:DOCS] Fix example on PublishPort
2023-06-23 20:57:22 +02:00
1398cbce8a container wait: support health states
Support two new wait conditions, "healthy" and "unhealthy".  This
further paves the way for integrating sdnotify with health checks which
is currently being tracked in #6160.

Fixes: #13627
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-06-23 14:16:32 +02:00
b680daa2de [CI:DOCS] Fix example on PublishPort
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-06-23 06:47:05 -04:00
64153ace05 podman wait: update man page
While reading the code I found the man page to be lacking some
information that I found worth mentioning and clarifying.
In particular, how the command behaves with respect to exit codes and
when more than one condition is specified.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-06-23 09:26:30 +02:00
bd69b151fa run,create: modify --env-merge behavior for non-existent vars
Signed-off-by: danishprakash <danish.prakash@suse.com>
2023-06-22 15:42:55 +05:30
bb932cc840 cmd, push: expose --compression-level
This patch adds the --compression-level option to the push command.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-06-21 14:28:16 +02:00
772f82ee67 Merge pull request #18917 from Luap99/ip-range
network create --ip-range allow for custom range
2023-06-19 15:02:48 -04:00
30d6543d8a Merge pull request #18909 from sstosh/service_destination
[CI:DOCS] Fix service_destinations description in podman man page
2023-06-19 04:14:14 -04:00
3829fbd35a podman: add support for splitting imagestore
Add support for `--imagestore` in podman which allows users to split the filesystem of containers vs image store, imagestore if configured will pull images in image storage instead of the graphRoot while keeping the other parts still in the originally configured graphRoot.

This is an implementation of
https://github.com/containers/storage/pull/1549 in podman.

Signed-off-by: Aditya R <arajan@redhat.com>
2023-06-17 08:51:08 +05:30
e292748534 network create --ip-range allow for custom range
The backend allows for any start/end ip in the subnet. There is no
reason to limit the cli to only CIDR subnets. This allows for much more
flexibility.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-06-16 17:57:17 +02:00
8d036906a9 [CI:DOCS] Fix service_destinations description in podman man page
- [service_destinations] should be [engine.service_destinations]
- service_destinations does not read from
  `/usr/share/containers/containers.conf` because podman uses config.ReadCustomConfig().

Fixes: #15615

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-06-16 16:04:21 +09:00
189a74d345 Merge pull request #18891 from rhatdan/update
Add support for setting autoupdate in quadlet
2023-06-15 13:13:37 -04:00
1f18ad535a Merge pull request #18739 from lsm5/podmansh-exec-3
New command: podmansh
2023-06-15 10:16:59 -04:00
479677cb65 Add support for setting autoupdate in quadlet
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-06-15 09:30:37 -04:00
3efaffae43 New command: podmansh
This commit creates a new command `podmansh` command which can be used by
administrators to provide a confined shell to their users.

The user will only have access to the volumes and capabilities for that
user.

Co-authored-by: Paul Holzinger <pholzing@redhat.com>
Co-authored-by: Daniel Walsh <dwalsh@redhat.com>
Co-authored-by: Petr Lautrbach <lautrbach@redhat.com>
Co-authored-by: Ed Santiago <santiago@redhat.com>

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-06-15 08:14:12 -04:00
bdc2e81654 Add quadlet container support for Mask,Umask options
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-06-14 14:07:39 -04:00
79eed081d8 Merge pull request #18864 from xduugu/quadlet-docs
[CI:DOCS] quadlet: adjust container unit documentation
2023-06-13 18:11:02 -04:00
741ad0b4f8 Apply suggestions from code review
Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-06-13 12:54:34 -04:00
354b8e20b8 [CI:DOCS] clarify supported transports in manifest push
Closes: #18357
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-06-13 16:14:26 +02:00
aa7a4219ee [CI:DOCS] podman-push: rm confusion on supported transports
Remote clients only support the docker transport which is mentioned in
the destination table below.  So drop the redundant text on supported
transports from the main description to avoid confusion.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-06-13 16:14:21 +02:00
af7555e0dd network-create: document new bclim option
see https://github.com/containers/common/pull/1474

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-06-13 11:48:15 +02:00
6f821634ad libpod: Podman info output more network information
podman info prints the network information about binary path,
package version, program version and DNS information.

Fixes: #18443

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-06-13 11:19:29 +09:00
ac0ba2c2c3 quadlet: adjust container unit documentation
Fixes #17909

Signed-off-by: Cedric Staniewski <cedric@gmx.ca>
2023-06-12 21:59:30 +02:00
77d2ae90c6 Merge pull request #18838 from rhatdan/workdir
Add WorkingDir support to quadlet
2023-06-12 09:56:06 -04:00
16092930c7 Update docs/source/markdown/podman-systemd.unit.5.md
Co-authored-by: Valentin Rothberg <vrothberg@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-06-12 08:07:42 -04:00