Commit Graph

9 Commits

Author SHA1 Message Date
Giuseppe Scrivano 70236f56f9
systemdgen: specify --cgroups=disabled-conmon for --new
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-01-16 18:59:09 +01:00
Valentin Rothberg 9d3667c2f0 systemdgen: add --ignore flag to generic services
The --ignore flag lets Podman ignore errors when a specified container
does not exist (anymore).  That's a nice addition to generic services
generated via the --new flag.  Those services create new containers and
can hence allows user to manually remove a container; may it only be by
accident.

The important part of using the --ignore flag is that Podman will exit 0
which plays nicer with most restart policies; a non-zero exit may yield
systemd to restart the entire service which is arguably wrong if the
user manually deletes the container.

If desired, users can still alter the generated files.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-16 16:36:21 +01:00
Valentin Rothberg cf1f3191d2 make lint: include unit tests
Include the unit tests (i.e., _test.go files) for linting to make the
tests more robust and enforce the linters' coding styles etc.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-14 10:51:59 +01:00
Valentin Rothberg 816e50ba02 podman-generate-systemd --new
Add a --new flag to podman-generate-systemd to create a new container
via podman-run instead of starting an existing container.

Creating a new container presents the challenge to find a reverse
mapping from a container to the CLI flags it can be created with.  We
are doing this via `(Container).Config.CreateCommand` field, which
includes a copy of the process' command from procFS at creating time.
This field may not be useful when the container was not created via the
Podman CLI (e.g., via a Python script).  Hence, we do not guarantee the
correctness of the generated files.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-09 16:12:12 +01:00
Valentin Rothberg 56a65cffac generate systemd: support pods and geneartig files
Support generating systemd unit files for a pod.  Podman generates one
unit file for the pod including the PID file for the infra container's
conmon process and one unit file for each container (excluding the infra
container).

Note that this change implies refactorings in the `pkg/systemdgen` API.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-08-21 17:28:30 +02:00
Danila Kiver 2bfade4391 Do not hardcode podman binary location in generate systemd.
It is not correct to rely on specific location of the podman binary.
In most cases it is /usr/bin/podman, but sometimes is not (e.g. in
system tests). Use /proc/self/exe instead of hardcoded path.

Signed-off-by: Danila Kiver <danila.kiver@mail.ru>
2019-07-07 11:20:41 +03:00
Danila Kiver a54429cf87 Use conmon pidfile in generated systemd unit as PIDFile.
By default, podman points PIDFile in generated unit file to non-existent
location. As a result, the unit file, generated by podman, is broken:
an attempt to start this unit without prior modification results in a crash,
because systemd can not find the pidfile of service's main process.

Fix the value of "PIDFile" and add a system test for this case.

Signed-off-by: Danila Kiver <danila.kiver@mail.ru>
2019-07-04 03:58:37 +03:00
baude faf499cf94 add unit tests for generate systemd
it looks like i forgot to add the unit tests for generate systemd

Signed-off-by: baude <bbaude@redhat.com>
2019-05-06 09:14:10 -05:00
baude c18ad2bfd9 Generate systemd unit files for containers
the podman generate systemd command will generate a systemd unit file
based on the attributes of an existing container and user inputs.  the
command outputs the unit file to stdout for the user to copy or
redirect.  it is enabled for the remote client as well.

users can set a restart policy as well as define a stop timeout
override for the container.

Signed-off-by: baude <bbaude@redhat.com>
2019-05-02 14:35:53 -05:00