Bug 2208040 - Ensure /dev/random and /dev/urandom even if run in a container
Summary: Ensure /dev/random and /dev/urandom even if run in a container
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: dracut
Version: 9.2
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Pavel Valena
QA Contact: qe-baseos-daemons
URL:
Whiteboard: ostree
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-05-17 18:43 UTC by Colin Walters
Modified: 2023-08-16 12:14 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Story
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github dracutdevs dracut pull 2331 0 None Draft Always ensure /dev/{u,random} are in initramfs 2023-05-17 18:44:31 UTC
Red Hat Issue Tracker RHELPLAN-157539 0 None None None 2023-05-17 18:46:15 UTC

Description Colin Walters 2023-05-17 18:43:07 UTC
Particularly with FIPS mode, it's required to have /dev/random and /dev/urandom in the initramfs.  Today we usually run dracut in a fully privileged environment (e.g. a host system as root, or a build system for Image Builder/rpm-ostree).

However, with https://fedoraproject.org/wiki/Changes/OstreeNativeContainer we want to enable a use case that looks like

```
$ cat Dockerfile
FROM quay.io/fedora/fedora-coreos:stable
ADD /path/to/foo /usr/lib/dracut/modules.d
RUN dracut
```

to inject a dracut module and regenerate the initramfs.  

The default podman/docker policy denies creation of device nodes.  However, we don't actually need to create "real" devices - we just need them to end up in the initramfs file.

https://github.com/dracutdevs/dracut/pull/2331 is an upstream PR that aims to address this.  Can you take a look?

Basically we need to ensure that we always have the device nodes in the initramfs, regardless of FIPS mode or not.

Comment 1 Colin Walters 2023-06-14 18:01:08 UTC
Can someone who maintains dracut please take a look at this issue and comment upstream or here?

This is part of enabling "CoreOS Layering" for OCP https://docs.openshift.com/container-platform/4.13/post_installation_configuration/coreos-layering.html as well as outside of it.

Comment 2 Pavel Valena 2023-06-29 14:30:10 UTC
I've looked into the upsteram PR and apart from the stored {u,}random file it looks OK. I'll look into making this PR viable for upstream.

Comment 3 Joseph Marrero 2023-06-29 14:59:31 UTC
Thank you so much Pavel! Let me know if there is anything you need from us.

Comment 5 Pavel Valena 2023-08-16 12:14:22 UTC
Postponing, as there is some kernel activity expected first, to be able to implement required dracut changes (as in line with PR discussion). Please let me know if I've missed something actionable.

[1] https://github.com/dracutdevs/dracut/pull/2331#issuecomment-1662821979


Note You need to log in before you can comment on or make changes to this bug.