cloud-init
The de facto standard for configuring a virtual machine on first boot. Originally from Canonical for Ubuntu in the cloud, now present in practically every cloud image in existence.
At boot, cloud-init queries the platform's metadata service — the well-known link-local address 169.254.169.254 — for instance data and the user-data you attached when creating the machine. A cloud-config document starts with the line #cloud-config and is plain YAML: set the hostname, add users and SSH keys, install packages, write files, run commands. That lets one generic image become any server without anyone logging in manually. The NoCloud data source lets you do the same locally via a small ISO, which Proxmox and libvirt exploit. It only runs on first boot unless you clear its state.