Commit graph

14 commits

Author SHA1 Message Date
Maximilian Bosch 344ee0cf07
nixos/oci-containers: stricter dependencies for rootless containers with sdnotify=healthy
After running this configuration for a while, we
noticed that the containers didn't get back up once and the services
failed with the following error:

    Error: current system boot ID differs from cached boot ID; an unhandled reboot has occurred.

This is hard to reproduce and seems to be a timing issue. However,
the logs indicated another issue that this patch now solves:

* The ExecStartPost= indicated that the user session got stopped before
  which is required or sdnotify=healthy. Add explicit ordering for
  user@. This unfortunately requires a statically declared uid.
2025-04-30 14:23:25 +02:00
Maximilian Bosch 7d443d378b
nixos/oci-containers: support rootless containers & healthchecks
Closes #259770
Closes #207050

The motivation for the former is to not execute the container as root,
so you don't have to `sudo -i` to perform podman management tasks.

The idea behind healthchecks is to be able to keep the unit in the
activating state until the container is healthy, only then then unit is
marked as active.

The following changes were necessary:

* Move the ctr-id into `/run/${containerName}` to make podman can
  actually write to it since it's now in its RuntimeDirectory.

* Make `sdnotify` option configurable (`healthy` for healthchecks that
  must pass, default remains `conmon`).

* Set Delegate=yes for `sdnotify=healthy` to make sure a rootless
  container can actually talk to sd_notify[1].

* Add a warning that lingering must be enabled to have a `systemd --user`
  instance running which is required for the cgroup support to work
  properly.

* Added a testcase for rootless containers with both conmon and
  healthchecks.

[1] https://github.com/containers/podman/discussions/20573#discussioncomment-7612481
2025-02-27 11:08:33 +01:00
Yethal 91bb1c6d75
oci-containers: consolidate capabilities interface (#363574)
* oci-containers: consolidate capabilities interface

* Update nixos/modules/virtualisation/oci-containers.nix

Improved wording

Co-authored-by: Benjamin Staffin <benley@zoiks.net>

---------

Co-authored-by: Benjamin Staffin <benley@zoiks.net>
2024-12-12 11:50:13 -05:00
Yethal 04bf3d8774
nixos/modules/virtualisation: additional configuration options (#349537)
oci-containers: additional configuration options
2024-12-05 12:48:41 -05:00
Christian Höppner 8feba149a0
mkaito: Remove 2024-11-13 12:03:00 +00:00
Gabriella Gonzalez 0b6fa5ee40
virtualisation.oci-containers: Add new imageStream option (#335430)
This adds a new `imageStream` option that can be used in conjunction
with `pkgs.dockerTools.streamLayeredImage` so that the image archive
never needs to be materialized in the `/nix/store`.  This greatly
improves the disk utilization for systems that use container images
built using Nix because they only need to store image layers instead of
the full image.  Additionally, when deploying the new system and only
new layers need to be built/copied.
2024-08-24 04:38:27 +02:00
Peder Bergebakken Sundt c43fd32e03
Merge pull request #248315 from apeschar/oci-containers-backend-stop
nixos/oci-containers: stop container using backend
2024-02-10 17:12:56 +01:00
adisbladis c24958f4c7 maintainers: Remove adisbladis as maintainer from various packages
These are a handful of packages I no longer use or/and have lost interest in.
2023-12-27 23:13:50 +13:00
Albert Peschar 6ed6953e22 nixos/oci-containers: stop container using backend
Make systemd actually call `podman stop` when stopping a container unit.

Fixes #249332
2023-10-26 12:52:59 +00:00
Anderson Torres 56934ebec4 nixos/tests/oci-containers.nix: get rid of with lib 2023-05-12 22:29:29 -03:00
Christian Höppner 1357f90327 maintainers: remove mkaito from serokell team 2022-09-12 12:07:15 +01:00
Yorick van Pelt 87f11f84b2
maintainers: add serokell team, move various packages to it 2021-05-08 12:11:48 +02:00
Scott Worley 8bf2635afc nixos/tests/oci-containers: Use curl --fail 2020-10-25 11:01:30 +01:00
adisbladis 2f7747526c
nixos/docker-containers: Rename to virtualisation.oci-containers.containers.
And allow the runtime to be configurable via the
`virtualisation.oci-containers.backend` option.

Valid choices are "podman" and "docker".
2020-05-04 13:47:25 +01:00