Provisioning Ubuntu using the Foreman Discovery Image

Problem:
Hi, I’m trying to use Foreman to provision Ubuntu 18, 20 & 22 VMs which are booted using a Foreman Discovery Image(foreman-discovery-image-3.8.0-1.iso).
The hosts boot the image and are recognised in Foreman, I can set the provisioning parameters successfully, but when the hosts reboot to start provisioning they instead just boot the discovery ISO again.

Expected outcome:
Host reboots and provisioning starts.

Foreman and Proxy versions:
Installed packages from the Foreman about page are as follows:

  • candlepin-4.1.11-1.el8.noarch
  • candlepin-selinux-4.1.11-1.el8.noarch
  • foreman-3.3.0-1.el8.noarch
  • foreman-cli-3.3.0-1.el8.noarch
  • foreman-debug-3.3.0-1.el8.noarch
  • foreman-discovery-image-service-1.0.0-4.el8.x86_64
  • foreman-discovery-image-service-tui-1.0.0-4.el8.x86_64
  • foreman-dynflow-sidekiq-3.3.0-1.el8.noarch
  • foreman-installer-3.3.0-1.el8.noarch
  • foreman-installer-katello-3.3.0-1.el8.noarch
  • foreman-postgresql-3.3.0-1.el8.noarch
  • foreman-proxy-3.3.0-1.el8.noarch
  • foreman-selinux-3.3.0-1.el8.noarch
  • foreman-service-3.3.0-1.el8.noarch
  • katello-4.5.0-1.el8.noarch
  • katello-ca-consumer-ednpsm545.dsto.defence.gov.au-1.0-2.noarch
  • katello-certs-tools-2.9.0-1.el8.noarch
  • katello-client-bootstrap-1.7.9-1.el8.noarch
  • katello-common-4.5.0-1.el8.noarch
  • katello-debug-4.5.0-1.el8.noarch
  • katello-selinux-4.0.2-1.el8.noarch
  • pulpcore-selinux-1.3.0-1.el8.x86_64
  • python39-pulp-ansible-0.13.0-3.el8.noarch
  • python39-pulp-certguard-1.5.2-3.el8.noarch
  • python39-pulp-cli-0.14.0-2.el8.noarch
  • python39-pulp-container-2.10.3-4.el8.noarch
  • python39-pulp-deb-2.18.0-3.el8.noarch
  • python39-pulp-file-1.10.2-2.el8.noarch
  • python39-pulp-python-3.6.0-5.el8.noarch
  • python39-pulp-rpm-3.17.5-3.el8.noarch
  • python39-pulpcore-3.18.5-2.el8.noarch
  • qpid-proton-c-0.37.0-1.el8.x86_64
  • rubygem-foreman-tasks-6.0.2-1.fm3_3.el8.noarch
  • rubygem-foreman_discovery-21.0.1-2.fm3_3.el8.noarch
  • rubygem-foreman_maintain-1.1.1-3.el8.noarch
  • rubygem-foreman_remote_execution-7.1.0-1.fm3_3.el8.noarch
  • rubygem-hammer_cli-3.3.0-1.el8.noarch
  • rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch
  • rubygem-hammer_cli_foreman_remote_execution-0.2.2-1.fm3_0.el8.noarch
  • rubygem-hammer_cli_foreman_tasks-0.0.17-1.fm3_2.el8.noarch
  • rubygem-hammer_cli_katello-1.5.2-1.el8.noarch
  • rubygem-katello-4.5.0-1.el8.noarch
  • rubygem-pulp_ansible_client-0.13.1-1.el8.noarch
  • rubygem-pulp_certguard_client-1.5.0-1.el8.noarch
  • rubygem-pulp_container_client-2.10.3-1.el8.noarch
  • rubygem-pulp_deb_client-2.18.0-1.el8.noarch
  • rubygem-pulp_file_client-1.10.0-1.el8.noarch
  • rubygem-pulp_ostree_client-2.0.0-0.1.a1.el8.noarch
  • rubygem-pulp_python_client-3.6.0-1.el8.noarch
  • rubygem-pulp_rpm_client-3.17.4-1.el8.noarch
  • rubygem-pulpcore_client-3.18.5-1.el8.noarch
  • rubygem-qpid_proton-0.37.0-1.el8.x86_64
  • rubygem-smart_proxy_pulp-3.2.0-3.fm3_3.el8.noarch

Distribution and version:
RHEL 8.6

Other relevant data:
Ubuntu OS Settings in Foreman:

  • Installation media points to an internal Ubuntu mirror. The two root folders for this server are “dists” and “pool”. The mirror works fine for patching Ubuntu hosts.
  • Templates: host initial config template (Linux host_init_config default) and provisioning template (preseed default) are defined. I’ve also tried adding the default preseed finishing template. If I add a discovery kexec template (Discovery Debian Kexec) then the host does NOT reboot after I enter the provisioning information - so I had to remove/undefine this.
    All of the templates and install media are associated with the org and location.

I’ve never had any issues kickstarting RHEL in Satellite, but RHEL provides a separate repo for kickstarting.
Is there something particular that I’m missing in the installation medium, or a step that I’ve missed that would cause this issue?

Updating this, so it looks like Ubuntu 20.04.2+ and Ubuntu 22.04 use a different provisioning mechanism, the old debian-installer method is deprecated.

I’m currently attempting to piece together instructions from the various posts on these forums and bugs/patches on the Foreman github. The Orcharhino documentation has instructions, but obviously they’re based on a Foreman variant with patches not available in 3.3.0.

Has anyone managed to compile a working guide for getting Ubuntu 20 & 22 bare metal provisioning working in Foreman 3.3.0?