00:00:19 <nitzmahone> #startmeeting Ansible Azure Working Group
00:00:20 <zodbot> Meeting started Thu Mar  7 00:00:19 2019 UTC.
00:00:20 <zodbot> This meeting is logged and archived in a public location.
00:00:20 <zodbot> The chair is nitzmahone. Information about MeetBot at http://wiki.debian.org/MeetBot.
00:00:20 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
00:00:20 <zodbot> The meeting name has been set to 'ansible_azure_working_group'
00:00:24 <nitzmahone> hiya
00:00:50 <nitzmahone> #chair yungezz_ zikalino8265 yuwei
00:00:50 <zodbot> Current chairs: nitzmahone yungezz_ yuwei zikalino8265
00:00:58 <yungezz_> Hi Matt
00:01:24 <yungezz_> First thanks for Pr reviews
00:02:20 <nitzmahone> no worries- got a couple more to do for Zim ;)
00:02:56 <zikalino8265> hi all :-)
00:03:41 <nitzmahone> I know Zim wanted to chat about generic idempotence strategy- anyone else have anything for today?
00:04:15 <yungezz_> I have some questions on tower
00:04:37 <yungezz_> Will you join red hat summit this year?
00:04:47 <nitzmahone> Yes, I'm planning to be there
00:04:53 <yungezz_> Great
00:04:54 <nitzmahone> I can't help much on Tower though ;)
00:05:17 <zikalino8265> myself and Stuart have 2 hours workshop
00:05:23 <yungezz_> Ok, just some general user scenarios
00:05:27 <yungezz_> Ok
00:05:54 <nitzmahone> Oh, general stuff sure, but if it's deep technical something about Tower, you're asking the wrong guy ;)
00:06:36 <yungezz_> Got it :)
00:07:32 <nitzmahone> zikalino8265: cool- they didn't accept my talk this year, so other than customer meetings and a couple of "ask an expert" sessions, I'm pretty free... I'll try to come be the peanut gallery at your workshop ;)
00:07:37 * jborean93 sorry lost track of time
00:07:52 <zikalino8265> peanut gallery? :-)
00:08:44 <nitzmahone> does this help? https://www.youtube.com/watch?v=14njUwJUg1I
00:09:05 <nitzmahone> peanut gallery == the people that heckle the presenters
00:09:33 <zikalino8265> ah, ok, learned something new today
00:09:36 <zikalino8265> :-)
00:10:12 <yungezz_> :D
00:10:23 <nitzmahone> yungezz_ did you have some questions you wanted to try asking, or probably too deep?
00:10:38 <yungezz_> Zim can go fist
00:10:46 <nitzmahone> #topic https://zikalino.github.io/blog/2019/03/06/ansible-modules-proposed-improvements/
00:10:51 <zikalino8265> yeah, so i just sent a link to the note
00:10:55 <yungezz_> About idempotence
00:11:12 <zikalino8265> i have been playing with different approaches for long time now.
00:11:27 <zikalino8265> and i thin this kind of approach would be probably the best.
00:11:52 <nitzmahone> Yeah, I like the approach
00:11:57 <zikalino8265> i have tested if i can add any additional azure specific metadata
00:12:16 <nitzmahone> I make no guarantees that the extra data in the argspec won't break in the future, but it's probably a fine appraoch
00:12:21 <zikalino8265> maybe we could just make some of these things ansible-wide at some point
00:12:59 <nitzmahone> I think the GCE folks do something similar with their modules- they're all generated
00:13:15 <nitzmahone> but the fully generated modules are a pain for us
00:13:26 <zikalino8265> i don't know, but it looks similar to their input files ;-)
00:13:57 <jborean93> this does somewhat align the modules more to the actual API. Might be encouraging bad  practices when building the module itself
00:15:19 <zikalino8265> if it's not flexible enough...
00:15:19 <nitzmahone> in most cases though there's a 1:1 mapping of a module arg to an API property, so having a declarative way to say "just do a straight comparison" or "ignore this one because it can't be updated" is a nice way to avoid writing stupid/repetitive/error-prone code that's just doing those basic comparisons
00:15:59 <zikalino8265> right now we have too many problems. every module behaves differently :-(
00:16:08 <nitzmahone> There will always be special cases where the module needs to do something more, but having a framework like this in place would cover the vast majority
00:16:22 <jborean93> fair enough
00:17:08 <nitzmahone> (but yes, would also make it easier to build "dumb API wrapper" style modules ;) )
00:17:31 <zikalino8265> so we need good framework + good guidelines
00:17:51 <nitzmahone> Yeah- having this framework doesn't absolve the module author of the need to build good UX
00:18:13 <nitzmahone> (just makes it easier to do the repetitive parts in a declarative way)
00:19:34 <nitzmahone> Anything more you want to talk about on that? I'd be curious to see a strawman module or two (esp with some of the more complex ones where you have to dig a few layers into the API object to get the value)
00:20:07 <zikalino8265> yes, i can do it with selected 2 modules
00:21:06 <zikalino8265> thanks for input :-)
00:21:16 <nitzmahone> np- exciting stuff!
00:21:27 <yungezz_> My turn then. In what scenarios user will use tower rest api? Is it common to integrate api call with other tools like ci/cd?
00:21:28 <nitzmahone> OK, on to yungezz_ questions
00:21:42 <nitzmahone> Yeah, that's what it's there for
00:21:55 <yungezz_> Oh, ok
00:22:07 <nitzmahone> CI/CD, kicking off Tower jobs in response to external events, etc
00:22:42 <yungezz_> Why not directly call ansible in ci/cd
00:22:57 <nitzmahone> Some people have built custom UI frameworks or integration with other apps where user can click a button and behind the scenes Tower does $thing
00:23:26 <yungezz_> Any examples?
00:23:33 <nitzmahone> Some people do that too, but Tower provides credential storage, delegation, eventing, auditing, lots of other things over the top of command-line Ansible
00:23:43 <yungezz_> Yes
00:25:16 <yungezz_> I saw tower price tier, is there some tier like pay as you go?
00:25:36 <yungezz_> So far standard and premium pay yearly
00:25:39 <nitzmahone> I think they've done something like that for cloud usage
00:25:47 <nitzmahone> But not sure
00:26:40 <yungezz_> Ok
00:26:43 <nitzmahone> ($$$ stuff is very far away from my daily experience ;) )
00:27:18 <nitzmahone> any others?
00:27:35 <yungezz_> My question done
00:27:52 <nitzmahone> Cool... Anybody got anything else for today then?
00:28:14 <zikalino8265> i think i am fine
00:28:19 <yungezz_> yuwei: how about 2sdks issue Jordan asked?
00:28:24 <jborean93> Yea
00:28:33 <jborean93> sorry was just about to bring it up :)
00:29:11 <yuwei> which one?
00:29:21 <yungezz_> Paramiko
00:29:21 <yuwei> Seems I missed
00:29:47 <jborean93> So the first question was around the paramiko requirement in azure-cli-core
00:29:53 <yungezz_> And the other about oauth latest version not compatible
00:29:56 <yuwei> oh yes
00:30:02 <yuwei> ssh things
00:30:14 <jborean93> the 2nd was an issue that was reported around oauthlib 3+ failed with msrest.credentials
00:30:46 <yuwei> I haven't got the answer now
00:31:21 <yuwei> I m still following up
00:31:31 <jborean93> ok, I'll pass that along
00:31:33 <yungezz_> Jordan, Maybe we can send you email after figure it out
00:31:44 <jborean93> sure
00:32:28 <nitzmahone> OK, if nothing else then, closing in 5...
00:32:33 <nitzmahone> 4..
00:32:36 <nitzmahone> 3..
00:32:40 <nitzmahone> 2..
00:32:42 <nitzmahone> 1..
00:32:47 <nitzmahone> Thanks all- til next week!
00:32:50 <yungezz_> Thanks and bye!
00:32:50 <nitzmahone> #endmeeting