Better way how to dynamically set the hostname during installation via autoinstall + cloud-init?

I provision multiple desktop computers with Ubuntu 24.04 LTS via netboot and autoinstall + cloud-init and during that process I would like to set the hostname to whatever is configured on my dhcp- server.
Right now my user-data looks like this:

#cloud-config
autoinstall:
  ...
  identity:
    hostname: localhost
    ...
  ...
  late-commands:
    - curtin in-target -- bash -c 'hostname=$(nslookup "$(hostname -I | awk "{print \$1}")" | awk "/name =/ {print \$4}" | sed "s/\.$//" | cut -d"." -f1); echo "$hostname" > /etc/hostname; hostnamectl set-hostname "$hostname"'

Which works, but seems like a dirty way to set the hostname dynamically.
I’m wondering if there is a better way to do it, preferably without using any late-commands.
An ideal solution would be if the configuration just uses the hostname supplied by the dhcp server.

What I tried:
(i) Ommitting the hostname key in the identity section - Is not allowed, as the key is required.
(ii) Toggling preserve_hostname true and false in the user-data section - neither seem to affect anything.
(iii) Explicitly setting use_hostname to true in the dhcp4-overrides section of the network configuration - does not change anything at all.

I’m completely new to using autoinstall and cloud-init so there is probably something obvious am missing.

I have the same question.

Since the autoinstall configuration is meant for mass deployment, I’m puzzled by the fact that we need to use this trick to make the autoinstall yaml specific for each computer. It makes me think that we are not doing it the right way.

What are we missing ?

See also: