Spencer Smith 38609bf581 feat: introduce ability to specify extra hosts in /etc/hosts
This PR will allow users to configure /etc/hosts through the network
config section, as opposed to having to use a file append operation.

Example usage might look something like:

```
...
...
machine:
  ...
  ...
  network:
    extraHostEntries:
      - ip: 192.168.1.100
        aliases:
          - test
          - test.wtf.bbq
...
...
```

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-04-03 12:17:55 -04:00
..

networkd

Networkd handles the addressing and interface configuration in Talos.

The general workflow is:

  • Discover all network interfaces ( networkd.Discover() )
  • Create an abstract representation of the network interface configuration ( nic.NetworkInterface )
  • Merge userdata configuration options on top of the nic.NetworkInterface representation
  • Configure the network interfaces based on the abstract representation ( networkd.Configure(...) )
    • Bring interface up
    • Begin address configuration method ( address.DHCP, address.Static )
    • Create rtnetlink message to set address based on config method
    • Create rtnetlink message to set any routes defined by the address method