[08:33] turova: what do your logs say? [12:50] meena it looks like it loads a network-config file from the mounted cloudinit drive that has correct values, but those never get to their destination [12:52] it reads from /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg, finds that it has no interfaces to rename (maybe because I already did that) and then just writes the blank config over [13:28] iiiiiinteresting. [13:41] it supposedly works with the premade proxmox OS templates, so I guess I'll just pull one of those down and see what the differences are when I have some time [14:06] *nod *nod *nod [14:06] * meena has never worked with proxmox [15:29] Odd_Bloke: Hi! I've already signed the CLA, can you take a quick look at https://github.com/canonical/cloud-init/pull/70 whenever you have time? Should I update the branch? [16:23] no assigned reviewer yet for https://github.com/canonical/cloud-init/pull/162 can we please get some eyes on this? thanks [16:24] robjo: I'll give first pass today [16:24] thanks [16:26] robjo: i have read your email to the list… and i like it. [16:27] robjo: do you think you could outline what a refactoring would look like in my document? [16:29] meena: I think the step before such an outline is to get conceptual agreement, i.e. rharper blackboxsw, smoser and others would have to agree that this rather large change is the way forward w.r.t. network config writing [16:29] robjo: i meant… in words. [16:30] Well it would basically the same as what I stated in e-mail. I thought about whether I wanted to comment in the doc or via e-mail and then decided to go with the e-mail approach [16:33] robjo: aye. [16:34] robjo: so, my main issue re writing network config is that right now, a lot of code for reading and *directly* manipulating (Ephemeral*) network only works on linux. [16:34] so Goneri created a cool patch for FreeBSD, but it only works for DataSources that don't rely on the network. [16:37] I get that. The question for me becomes do we want to add another way of handling it on the side YOUR_FAVORITE_BSD rendereror are we better of to stick this stuff with the distro implementation [16:38] yes, we should have a method in distros/freebsd.py to set-up a temporary network. [16:38] based on the way things look ATM I think there is a good argument to be made that the network config rendering belongs with the distribution implementation in some way, i.e. the distro implementation knows how it should render the network config rather than the network config is generic and considers distribution needs as a side effect [16:40] on BSD, Yes. On Linux, it's different. [16:40] this is the reason why the NetBSD and OpenBSD PR come with their own net renderer too. [16:40] The temporary network setup, while it works, is not linux generic either. It depends on the dhcp-client package which is no longer supported in SUSE [16:41] i believe i did mention that somewhere… [16:41] but it might have just been IRC, so: lost in noise [16:42] Naive question, I'm under the impression the Ephemeral network thing is just here to handle some corner-cases. Is it really the case? [16:42] A generic way for the temporary network setup is to have Python code in cloud-init that sends a basic dhcp4 and or dhcp6 request [16:42] smoser: was exploring that at som epoint [16:43] this would make the temporary network setup generic and should really be the first step [16:50] i've looked at dhcp implementations in python at one point, and i didn't like what i saw. [16:51] it would be cool if the OS had standard network library, which exposed dhcp that we could wrap in ctypes and call [16:54] well, we should port NetworkManager on the BSD :-) [16:55] otubo: thanks! I think you probably need to use util.del_file() https://github.com/canonical/cloud-init/pull/70/files#r365882842 and I just added a couple of minor nits in review as well. [16:55] otubo: other than the nits, it looks good to go [16:56] and we can merge that today when you get a chance to resolve or respond/reject comments. [16:56] Goneri: when i suggested we port netplan, you were against it! [16:59] I was joking in both cases, the real solution being systemd-networkd :-) [17:26] meena: python-scapy was the only thing that I thought could relaly get us there. [18:21] smoser: scapy looks powerful… dangerously so. [18:26] meena: well.. doing a dhcp client really *should* be easy. [18:26] but, almost hilariously, all example dhcp clients in python assume there is already an ip address on the interface. [18:27] from memory... they do not use raw sockets and would need to to actually do a dhcp request on a nic that did not have an ip yet. [18:29] soooooo, that's why it needs libpcap? [20:11] okay, so, how do we get buy-in? i think maybe i'll be able to attend tomorrow's meeting and try to "sell" robjo's idea? [20:19] Well the ISC reference implementation for DHCP is Mozilla Public License 2.0 thus we cannot subsume it and wrap a Python interface around it. I am afraid if we are going to be independent of any external tool for the temporary network setup someone has to sit down and write the code in Python and send a PR [20:20] That would resolve the issue on *BSD for the temporary network setup, and would resolve the issue on SUSE w.r.t. depending on an unsupported package [20:21] After that the second step is to decide on the renderer approach [20:21] From my perspective there is buy in for step 1 already [20:25] replacing the EphemeralDHCP with a scapy (or something else) aka- cloud-init-dhclient is definitely something we're interested in; it allows us to drop the dhclient package from newer images, and sounds like it can be more portable to non-linux distros as well [20:27] for renderers and net module refactoring; I'm certainly on board with the goal of enhacing cross platform and cross distro support for the cloudinit.net module and additional renderers (and robjo distro variant support within a renderer class) [20:47] i feel like a giant but should be coming out of rharper any second now [21:01] gon… damn.