Provisioning debian 10: No kernel modules were found

Problem:
I am struggeling to provision my host with debian 10. I have multiple issues and need a helping hand to find the way:
I am using these templates:
PXELinux template Template: Preseed default PXELinux
Finish template Template: Preseed default finish
Provisioning template Template: Preseed default

I am using the default debian mirror installation medium.

Currently my machines is discovered, I can create it in foreman and the machine reboots into the os installer. After some minutes the installation shows me:
┌────────────────┤ [!!] Download installer components ├─────────────────┐
│ │
│ No kernel modules were found. This probably is due to a mismatch │
│ between the kernel used by this version of the installer and the │
│ kernel version available in the archive. │
│ │
│ If you’re installing from a mirror, you can work around this problem │
│ by choosing to install a different version of Debian. The install │
│ will probably fail to work if you continue without kernel modules. │
│ │
│ Continue the install without loading kernel modules? │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────┘

If I choose yes, the installation fails at a later point and if I choose no I get into an endless circle, i.e. get the message again. I think it cannot load the components correctly.

First question: Is this a debian problem or a foreman problem?
Second question: Is this related to the foreman version I am using?

I did some research on this topic and there are some posts about this from 2014-2016 (pretty old). These posts basically say there is a version mismatch between the installer and the available kernel. Because of that I wanted to try to use a cdrom iso, from which I know is working. I unpacked the iso to my disk (foreman machine). My idea was to make apache serve these files and add an installation medium to foreman like “http://localhost/…”.

When I did this the host failed to pxe boot (initrd not found). I had a look into the tftp directory: The initrd file had 0 bytes size. I had a look here: PXE booting: Could not find kernel image

I was not able to convince apache to list the directory content. I tried adding “Indexes” to the Options of /etc/apache2/sites-enabled/05-foreman.conf and /etc/apache2/sites-enabled/05-foreman-ssl.conf. But the directory content is not listed. (I did reload and restart apache).

Third question: How do I use an ISO (unpacked) as installation medium?

Expected outcome:
Debian 10 is installed on the host.

Foreman and Proxy versions:
Foreman: 2.0.0

Distribution and version:
debian 10

As I said in the beginning, I need some directions on where to go from here.
Thank you.

Fourth question: How do I find out which initrd the foreman is using from http://ftp.debian.org/debian/?

Not sure if the ISOs and their layout is 100% compatible with the layout Foeman is expecting. However, if yes, then you’d need to create an installation medium for Debian (or change the URL of the default) with the canonical name of your webserver (which is not localhost!). foreman-proxy will try to download these files from the URL given in that medium as well as the installer on the provisioned node. I think the exact URL that’s tried can also be seen in /var/log/foreman-proxy/proxy.log. To re-trigger the download, remove out the 0 bytes files and re-build the node in question.

Hello,

Foreman constructs the URL from the Instalaltion Media base URL you associate with your OS and then some logic which is baked in the Foreman codebase (for Debian case unfortunately). The final URLs of kernel and initramdisk cannot be displayed in the UI unfortunately, but if you turn od debug logging for your TFTP smart proxy, you will see wget commands with full URL and also a reason why it fails. This is usually 404 or 500 or 401 for your own mirrors.

Investigate there. TFTP proxy always tries to redownload the files if the size differs, this is clunky implementation and we would like to refactor this in the future. You can easily end up with corrupted initramdisk in case something went wrong. In that case, delete those files and bring your host back to the BUILD mode, TFTP proxy will redownload these.