When you boot a VM, it needs boot time data or bootstrapping
I use ansible for orchestration
I don't need boot time fancy,
I JUST need ssh bootstrap
Ok. And maybe network
Things I must consume at boot
-
Network Configuration
-
maybe SSH Keys
Network information should be easy
There is this thing called DHCP
Dynamic Host Configuration Protocol
Some providers don't support DHCP - because bong
cloud-init
Handles many cases, but not all
Has lots of dependencies that conflict with gate depends
'frozen' pending 2.0 rewrite
glean
http://git.openstack.org/cgit/openstack-infra/glean
No dependencies
Handles future static network config in config drive
Optionally also reads ssh keys from config drive
Nothing else
network_info.json
Hopefully added in liberty
services:
- type: dns
address: 72.3.128.241
- type: dns
address: 72.3.128.240
networks:
- network_id: 00000000-0000-0000-0000-000000000000
type: ipv4
netmask: 255.255.255.0
link: tapfafb5c05-a6
routes:
- netmask: 0.0.0.0
network: 0.0.0.0
gateway: 23.253.229.1
ip_address: 23.253.229.154
id: network0
- network_id: 11111111-1111-1111-1111-111111111111
type: ipv4
netmask: 255.255.224.0
link: tape501e1cd-10
routes:
- netmask: 255.240.0.0
network: 10.176.0.0
gateway: 10.208.160.1
- netmask: 255.240.0.0
network: 10.208.0.0
gateway: 10.208.160.1
ip_address: 10.208.169.118
id: network1
links:
- ethernet_mac_address: BC:76:4E:01:62:86
mtu: 1500
type: null
id: tapfafb5c05-a6
vif_id: fafb5c05-a661-48ae-9810-46601c7e22d1
- ethernet_mac_address: BC:76:4E:05:7B:06
mtu: 1500
type: null
id: tape501e1cd-10
vif_id: e501e1cd-10d0-4e63-b0c2-6542989ccbb2
Integrated with diskimage-builder
disk-image-create -o debian.qcow2 debian-minimal vm simple-init
You know what has less depends than minimal python?
glean.rs
https://github.com/emonty/glean.rs