[15:30] Odd_Bloke: thanks for the reminder about the upcoming meeting [15:30] * rharper goes and gets the meetingology commands [16:11] I am going to have to miss the meeting today, sorry [16:11] rharper: I'll catch up to the comments in the next couple of days [16:12] robjo: np [16:15] #startmeeting Cloud-init bi-weekly status [16:15] Meeting started Mon Jul 22 16:15:03 2019 UTC. The chair is rharper. Information about MeetBot at http://wiki.ubuntu.com/meetingology. [16:15] Available commands: action commands idea info link nick [16:15] \o/ [16:15] #chair Odd_Bloke [16:15] Current chairs: Odd_Bloke rharper [16:15] hi folks, welcome to another cloud-init community status meeting. All discussions and interjections welcome. [16:16] cloud-init upstream uses this meeting as a platform for community updates, feature/bug discussions, and an opportunity to get some extra input on current development. [16:16] our format is the following topics: Previous Actions, Recent Changes, In-progress Development, Office Hours [16:16] anyone is welcome to participate, interject, make suggestions or ask questions [16:16] we host the meeting every two weeks at the date and time indicated in the IRC channel topic ^ [16:17] #topic Previous Actions [16:17] o/ [16:17] We had a few previous action items to look at [16:18] https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1832381 [16:18] Ubuntu bug 1832381 in cloud-init (Ubuntu) "vm fails to boot due to conflicting network configuration when user switches from netplan to eni" [Undecided,Incomplete] [16:18] AnhVoMSFT was looking to collect logs from this scenario; [16:19] hey! [16:19] it appears that getting an instance where the MAC address changes is harder so fewer folks trip over this; however, we agreed that cloud-init can track which renderer it used and if it switches it can clean up the config it wrote; [16:19] #action rharper to update https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1832381 status [16:19] ACTION: rharper to update https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1832381 status [16:19] Ubuntu bug 1832381 in cloud-init (Ubuntu) "vm fails to boot due to conflicting network configuration when user switches from netplan to eni" [Undecided,Incomplete] [16:20] The other action was to review https://code.launchpad.net/~vtqanh/cloud-init/+git/cloud-init/+merge/369785 [16:20] This was completed the other week while we worked toward the 19.2 release; that branch is currently work-in-progress, awaiting feedback/changes from submitter [16:21] that's all of the action items from previous meeting [16:22] previous meeting status found here: [16:22] #link http://ubottu.com/meetingology/logs/cloud-init/2019/cloud-init.2019-07-08-16.16.html [16:23] normally at the cloud-init.github.io status page; looks like we didn't push the logs there. [16:23] #action rharper to followup with blackboxsw on pushing status minutes up to cloud-init.github.io page [16:23] ACTION: rharper to followup with blackboxsw on pushing status minutes up to cloud-init.github.io page [16:23] #topic Recent Changes [16:25] % git log --oneline --since 2019-07-08 [16:25] a02c0c9 (HEAD -> master, origin/master, origin/HEAD) cloud_tests: updates and fixes [16:25] 5498107 Fix bug rendering MTU on bond or vlan when input was netplan. [16:25] b3a87fc net: update net sequence, include wait on netdevs, opensuse netrules path [16:25] 060b1a1 (tag: 19.2, raharper/release/19.2, release/19.2, fix/fs_setup_custom_command_lp1801790) Release 19.2 [16:25] 07b1723 net: add rfc3442 (classless static routes) to EphemeralDHCP [16:25] 1404817 templates/ntp.conf.debian.tmpl: fix missing newline for pools [16:25] a785462 Support netplan renderer in Arch Linux [16:25] a066ccd Fix typo in publicly viewable documentation. [16:26] d9769c4 Add a cdrom size checker for OVF ds to ds-identify [16:26] 9c47c68 VMWare: Trigger the post customization script via cc_scripts module. [16:26] a24550a Cloud-init analyze module: Added ability to analyze boot events. [16:26] a6faf3a Update debian eni network configuration location, retain Ubuntu setting [16:26] e5f5421 net: skip bond interfaces in get_interfaces [16:26] 217c893 Fix a couple of issues raised by a coverity scan [16:26] biggest item in there is the 19.2 release [16:26] #link https://discourse.ubuntu.com/t/cloud-init-19-2-release/11873 [16:26] a big thank you from the cloud-init team to everyone who helped contribute to the release [16:27] do you have time for a little BSD update? [16:27] Yes, let's talk about In progress developement [16:27] #topic In Progress Development [16:27] Goneri: go ahead [16:28] #topic FreeBSD/NetBSD status [16:28] so there is two active branches, the first one is: https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/368507 [16:28] #link https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/368507 [16:29] it has started with a tiny fix to address a configuration difference with FreeBSD (there is no chpasswd there) [16:29] and it's now a slightly bigger refactoring now, I believe it clarify the code base and I would like to land it like that. [16:30] a discussion is ongoing with rharper on the PR [16:30] second PR is https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/365641 [16:30] #link https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/365641 [16:30] this one is much bigger, and I've just addressed the last comment from rharper, I test it often and it works fine for me [16:31] if you want to give it a try, I pushed some pre-built images here: http://bsd-cloud-image.org/ [16:31] nice! [16:31] I test it with OpenStack and NoCloud, a friend who maintains CBSD also test it on Bhyve (FreeBSD) [16:32] finally, the last one is https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/368508 [16:32] #link https://code.launchpad.net/~goneri/cloud-init/+git/cloud-init/+merge/368508 [16:32] No active merge request yet because it depends on the two actives PR that I just mentioned [16:32] this patch brings NetBSD support (7 and 8) [16:33] I would like to work on OpenBSD later, but it's still a low priority [16:34] Goneri: thanks for the update [16:34] finally, I've a bunch of scripts that I use to build my images [16:35] it's still rather raw, but I would like to integrate that at some point with your CI [16:35] that's all [16:35] thanks [16:36] #topic In Progress Development [16:36] #link https://code.launchpad.net/~tribaal/cloud-init/+git/cloud-init/+merge/369516 [16:36] Adding a new datasource for Exoscale [16:36] #link https://code.launchpad.net/~xiaofengw/cloud-init/+git/cloud-init/+merge/367889 [16:36] vmware user-defined-scripts [16:37] #link https://code.launchpad.net/~daniel-thewatkins/cloud-init/+git/cloud-init/+merge/369783 [16:37] Allow datasources to configure the order of network-config sources [16:37] #link https://code.launchpad.net/~raharper/cloud-init/+git/cloud-init/+ref/feature/stage_threadpool [16:38] I'm expecting to have a response to Ryan's review comments on that today, and whatever conclusion we reach shouldn't be too much work to implement. [16:38] definitely [16:38] And then I'll have a follow-up to split apart the "cmdline" network data source in to "cmdline" and "initramfs", which are currently conflated. [16:39] (Neither of these should cause behavioural changes, they're just setting us up for some data source work down the line.) [16:40] The threadpool branch is a more general approach to handle running modules async from the mainthread; there were some limitations depending on systemd; and there is a desire for more than just disk_setup to run async; this branch I'm working on would allow modules to be tagged async and they run in a separate thread allowing the next module to proceed; we then join at the end of stage to ensure completion of threads; [16:41] any other upstream development I'm missing? [16:43] ok, I think that's it then; [16:43] #topic Office Hours (next ~30 mins) [16:43] feel free to ask for help, reviews, discussions on any cloud-init items you're looking at. [16:44] Is Ubuntu the recommended, or most maintained, distribution of cloud-init? [16:46] metsuke: hi; cloud-init in Ubuntu is the most-up-to-date as we're both the upstream maintainers (working for Canonical) and handle getting the latest upstream into Ubuntu images [16:47] metsuke: we also help produce daily rpm builds for RedHat/Centos/Fedora in our copr repo [16:47] #link https://copr.fedorainfracloud.org/coprs/g/cloud-init/cloud-init-dev/ [16:48] #link https://download.opensuse.org/repositories/Cloud:/Tools/ [16:48] suse's cloud:Tools keeps a really recent cloud-init as well [16:48] great, thanks for the info! [16:48] sure [16:49] I'm looking to distribute standardized VMs to 100+ sites running ESXi so I'm trying to find the best way to do that =) [16:52] metsuke: If you have any questions, please don't hesitate to ask in here; we're generally around US working hours, for reference. [16:53] yes, cloud-init can help keep your base image generic, allowing customization to happen at boot time; [16:53] thanks, I'm trying to do some preliminary investigation so I have an intelligent question to ask =P [17:15] #endmeeting [17:15] Meeting ended Mon Jul 22 17:15:54 2019 UTC. [17:15] Minutes: http://ubottu.com/meetingology/logs/cloud-init/2019/cloud-init.2019-07-22-16.15.moin.txt [17:16] Thanks everyone ! [17:24] Yes, thanks folks! [18:16] rharper: https://code.launchpad.net/~daniel-thewatkins/cloud-init/+git/cloud-init/+merge/369783 <-- I have hopefully responded properly to your comment here, let me know if you have any questions! [18:29] Odd_Bloke: thanks! [19:09] Hi I'm Ahmed from Microsoft. I'd like to get more information on cloud testing with cloud init? [19:10] AhosmanMSFT: testing, what, exactly? [19:11] upstream cloud tests [19:12] https://cloudinit.readthedocs.io/en/latest/topics/tests.html [19:12] AhosmanMSFT: hi [19:13] AhosmanMSFT: I think the platforms is the most interesting part [19:14] if you look at tests/cloud_tests/platforms/ec2/platofrm.py ; for Azure, you'd need a platform subclass which talks Azure API to implemeant each of the platform methods [19:15] that's mostly image related and then handling the instance creation/destruction in instance.py for the platform. [19:17] rharper I see, so the base code is there it just needs to be inherited by us [19:18] AhosmanMSFT: yeah; the structure of the tests framework is there, you'd be adding a new platform, [19:19] the basic flow is 1) get an image 2) boot it 3) copy in the cloud-init package to be installed/upgraded 4) install test cloud-init package 5) clean-up 6) shutdown and capture image for boot; [19:20] this is saved as a snapshot image; and then the collect phase boots the snapshot for each test-case we have; and then waits to ssh'in and collect output; [19:20] and the verify stage runs the unittests against the collected data; [19:30] rharper: Thanks, trying this now. Can I contact you for assistance? [19:33] AhosmanMSFT: Feel free to ping rharper or myself if you need anything. [19:33] Odd_Bloke: 👍 [20:55] does cloud-init directly compare to hashicorp's Packer for its base functionality? I'm trying to get a sense of scope of features and use case. [20:56] https://events.linuxfoundation.org/wp-content/uploads/2017/12/cloud-init-The-cross-cloud-Magic-Sauce-Scott-Moser-Chad-Smith-Canonical.pdf [20:57] metsuke: ^^ [20:58] metsuke: I would say that packer creates custom _images_ where as cloud-init customizes _instances_ ; starting with a generic image, at _runtime_ you pass in user-data/configuration and cloud-init helps customize that instances consistently (allowing a common image and config to run the same on many platforms) [20:59] Interesting. So does cloud-init need access to the platform that the images are being spun up on? [21:00] or rather, are you executing cloud-init in the same network in which your VM platform resides (including cloud)? [21:02] metsuke: cloud-init runs within the instance. [21:03] So during boot, it will run, determine which platform it is on, gather configuration from various sources, and then apply that configuration. [21:04] hm, that's kind of backwards from the other model. Cool [21:04] For the files __init__.py, image, instance, platform and snapshot.py in cloud_tests. Should I work on these in any specific order, since some of the files depend on others. Also after implementing the files, what would be the next steps? [21:17] AhosmanMSFT: So I haven't written a cloud test platform myself, so take this with a grain of salt, but I think you're going to need to work on them all together. That said, I would do this by working out a cloud_tests command line that works, changing the platform to "azure" and then iterating on the missing pieces reported by the framework. (I _expect_ that would go in the order platform, image, [21:17] snapshot, instance based on reading cloud_tests/collect.py.) [21:18] So, for example, `tox -e citest -- tree_run --verbose --os-name bionic --preserve-data --data-dir ~/scratch/citest --platform lxd --test-config tests/cloud_tests/testcases/modules/ntp.yaml` runs the NTP tests in lxd for me. So I would change "lxd" to "azure" and see what happens, and then iterate. [21:19] AhosmanMSFT: Is that a useful answer? If not, I'll ping the folks with more domain knowledge. :) [21:22] That helps. It would be great to get some more insight from them too. [21:23] rharper: powersj: Perhaps you can flesh out my answer to help AhosmanMSFT get started on Azure cloud tests? [21:51] Odd_Bloke: that's exactly where'd I'd start as well. [23:48] AhosmanMSFT, I would start with platform. That is how you setup how we interact with Azure. Any work that is needed before an instance is done goes there [23:48] After that, go after instance. There all the basic operations of start stop and getting the instance log [23:49] then go to snapshot to generate a... snapshot of the instance :) [23:49] and finally image [23:50] * powersj disappears for a while