Foreman host page: where is node OS set from

Problem:
on the old and new hosts page, each node is aligned to a OS Version that is also used in provisioning, if you add a new node to foreman with a new OS, once the puppet run has happened, not only will the OS be listed in the host page, but it will also be selectable as a provisioning OS.

I’ve recently been doing some work with ubuntu 24.04 and noticed that ubuntu 24.04.3 (and .2) still show up in the host page and operating system page as 24.04.1 (same is true in the old interface)

Screenshot 2025-10-28 at 09.42.40

when the OS is 24.04.3

root@mcp:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble

I’ve noticed this for a number of years and had vaugue discussions about it in the past, but as someone who’s not really a user of ubuntu and it only appears to be impacting ubuntu I’ve never followed up.

I always thought this was pulled from a puppet fact, but that’s not true

root@mcp:~# facter os
{
architecture => “aarch64”,
distro => {
codename => “noble”,
description => “Ubuntu 24.04.3 LTS”,
id => “Ubuntu”,
release => {
full => “24.04”,
major => “24.04”
}
},
family => “Debian”,
hardware => “aarch64”,
name => “Ubuntu”,
release => {
full => “24.04”,
major => “24.04”
},
selinux => {
enabled => false
}
}

and since foreman moved away to depending on puppet, that can’t be true for ansible/salt/whatever.

so something must be assessing the OS within puppet/ansible/whatever and writing it to a foreman parameter that is used - but what.

if I manually change it to 24.04.3 once the puppet run happens it reverts, so I know puppet can influence this parameter.

Where is this being picked up from and why does it only impact ubuntu ?

I think the problem is caused by Ubuntu or better its facts, in the past everyone was talking about 24.04 as one version with 24 being major and 04 being minor. Since a while we recognized or Ubuntu showed the users that speaking of 24.04.3 would be better with 24.04 being the major and 3 being the minor. One big example where this matters is the introduction of Autostart which happen at such a minor release.

Unfortunately the facts do not reflect this. I am not sure if there was already a discussion at tools like facter, Ansible and so on, and how the decision is, so I am not sure if this will change. But perhaps someone else knows this or has time to start the investigation.

I thought it was a fact, but if the fact is saying 24.04 - and the reality is 24.04.3 where is 24.04.1 actually coming from ?

I take the point on ubuntu’s versioning system, but I’m trying to just map back where 24.04.1 is actually being picked up from