diff --git a/dracut/30ignition/coreos-static-hostname.service b/dracut/30ignition/coreos-static-hostname.service new file mode 100644 index 0000000..aa9359c --- /dev/null +++ b/dracut/30ignition/coreos-static-hostname.service @@ -0,0 +1,13 @@ +[Unit] +Description=CoreOS Static Hostname Agent +DefaultDependencies=false +Before=initrd.target +After=systemd-networkd.service initrd-root-fs.target +Wants=systemd-networkd.service initrd-root-fs.target + +# Ensure Ignition can overwrite /etc/hostname +Before=ignition-files.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/coreos-metadata --cmdline --hostname=/sysroot/etc/hostname diff --git a/dracut/30ignition/ignition-generator b/dracut/30ignition/ignition-generator index 76bb2aa..573e511 100755 --- a/dracut/30ignition/ignition-generator +++ b/dracut/30ignition/ignition-generator @@ -45,6 +45,9 @@ if $(cmdline_bool coreos.first_boot 0); then if [[ $(cmdline_arg coreos.oem.id) == "packet" ]]; then add_requires coreos-static-network.service fi + if [[ $(cmdline_arg coreos.oem.id) == "hcloud" ]]; then + add_requires coreos-static-hostname.service + fi # On EC2, shut down systemd-networkd if ignition fails so that the instance # fails EC2 instance checks. diff --git a/dracut/30ignition/module-setup.sh b/dracut/30ignition/module-setup.sh index 447686a..656bcc6 100755 --- a/dracut/30ignition/module-setup.sh +++ b/dracut/30ignition/module-setup.sh @@ -49,6 +49,9 @@ install() { inst_simple "$moddir/coreos-digitalocean-network.service" \ "$systemdsystemunitdir/coreos-digitalocean-network.service" + inst_simple "$moddir/coreos-static-hostname.service" \ + "$systemdsystemunitdir/coreos-static-hostname.service" + inst_simple "$moddir/coreos-static-network.service" \ "$systemdsystemunitdir/coreos-static-network.service"