Commit Graph

213 Commits

Author SHA1 Message Date
axel7083
8e013c0012 feat(quadlet: kube): support multiple Yaml entries
fixes https://github.com/containers/podman/issues/26274

Signed-off-by: axel7083 <42176370+axel7083@users.noreply.github.com>
2025-10-22 16:09:47 +02:00
openshift-merge-bot[bot]
f2a559a8fe Merge pull request #27309 from ygalblum/quadlet-build-ignorefile
Quadlet build - add support for IgnoreFile key
2025-10-17 15:37:32 +00:00
Ygal Blum
1800b34b51 Quadlet build - add support for IgnoreFile key
Resolves: https://github.com/containers/podman/issues/27268

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-10-16 14:02:04 -04:00
openshift-merge-bot[bot]
ba4d836044 Merge pull request #27256 from givensuman/T-27065-add-quadlet-build-args-support
Add BuildArg key to quadlets
2025-10-16 15:24:52 +00:00
openshift-merge-bot[bot]
32d6c54054 Merge pull request #26624 from Odilhao/artifact-quadlet-implementation
Add artifact quadlet unit type support
2025-10-13 14:41:25 +00:00
givensuman
1e713c1a5f Add BuildArg example into documentation
Signed-off-by: givensuman <givensuman@duck.com>
2025-10-10 13:25:04 -04:00
Odilon Sousa
34254cd1d0 Add artifact quadlet unit type support
RFE: Add artifact quadlet unit type #25778

Signed-off-by: Odilon Sousa <osousa@redhat.com>
2025-10-10 11:08:33 -03:00
givensuman
b4d81c0338 Run make validatepr
Signed-off-by: givensuman <givensuman@duck.com>
2025-10-09 09:45:11 -04:00
given
c0a09e7f10 Update docs/source/markdown/podman-systemd.unit.5.md
Co-authored-by: Tom Sweeney <tsweeney@redhat.com>
Signed-off-by: givensuman <givensuman@duck.com>
2025-10-09 09:44:53 -04:00
ByoungUk Lee
e3c9fa6ddd Update docs for StopTimeOut
Signed-off-by: ByoungUk Lee <nimdrak@gmail.com>
2025-10-09 01:52:26 +00:00
givensuman
a696f8bccb Update documentation to include BuildArg key
Signed-off-by: givensuman <givensuman@duck.com>
2025-10-08 13:31:30 -04:00
Paul Holzinger
070d7c3ad3 Revert "Rewrite the Quadlet documentation."
This reverts commit c12b1b32bc.

The content contains incorrect information and misses a lot of details
from the previous page that must be restored.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-09-11 19:00:19 +02:00
Paul Holzinger
4ae8e386ef Revert "docs: restore podman-systemd.unit.5"
This reverts commit cab3c6de6d.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-09-11 18:59:11 +02:00
Paul Holzinger
cab3c6de6d docs: restore podman-systemd.unit.5
There are endless of links pointing to this document we should not get
rid of that.
Also I find having two podman-quadlet with different numbers rather
confusing, while I understand the motivation I think for most users this
is not intuitive. Most people will not type the man section numbers.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-09-05 18:59:19 +02:00
Jan Kaluza
c12b1b32bc Rewrite the Quadlet documentation.
This commit does the following:

- Splits the podman-systemd.unit.5.md into multiple files - one for each
  quadlet file type, podman-quadlet.7.md for general quadlet information
  and podman-quadlet-basic-usage.7.md for quadlet examples.
- Removes the original podman-systemd.unit.5.md file.
- Adds support for jinja2 templating language in the markdown_preprocess.
- Uses jinja2 in options/*.md to use the single .md file for both podman
  subcommands man-pages and quadlet man-pages. This deduplicates
  the Quadlet man-pages a lot.
- Adds new `@@option quadlet:source.md` preprocess command to import
  such .md files from options directory.

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2025-09-02 12:49:45 +02:00
Ondřej Gajdušek
c65fd9a2c2 quadlet: add HttpProxy option for Container sections
Add support for HttpProxy key in quadlet Container sections to control
proxy environment variable inheritance during image pulls and builds.

- HttpProxy=true enables proxy inheritance (default podman behavior)
- HttpProxy=false disables proxy inheritance
- When omitted, uses podman's default behavior

This addresses the need for declarative proxy configuration in IPv6-only
networks and other scenarios where proxy settings need to be controlled
at the container level without manual workarounds.

Fixes #26925

Signed-off-by: Ondřej Gajdušek <ogajduse@redhat.com>
2025-09-01 13:45:06 +02:00
Albert Esteve
ca3347cc2b doc(podman-system.unit.5.md): clarify user/group
Clarify User= and Group= quadlet options
when used simultaneously.

Signed-off-by: Albert Esteve <aesteve@redhat.com>
2025-08-04 16:19:56 +02:00
Ygal Blum
439448c287 Quadlet - add support for the Policy key for .image files
Resolves: #26446

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-07-10 13:06:38 -04:00
Evan Miller
4b1f7bcb9a Quadlet - Error when units define User, Group, or DynamicUser in Service group
Fixes: #26543

Signed-off-by: Evan Miller <miller.evan815@gmail.com>
2025-07-02 00:34:46 -07:00
nbspsemicolon
5989370c39 pkg/systemd: expose [Pod] ExitPolicy key for pod create --exit-policy
Add ExitPolicy key to pod quadlets with logic to default to stop.

Docs updated with clarifcation on default value and usage example.

Simple assert added to bats to verify default constraint exists.

Changed argument order in ginkgo basic pod unit test

Signed-off-by: Neil Bailey <nbsp@nbailey.net>
2025-06-18 15:08:31 -04:00
Paul Holzinger
a0f7db44e8 quadlet: add InterfaceName option to network unit
I noticed this was missing, its a simple 1 to 1 mapping to
--interface-name.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 16:46:39 +02:00
Paul Holzinger
f2d941b241 docs: quadlet can translate names now
Remove no longer correct statement that quadlet that does not translate
our own custom unit types

Fixes: e498c652 ("Quadlet - translate dependencies on other quadlet units")
Fixes: #26243

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-05-30 18:06:03 +02:00
Ygal Blum
700c679cd2 Quadlet - Update the docs to reflect the default naming of resources
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-05-12 09:33:28 -04:00
Robin Heinemeier
802fc15b1e Add Label to quadlet pod
Signed-off-by: Robin Heinemeier <sunnerlp@gmail.com>
2025-04-24 13:37:42 +00:00
openshift-merge-bot[bot]
5372c15bf8 Merge pull request #25892 from Regis-Caelum/quadlet-pod-hostname
Add HostName to quadlet pod
2025-04-22 12:52:04 +00:00
Inshal Khan
4ba8cde41d Add HostName to quadlet pod
update docs for hostname

Signed-off-by: Inshal Khan <kziaul123@gmail.com>
2025-04-19 08:51:45 +05:30
openshift-merge-bot[bot]
edcac9e9de Merge pull request #25901 from eulores/patch-1
Update podman-systemd.unit.5.md
2025-04-16 21:06:36 +00:00
openshift-merge-bot[bot]
17f3aed4fd Merge pull request #25899 from ygalblum/quadlet-unit-deps
Quadlet - translate dependencies on other quadlet units
2025-04-16 21:03:52 +00:00
Andreas
bc9110c69f Update podman-systemd.unit.5.md
Table header in Pod units section was referring to podman container... instead of podman pod...

Signed-off-by: Andreas <43118918+eulores@users.noreply.github.com>
2025-04-16 21:52:11 +02:00
Ygal Blum
e498c6526b Quadlet - translate dependencies on other quadlet units
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-16 15:29:42 -04:00
openshift-merge-bot[bot]
09c2546b27 Merge pull request #25844 from ygalblum/quadlet-network-delete
Quadlet - allow deleting the network when stopping the service
2025-04-14 17:57:45 +00:00
Ygal Blum
0d4a148ee6 Quadlet - allow deleting the network when stopping the service
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-10 10:34:16 -04:00
Ygal Blum
fe107ff0ce Quadlet - Add support for adding ExecReload command
Add tests
Update man page

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-09 14:40:41 -04:00
Erik Sjölund
a96b29b58c docs: update DefaultDependencies description
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2025-04-08 18:19:59 +02:00
John Schug
a0cae65c13 quadlet: add support for the UpheldBy option in the Install section
This adds support for the UpheldBy option in quadlet files. The UpheldBy option
is the counterpart to the Upholds option added in systemd v249 and is
similar to the existing WantedBy and RequiredBy options.

See https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html#Upholds=.

Signed-off-by: John Schug <john.ips.schug@gmail.com>
2025-03-27 15:48:46 -07:00
Jan Kaluza
08a1c6d91e Add support for Retry= and RetryDelay= to Podman Quadlet.
This commit adds new Retry= and RetryDelay= options
to quadlet.go which result in --retry and --retry-delay
usage in podman run, image and build commands.

This allows configuring the retry logic in the systemd
files.

Fixes: #25109

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2025-03-26 09:01:28 +01:00
Alexander Gramiak
10290d462b docs: Improve spelling and formatting
Signed-off-by: Alexander Gramiak <agrambot@gmail.com>
2025-03-24 16:35:29 -06:00
Ben Boeckel
543be25ef3 quadlet: support Memory= in [Container] sections
Maps to the `--memory=` flag.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
2025-02-17 17:29:15 +01:00
Erik Sjölund
e93f0acbee docs: Add quadlet debug method systemd-analyze
Reference: https://github.com/containers/podman/discussions/24891

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2025-01-16 08:27:47 +01:00
Daniel J Walsh
418ea52e06 Document .build for Image .container option
$NAME.build is supported in .container to automatically build the
local image. This needs to be documented.

Also fix up other special cases to look the same in the man page.

Fixes: https://www.reddit.com/r/podman/comments/1hmhhhi/quadlet_build_units/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2025-01-07 14:20:43 -05:00
Odilon Sousa
d1a3f96cbf Add support to ShmSize in Pods with Quadlet
This closes #22915

Signed-off-by: Odilon Sousa <osousa@redhat.com>
2024-12-30 12:33:00 -03:00
Maël Azimi
6809bf1d90 doc: fix words repetitions
Signed-off-by: Maël Azimi <mael.azimi@moul.re>
2024-11-13 15:21:40 +01:00
openshift-merge-bot[bot]
a358d83ce9 Merge pull request #24437 from lambinoo/feat-split-pod-container-start-24401
Add key to control if a container can get started by its pod
2024-11-05 15:04:16 +00:00
Farya L. Maerten
2597eeae70 Add key to control if a container can get started by its pod
By default today, the container is always started if its pod is also
started. This prevents to create custom with systemd where containers in
a pod could be started through their `[Install]` section.

We add a key `StartWithPod=`, enabled by default, that enables one to
disable that behavior.

This prevents the pod service from changing the state of the container
service.

Fixes #24401

Signed-off-by: Farya L. Maerten <me@ltow.me>
2024-11-05 08:39:23 +01:00
Ygal Blum
dbfc8cccda Quadlet - support image file based mount in container file
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-11-01 16:20:23 -04:00
Paul Holzinger
67e0fa8b89 quadlet: add default network dependencies to all units
There is no good reason for the special case, kube and pod units
definitely need it. Volume and network units maybe not but for
consistency we add it there as well. This makes the docs much easier to
write and understand for users as the behavior will not differ.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-10-18 14:01:22 +02:00
Paul Holzinger
57b022782b quadlet: ensure user units wait for the network
As documented in the issue there is no way to wait for system units from
the user session[1]. This causes problems for rootless quadlet units as
they might be started before the network is fully up. TWhile this was
always the case and thus was never really noticed the main thing that
trigger a bunch of errors was the switch to pasta.

Pasta requires the network to be fully up in order to correctly select
the right "template" interface based on the routes. If it cannot find a
suitable interface it just fails and we cannot start the container
understandingly leading to a lot of frustration from users.

As there is no sign of any movement on the systemd issue we work around
here by using our own user unit that check if the system session
network-online.target it ready.

Now for testing it is a bit complicated. While we do now correctly test
the root and rootless generator since commit ada75c0bb8 the resulting
Wants/After= lines differ between them and there is no logic in the
testfiles themself to say if root/rootless to match specifics. One idea
was to use `assert-key-is-rootless/root` but that seemed like more
duplication for little reason so use a regex and allow both to make it
pass always. To still have some test coverage add a check in the system
test to ask systemd if we did indeed have the right depdendencies where
we can check for exact root/rootless name match.

[1] https://github.com/systemd/systemd/issues/3312

Fixes #22197

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-10-18 11:43:48 +02:00
Farya L. M
bac655a6b1 Allow removing implicit quadlet systemd dependencies
Quadlet inserts network-online.target Wants/After dependencies to ensure pulling works.
Those systemd statements cannot be subsequently reset.

In the cases where those dependencies are not wanted, we add a new
configuration item called `DefaultDependencies=` in a new section called
[Quadlet]. This section is shared between different unit types.

fixes #24193

Signed-off-by: Farya L. Maerten <me@ltow.me>
2024-10-09 14:48:05 +02:00
openshift-merge-bot[bot]
95a55f971c Merge pull request #24177 from eriksjolund/docs-prefer-option-network
docs: prefer --network to --net
2024-10-07 09:18:50 +00:00
Erik Sjölund
d0cb62aacc podman-systemd.unit.5: adjust example options
Use the reserved domain name example.com in the examples.
For details, see RFC 2606
https://datatracker.ietf.org/doc/html/rfc2606#section-3

Modify PublishPort examples to make them reflect more
common scenarios.

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

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2024-10-06 17:31:41 +02:00