core_public_irc_meeting
LOGS
19:03:38 <bcoca> #startmeeting core public irc meeting
19:03:38 <zodbot> Meeting started Tue Nov  2 19:03:38 2021 UTC.
19:03:38 <zodbot> This meeting is logged and archived in a public location.
19:03:38 <zodbot> The chair is bcoca. Information about MeetBot at https://fedoraproject.org/wiki/Zodbot#Meeting_Functions.
19:03:38 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
19:03:38 <zodbot> The meeting name has been set to 'core_public_irc_meeting'
19:03:43 <nitzmahone> o/
19:03:47 <bcoca> #topic https://github.com/ansible/ansible/pull/76113
19:04:40 <felixfontein> o/
19:05:02 <bcoca> @goneri ?
19:05:27 <nitzmahone> I'm still -1 for this in core until we've got proper stateful workers/connections everywhere to be able to manage it correctly. Look at recent bugs on it and you can see some of the reasons that doing it "unmanaged" causes problems...
19:05:43 <Goneri> Hi, sorry I'm on PTO this week. Can we speak about it next weekend instead?
19:05:57 <nitzmahone> no worries :D
19:05:59 <bcoca> no, not on weekend, but next week
19:06:02 <bcoca> ;-p
19:06:06 <bcoca> enjoy pto
19:06:27 <Goneri> Thanks!
19:06:53 <bcoca> #topic https://github.com/ansible/community/issues/631#issuecomment-955323253
19:07:03 <bcoca> felix, unsure what you are asking, dindt you add these already?
19:07:38 <felixfontein> yes, but I added them to community.general. it would be nice if they also exist in core, so that one does not have to install a collection like community.general to get access to these
19:07:43 <sivel> I'm not a huge fan of those plugins
19:07:56 <felixfontein> also core can more easily guarantee that they don't break in the future ;)
19:08:07 <bcoca> if adding, it would be general to 'plugin_type' not jjust specific ones
19:08:22 <felixfontein> bcoca: that would make sense, yes
19:08:43 <felixfontein> sivel: is that because you think roles/playbooks should not depend on such information?
19:08:47 <nitzmahone> I was really close to adding some form of the actions/lookups that the core tests use internally to core itself in the original collections feature, but I wasn't happy with the UX for them.
19:08:49 <bcoca> but my worry is that it encourages 'meta plays' that will conditionally create tasks  ... which does very little for readability/auditability/simplicity
19:09:24 <felixfontein> bcoca: unfortuntaely some will definitely abuse them...
19:09:28 <sivel> yeah, I am basically with bcoca here. I don't think I like the concept
19:09:55 <bcoca> i would say these things are required on install and that --syntax-check should be 'normal' way to detect, play/role should not be that 'self concious'
19:10:14 <bcoca> having these at runtime ... make it too 'meta' for me
19:10:26 <felixfontein> I personally find them very useful for optional dependencies of a collection (or role): you can make sure that dependencies are around (when features are asked for by the user which need these) before everything is half-way set up and potentially expensive objects have been created
19:10:32 <nitzmahone> I too was worried about the potential for abuse/misuse- it's definitely handy for things like pre-flight checks on more dynamic content, but yes, could definitely be abused for other nefarious purposes :D
19:10:42 <sivel> A playbook author should just declare what it wants and away it goes. I'm not a fan of adding introspection capability like this
19:10:44 <bcoca> felixfontein: i do not dispute usefulness, its appropriateness
19:11:26 <bcoca> lets take python for example, this is adding a 'detect library' function to eval()
19:11:49 <felixfontein> python has try/except for imports :)
19:11:58 <bcoca> not that its not possible todo ... it just does not encourage the right way to do it
19:11:58 <felixfontein> (which modules use a lot)
19:12:28 <sivel> it's also not exactly clear on what a set of tasks would accomplish in any reasonable manner, as it's hugely dependent on a users install preferences or availability or lack of functionality
19:12:31 <bcoca> yes, cause modules lack one very important thing ... a way to declare dependencies on install (well, collections /a-builder are a solution to that)
19:12:44 <bcoca> and plugins were not supposed to 'kill' ansible on missing dep
19:13:12 <bcoca> and we dont use it for 'conditional importing' but for 'nice error reporting to user' .. big diff
19:13:29 <bcoca> and ansible itself already reports 'missing' pluigins
19:13:36 <bcoca> w/o a traceback
19:13:52 <bcoca> play author should not worry about that imho
19:14:05 <felixfontein> sivel: in my case, I allow to chose from a set of DNS providers in a role, and I don't want to force installation of all these collections (since most users will need at most one of these). (also there's one DNS provider where you need to install a module in library/, and there's no way to handle that with dependencies if you don't want to vendor that module)
19:14:33 <sivel> include_role + tasks_from: aws :)
19:15:11 <felixfontein> sivel: but how do you make sure that the aws collection(s) you need for these tasks is installed?
19:15:29 <sivel> you don't. You document it, and let it fail
19:15:48 <felixfontein> but in this case, it only fails after starting ordering a certificate
19:16:15 <felixfontein> (which depending on the CA might cost money - fortunately no CA currently existing seems to charge for creating orders that are not fulfilled, but you never know ;) )
19:17:19 <felixfontein> I'm fine with just having these plugins in community.general, I personally think they should be part of core, but if you don't want that, I fully understand :)
19:17:43 <bcoca> if well documented, at that point i would make user responsible, you went extra 10 and created the detection, that is fine, but i don't think it is common enough case to justify core inclusion
19:18:03 <felixfontein> (also I already got similar feedback from community members... some really like this, some don't like it for basically the same reasons)
19:18:06 <bcoca> and i think the downsides are very relevant
19:18:34 <bcoca> i both like it and hate it (like it for my own use, hate it for the bad habbits it enables)
19:18:47 <felixfontein> :)
19:18:54 <nitzmahone> ditto
19:19:14 <nitzmahone> Like I said, I *almost* did it back in 2.8, but talked myself out of it
19:19:21 <bcoca> they are neat tools, i would just keep them in the 'masterful expert' section of the toolshed and not with the noobie tools
19:19:29 <sivel> felixfontein.awesome_plugins_you_cannot_live_without.a_module
19:19:52 <sivel> ;)
19:19:55 * nitzmahone adds another plug for `sivel.toiletwater`
19:20:00 <felixfontein> lol
19:20:35 <felixfontein> I do have felixfontein.tools, but I'm trying to empty it (by adding the interesting parts somewhere else); otherwise I'd probably add it in there
19:22:28 <bcoca> i should create collection with my libvirt stuff ....
19:23:30 <bcoca> k, sorry to say but seems there is mostly quorum against inclusion, the tools are nifty .. just not good to have something like that in core and peopl;e starting to create pbs that rely on it
19:23:37 <bcoca> # topic open floor
19:23:46 <bcoca> #topic open floor
19:29:24 <felixfontein> bcoca: sounds fair :)
19:30:35 <bcoca> eventually --syntax-check should list 'missing collections' aside from missing plugins
19:30:54 <nitzmahone> (though still "best effort" for dynamic stuff unfortunately)
19:31:06 <felixfontein> yep, for dynamic stuff it will likely not work :)
19:31:29 <felixfontein> (would be madness to expect otherwise)
19:31:51 <bcoca> i have plans for that, but there will still be cases that will be 'include was skipped due to missing enough data to successfully template values'
19:32:11 <nitzmahone> or "we don't know what the heck you want to run here"
19:32:23 <bcoca> ^ exactly what i just said!
19:33:07 <bcoca> also works for - action: module={{action}} args={{myargs}}
19:33:48 <bcoca> well, no new topics, so im going to close meeting, we can continue rest of convo in dev channels
19:33:52 <bcoca> #endmeeting