Commit Graph

1809 Commits

Author SHA1 Message Date
OpenShift Merge Robot 3984b45b42
Merge pull request #19976 from plettich/patch-1
[CI:DOCS] Fix some spelling and formatting  in volume options
2023-09-14 17:49:43 +02:00
OpenShift Merge Robot 33e565520f
Merge pull request #19951 from Luap99/small-remote
podman-remote debloat: remove libimage dependency
2023-09-14 15:27:45 +02:00
Paul Lettich c689fb4a5b
Fix some spelling and formatting
Signed-off-by: Paul Lettich <paul.lettich@netknights.it>
2023-09-14 14:46:50 +02:00
Daniel J Walsh 522e0f43f4
Add support for Ulimit in quadlet
QM needs to be able to specify the maximum number of open files within the QM
environment to ensure FFI.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-09-14 06:17:43 -04:00
OpenShift Merge Robot 957523e62a
Merge pull request #19969 from eriksjolund/rewrite-restart-md
[CI:DOCS] restart.md: migrate to container unit
2023-09-14 12:08:44 +02:00
OpenShift Merge Robot 88b415e341
Merge pull request #19955 from rhatdan/quadlet
Add support for PidsLimit in quadlet
2023-09-14 11:48:03 +02:00
Paul Holzinger 6b7f718b4b
wire in new buildah build options
Add support for --layerLabel.
Support for --cw is only added for the local client. I am not sure how
I would wire this over remote. The current code parse the options in
the frontend which hard codes the Tmpdir field to an incorrect value if
we would json marshal this vie remote API so it would not work in real
remote cases.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-09-14 11:21:00 +02:00
Erik Sjölund bf86ed72c2 [CI:DOCS] restart.md: migrate to container unit
Fixes: https://github.com/containers/podman/issues/19968

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2023-09-14 06:51:35 +02:00
Daniel J Walsh 4ed3273f68
Add support for PidsLimit in quadlet
QM needs to be able to specify the maximum number of PIDs within the QM
environment to ensure FFI.
Picking a total of 10,000 Pids might be a rasonable constraint on the
QM.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-09-13 14:32:35 -04:00
ryanhockstad 883612eff3
Merge branch 'containers:main' into main 2023-09-13 14:23:16 -04:00
Ryan Hockstad 70560f9168 Add DNS fields to Container and Network unit groups
Signed-off-by: Ryan Hockstad <ryanhockstad@gmail.com>
2023-09-13 13:16:53 -04:00
Paul Holzinger 777b5efa4e
[CI:DOCS] update API docs version list
Also update the RELEASE_PROCESS doc so maybe it will not be forgotten
next time.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-09-13 17:07:14 +02:00
OpenShift Merge Robot e8c4d7966b
Merge pull request #19952 from mheon/init_cannot_modify
[CI:DOCS] The `podman init` command cannot modify containers.
2023-09-12 21:33:53 +02:00
Matt Heon 5920bfa2ef The `podman init` command cannot modify containers.
`podman init` is a debugging command for inspecting a container's
OCI spec before it runs, to look for anything suspicious. It is
not capable of supporting modifications to that spec, as it
starts Conmon and thus the OCI runtime, so the spec has already
been loaded by the time `podman init` is run.

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-09-12 13:28:42 -04:00
Lokesh Mandvekar 806c5de12a
Podmansh: use podmansh_timeout
podmansh_timeout is now a configurable option in containers.conf.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-09-12 09:18:24 -04:00
danishprakash cdcf18b862
kube: add DaemonSet support for generate
Signed-off-by: danishprakash <danish.prakash@suse.com>
2023-09-12 10:30:57 +05:30
Erik Sjölund 65a64da271 [CI:DOCS] podman-systemd.unit: fix equivalents
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2023-09-11 07:41:10 +02:00
Daskan 5eb0a53a0a
Update podman-kube-play.1.md.in
To avoid the error:
`Error: unable to read YAML as Kube Pod: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal object into Go struct field Container.spec.containers.command of type string`

Also makes it easier to understand as you only need the image parameter.

Signed-off-by: Daskan <kevin81991@web.de>
2023-09-09 21:41:41 +02:00
Daniel J Walsh 27495981ce
Some distros do not default to docker.io for shortname searches
Fixes: #18910

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-09-06 13:37:08 -04:00
Giuseppe Scrivano 8b4a79a744
linux, rootless: clamp oom_score_adj if it is too low
when running rootless, if the specified oom_score_adj for the
container process is lower than the current value, clamp it to the
current value and print a warning.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-04 14:44:14 +02:00
OpenShift Merge Robot 66fa48af42
Merge pull request #19804 from nishipy/ja_index
[CI:DOCS] Add Japanese locale and translation of index
2023-08-31 22:47:37 +02:00
guoguangwu 13342e5039 fix: default typo
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-08-31 18:14:59 +08:00
Takuya Nishimura 3a6fc8d2b7 Add Japanese locale and translation of index
Signed-off-by: Takuya Nishimura <goodisonev4@gmail.com>

Fix typo

Signed-off-by: Takuya Nishimura <goodisonev4@gmail.com>

Fix typo

Signed-off-by: Takuya Nishimura <goodisonev4@gmail.com>
2023-08-31 13:53:48 +09:00
Sergio Oller 18d35b6122 Fix gidmap command in example
Since we do not want the mapping to be applied to uids,
we should use the `g` flag in the mapping in the example
as well.

Follow up of #18173

Signed-off-by: Sergio Oller <sergioller@gmail.com>
2023-08-30 13:47:23 +02:00
Sergio Oller 91b8bc7f13 uid/gid mapping flags
Motivation
===========

This feature aims to make --uidmap and --gidmap easier to use, especially in rootless podman setups.

(I will focus here on the --gidmap option, although the same applies for --uidmap.)

In rootless podman, the user namespace mapping happens in two steps, through an intermediate mapping.

See https://docs.podman.io/en/latest/markdown/podman-run.1.html#uidmap-container-uid-from-uid-amount
for further detail, here is a summary:

First the user GID is mapped to 0 (root), and all subordinate GIDs (defined at /etc/subgid, and
usually >100000) are mapped starting at 1.

One way to customize the mapping is through the `--gidmap` option, that maps that intermediate mapping
to the final mapping that will be seen by the container.

As an example, let's say we have as main GID the group 1000, and we also belong to the additional GID 2000,
that we want to make accessible inside the container.

We first ask the sysadmin to subordinate the group to us, by adding "$user:2000:1" to /etc/subgid.

Then we need to use --gidmap to specify that we want to map GID 2000 into some GID inside the container.

And here is the first trouble:

Since the --gidmap option operates on the intermediate mapping, we first need to figure out where has
podman placed our GID 2000 in that intermediate mapping using:

    podman unshare cat /proc/self/gid_map

Then, we may see that GID 2000 was mapped to intermediate GID 5. So our --gidmap option should include:

    --gidmap 20000:5:1

This intermediate mapping may change in the future if further groups are subordinated to us (or we stop
having its subordination), so we are forced to verify the mapping with
`podman unshare cat /proc/self/gid_map` every time, and parse it if we want to script it.

**The first usability improvement** we agreed on #18333 is to be able to use:

    --gidmap 20000:@2000:1

so podman does this lookup in the parent user namespace for us.

But this is only part of the problem. We must specify a **full** gidmap and not only what we want:

    --gidmap 0:0:5 --gidmap 5:6:15000 --gidmap 20000:5:1

This is becoming complicated. We had to break the gidmap at 5, because the intermediate 5 had to
be mapped to another value (20000), and then we had to keep mapping all other subordinate ids... up to
close to the maximum number of subordinate ids that we have (or some reasonable value). This is hard
to explain to someone who does not understand how the mappings work internally.

To simplify this, **the second usability improvement** is to be able to use:

   --gidmap "+20000:@2000:1"

where the plus flag (`+`) states that the given mapping should extend any previous/default mapping,
overriding any previous conflicting assignment.

Podman will set that mapping and fill the rest of mapped gids with all other subordinated gids, leading
to the same (or an equivalent) full gidmap that we were specifying before.

One final usability improvement related to this is the following:

By default, when podman  gets a --gidmap argument but not a --uidmap argument, it copies the mapping.
This is convenient in many scenarios, since usually subordinated uids and gids are assigned in chunks
simultaneously, and the subordinated IDs in /etc/subuid and /etc/subgid for a given user match.

For scenarios with additional subordinated GIDs, this map copying is annoying, since it forces the user
to provide a --uidmap, to prevent the copy from being made. This means, that when the user wants:

    --gidmap 0:0:5 --gidmap 5:6:15000 --gidmap 20000:5:1

The user has to include a uidmap as well:

    --gidmap 0:0:5 --gidmap 5:6:15000 --gidmap 20000:5:1 --uidmap 0:0:65000

making everything even harder to understand without proper context.

For this reason, besides the "+" flag, we introduce the "u" and "g" flags. Those flags applied to a
mapping tell podman that the mapping should only apply to users or groups, and ignored otherwise.

Therefore we can use:

   --gidmap "+g20000:@2000:1"

So the mapping only applies to groups and is ignored for uidmaps. If no "u" nor "g" flag is assigned
podman assumes the mapping applies to both users and groups as before, so we preserve backwards compatibility.

Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: Sergio Oller <sergioller@gmail.com>
2023-08-28 20:21:04 +02:00
Sergio Oller 18c2a2be87 [DOC] Clarify default behaviour on uidmap
Specify that by default if only one of uidmap or gidmap is given, the other one is copied

Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: Sergio Oller <sergioller@gmail.com>
2023-08-28 20:21:04 +02:00
OpenShift Merge Robot dd2ec7c613
Merge pull request #19640 from flouthoc/force-compression
push/manifest-push: add support for `--force-compression` to prevent reusing other blobs
2023-08-28 16:49:31 +02:00
Aditya R 0938ee1899
push, manifest-push: --force-compression must be true with --compression-format
Value of `--force-compression` should be already `true` is
`--compression-format` is selected otherwise let users decide.

Signed-off-by: Aditya R <arajan@redhat.com>
2023-08-28 16:41:13 +05:30
Ashley Cui da81bc13a1 Add rootful status to machine inspect
Podman machine inspect now shows if the machine is rootful

Signed-off-by: Ashley Cui <acui@redhat.com>
2023-08-25 11:27:08 -04:00
Urvashi Mohnani 52ed7fce2a Add infra-name annotations to kube gen/play
Add io.podman.annotations.infra.name annotation to kube play so
users can set the name of the infra container created.
When a pod is created with --infra-name set, the generated
kube yaml will have an infraName annotation set that will
be used when playing the generated yaml with podman.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-08-24 11:29:56 -04:00
Aditya R 82bd56be74
manifest-push: add support for --force-compression
Adds support for --force-compression which allows end-users to force
push blobs with the selected compresison in --compression option, in
order to make sure that blobs of other compression on registry are not
reused.

Signed-off-by: Aditya R <arajan@redhat.com>
2023-08-24 13:36:04 +05:30
Aditya R 469ace0910
push: add support for --force-compression
Adds support for --force-compression which allows end-users to force
push blobs with the selected compresison in --compression option, in
order to make sure that blobs of other compression on registry are not
reused.

Is equivalent to: force-compression here: https://docs.docker.com/build/exporters/#compression

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

Signed-off-by: Aditya R <arajan@redhat.com>
2023-08-24 13:35:58 +05:30
Valentin Rothberg 75ce47347c [CI:DOCS] update auto-update docs
Rewrite the auto-update man page.  It was quite dusty and out-dated as
it was not mentioning Quadlet at all.  At times it was too verbose about
internal implementation details that users shouldn't need to worry
about.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-08-22 16:19:06 +02:00
OpenShift Merge Robot f727428b52
Merge pull request #19663 from rhatdan/ramfs
Add support for ramfs as well as tmpfs in volume mounts
2023-08-21 16:51:06 -02:30
Daniel J Walsh 45ce4834af
Add support for ramfs as well as tmpfs in volume mounts
Users want to mount a tmpfs file system with secrets, and make
sure the secret is never saved into swap. They can do this either
by using a ramfs tmpfs mount or by passing `noswap` option to
a tmpfs mount.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-08-21 07:14:57 -04:00
Doug Rabson 27b41f0877 libpod: use /var/run instead of /run on FreeBSD
This changes /run to /var/run for .containerenv and secrets in FreeBSD
containers for consistency with FreeBSD path conventions. Running Linux
containers on FreeBSD hosts continue to use /run for compatibility.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2023-08-17 14:04:53 +01:00
OpenShift Merge Robot 3c6d800b29
Merge pull request #19647 from rhatdan/podmansh
[CI:DOCS] podmansh man page UID=3267 is not allowed
2023-08-16 16:59:06 -02:30
OpenShift Merge Robot e163e26880
Merge pull request #19618 from PeterWhittaker/main
[CI:DOCS] Update podman.1.md: Fix formatting of exit code 127, clarify wording …
2023-08-16 16:30:11 -02:30
OpenShift Merge Robot f559fc55bb
Merge pull request #19567 from vrothberg/RUN-1873
add --module flag
2023-08-16 16:23:54 -02:30
Daniel J Walsh 362747cfab
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 14:16:33 -04:00
Peter Whittaker 7103fdb3fe podman.1.md: Fix formatting of exit code 127, clarify wording of `exit code` example.
Signed-off-by: Peter Whittaker <PeterWhittaker@SphyrnaSecurity.com>
2023-08-16 10:59:06 -04:00
Christian Hörtnagl 896cab6120 document available secret drivers
[NO NEW TESTS NEEDED]

Signed-off-by: Christian Hörtnagl <christian.hoertnagl@univie.ac.at>
2023-08-16 16:23:39 +02:00
Valentin Rothberg d5841ed528 add --module flag
Support a new concept in containers.conf called "modules".  A "module"
is a containers.conf file located at a specific directory.  More than
one module can be loaded in the specified order, following existing
override semantics.

There are three directories to load modules from:
 - $CONFIG_HOME/containers/containers.conf.modules
 - /etc/containers/containers.conf.modules
 - /usr/share/containers/containers.conf.modules

With CONFIG_HOME pointing to $HOME/.config or, if set, $XDG_CONFIG_HOME.
Absolute paths will be loaded as is, relative paths will be resolved
relative to the three directories above allowing for admin configs
(/etc/) to override system configs (/usr/share/) and user configs
($CONFIG_HOME) to override admin configs.

Pulls in containers/common/pull/1599.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-08-16 14:32:35 +02:00
TomSweeneyRedHat abd35d4d37 [CI:DOCS] Fix git build example in build page
The git repo that was used for the example of a git build:

  `podman build https://github.com/scollier/purpletest`

no longer exists.  Someone reached out to @rhatdan about this
and he suggested using the Podman Hello World repo.  However,
that didn't exist until a little bit ago, so I've updated
the man page with a pointer there.  That should be a lot more
stable.

[NO NEW TESTS NEEDED]
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2023-08-14 17:45:02 -04:00
OpenShift Merge Robot c742ec6fea
Merge pull request #19617 from edsantiago/sphinx_ignore
[CI:DOCS] sphinx: skip options include dir
2023-08-14 15:45:04 -02:30
Ed Santiago 4c7546cb31 sphinx: skip options include dir
Tell sphinx not to process the "options" dir, those files
are not to be published.

Context: websearching for podman volume info, I stumbled upon:

   https://docs.podman.io/en/latest/markdown/options/volume.html

...and panicked because I saw '<<container|pod>>', the options
include-file syntax that should never be seen by users. I thought
the filter script was broken.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-08-14 08:12:16 -06:00
Peter Whittaker 345b9b0295 Update rootfs.md: Fix formatting and wording of idmap option
The newly introduced `idmap` section of rootfs lacked a header
(comparable to Overlay Rootfs Mounts), had odd formatting, and
wording that differed from other instances of idmap, e.g., the
one in the --volume section. This commits addresses those issues.

Signed-off-by: Peter Whittaker <PeterWhittaker@SphyrnaSecurity.com>
2023-08-14 09:21:24 -04:00
Urvashi Mohnani dce3ef3c42 Add podman farm update command
Podman farm update allows users to update a farm by addig
connections, removing connections, or changing the default farm.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-08-09 13:37:37 -04:00
Urvashi Mohnani 44a704dfcf Add podman farm remove command
Podman farm remove allows users to remove one or more
existing farms.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-08-09 13:37:37 -04:00
Urvashi Mohnani 59a8140f1f Add podman farm list command
The podman farm list command allows users to list
the existing farms.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-08-09 13:37:37 -04:00