Introduction

Introduction

Distribution installers, cloud instantiation, image builds for particular
devices, or any other way to deploy an operating system put its desired
network configuration into YAML configuration file(s). During
early boot, the netplan “network renderer” runs which reads
/{lib,etc,run}/netplan/*.yaml and writes configuration to /run to hand
off control of devices to the specified networking daemon.

  • Configured devices get handled by systemd-networkd by default,
    unless explicitly marked as managed by a specific renderer (NetworkManager)
  • Devices not covered by the network config do not get touched at all.
  • Usable in initramfs (few dependencies and fast)
  • No persistent generated config, only original YAML config
  • Parser supports multiple config files to allow applications like libvirt or lxd
    to package up expected network config (virbr0, lxdbr0), or to change the
    global default policy to use NetworkManager for everything.
  • Retains the flexibility to change backends/policy later or adjust to
    removing NetworkManager, as generated configuration is ephemeral.
1 Like