Wednesday, 2019-04-17

*** jamesmcarthur has joined #zuul00:15
*** jamesmcarthur has quit IRC00:31
*** jamesmcarthur has joined #zuul00:31
*** jamesmcarthur has quit IRC00:35
*** rlandy|ruck has quit IRC01:11
*** threestrands has joined #zuul01:24
*** bhavikdbavishi has joined #zuul02:08
*** bhavikdbavishi1 has joined #zuul02:14
*** bhavikdbavishi has quit IRC02:14
*** bhavikdbavishi1 is now known as bhavikdbavishi02:14
*** manjeets_ has joined #zuul04:14
*** manjeets has quit IRC04:16
*** mattw4 has joined #zuul05:37
*** quiquell|off is now known as quiquell|rover05:47
*** pcaruana has joined #zuul06:11
*** mattw4 has quit IRC06:18
*** bhavikdbavishi has quit IRC06:40
*** gtema has joined #zuul06:54
*** yolanda_ has joined #zuul07:07
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Support fail-fast in project pipelines  https://review.openstack.org/65276407:12
*** quiquell|rover is now known as quique|rover|brb07:33
*** webknjaz has quit IRC08:03
*** webknjaz has joined #zuul08:03
*** quique|rover|brb is now known as quiquell|rover08:05
*** klindgren has quit IRC08:10
*** klindgren has joined #zuul08:10
*** gtema has quit IRC09:03
*** gtema has joined #zuul09:06
*** hashar has joined #zuul09:10
*** snapiri has joined #zuul09:28
*** threestrands has quit IRC09:36
*** electrofelix has joined #zuul09:46
*** sshnaidm|afk is now known as sshnaidm09:56
openstackgerritMarkus Hosch proposed openstack-infra/zuul master: Evaluate CODEOWNERS settings during canMerge check  https://review.openstack.org/64455709:56
*** strigazi has quit IRC10:09
*** AJaeger has quit IRC10:57
*** AJaeger has joined #zuul11:00
*** panda is now known as panda|lunch11:18
*** gtema has quit IRC11:37
*** rlandy has joined #zuul12:20
*** rlandy is now known as rlandy|ruck12:27
*** pcaruana has quit IRC12:30
*** panda|lunch is now known as panda12:32
*** pcaruana has joined #zuul12:53
*** bhavikdbavishi has joined #zuul12:56
*** bhavikdbavishi has quit IRC12:58
*** bhavikdbavishi has joined #zuul13:06
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: Add test_setup_reset_connection setting  https://review.openstack.org/65313013:27
pabelangerAJaeger: thanks, copypasta error^13:27
*** bhavikdbavishi1 has joined #zuul13:37
*** bhavikdbavishi has quit IRC13:38
*** bhavikdbavishi1 has quit IRC13:41
Shrewstobiash: About the nodepool memory usage issue corvus pointed out, are you seeing similar results in your environment?13:58
tobiashlooking13:59
*** quiquell|rover has quit IRC14:00
*** quiquell has joined #zuul14:00
*** quiquell is now known as quiquell|off14:00
tobiashI'm seeing something similar starting mid of january in our deployment14:02
Shrewstobiash: does that correlate to using the new launcher cache?14:03
pabelangerShrews: I looked at sf.io, but didn't see much change14:04
tobiashShrews: have to check but I think that was earlier14:04
tobiashI see increased memory usage starting begin of december but with also dropping curves14:04
tobiashand since mid of january it looks monotone increasing14:05
Shrewspabelanger: might want to keep an eye on it. *If* it is the cache, likely depends on the the rate of node launching14:06
pabelangerShrews: yah, I need to get some monitoring going on zuul.a.o too14:07
pabelangermordred: have any thoughts on https://review.openstack.org/650880/ ? that adds logic to skip zuul_debug_info on python 2.6 hosts14:09
mordredpabelanger: we have hosts that have python2.6???14:11
pabelangermordred: I do in ansible-network :(14:11
mordredpabelanger: wow14:11
pabelangeryah, that isn't even on centos614:11
mordredI'm fine with it - although in general we obviously can't *actually* support python2.6 - but I don't have a problem with an occasional whack-a-mole when it's easy like that14:13
tobiashShrews: what's weird is that I had one instance running for a month but it showed the memleak behavior after two weeks14:14
tobiashnot sure what causes this yet14:15
mordredpabelanger: remind me - is validate_host exercised speculatively?14:15
pabelangermordred: no, however I think I linked a test14:15
mordredok14:16
tobiashbut I cannot test this easily right now because we frequently do a rolling restart on config changes (due to the single cloud provider config reload problem)14:16
pabelangerlet me check14:16
pabelangeryah: https://logs.zuul.ansible.com/25/25/c6523631f0c8f519999daa70670a99e3caa074b0/check/vyos-test/d603cb4/job-output.html#l26814:16
mordredpabelanger: yeah - I see it14:16
mordredcool (we really need to finish the base-mimimal work at some point)14:16
pabelanger++14:17
corvusmordred, tobiash: regarding https://review.openstack.org/650276 -- there was an original design decision with zuul that we would combine stdout/stderr so that when watching the console stream, you'd see exactly what you would see if you ran a test command locally in a shell.  for example, running "tox" locally vs in zuul should produce the exact same output.14:24
*** swest has quit IRC14:24
corvusmordred, tobiash: i agree however, that's not correct from an ansible point of view14:24
corvusmordred, tobiash: so perhaps we should say that we've learned that we would prefer zuul to be better at running ansible at the cost of a slight discrepancy in output sequencing for simple console tasks.14:25
tobiashcorvus: that change tries to keep that behavior for log streaming (as much as possible) while fixing the result from ansible perspective14:26
corvusmordred, tobiash: i raise this because i think that's the trade-off -- we're reversing a design decision (which is fine to do), but i think whenever we do that we should do it explicitly.  do you think we need any more discussion about it?14:26
tobiashcorvus: you mean more discussion in terms of a mailinglist poll?14:27
corvustobiash: yes, i know -- it's as close as possible, but it won't be quite the same.  it's probably close enough that it won't matter -- but when we wrote it originally, we decided not to do it that way so that the interleaving would perfectly match the shell.14:27
mordredcorvus: yeah - I think the words you said make sense to me - it does seem like behaving more like ansible vs more like shell in this case is the better way to go with that trade-off14:29
corvustobiash: perhaps?  i honestly don't have an idea of how important it might be to people.  or maybe we just point SpamapS at the change and if he says it's okay, we've probably got enough coverage to do it.14:29
mordredcorvus: my guess is that most people who aren't zuul cores will likely not notice - and if it IS really important to someone that a particular bit of output have strict shell semantics - they can always run their shell task with 2>&1 as a remediation14:30
mordredcorvus: so I think an ack from SpamapS would be sufficient14:31
corvusmordred: that's a good point14:31
tobiashcorvus: if you and the folks that are around now are fine with the proposed tradeoff I or swest can send a mail on the list14:31
corvusSpamapS: ^ can you look at scrollback and that change?14:31
mordredcorvus: in fact, we already 2>&1 in the devstack job :)14:32
corvusha14:32
mordredwhich is really the only job in the system I'd be worried about14:33
mordredsince it's SO heavily shell based14:33
tobiashcorvus, mordred: what do you think about adding windows support to some roles in zuul-jobs?14:35
tobiashfor windows we handle the workspace-sync completely different and I'd like to enhance the git based workspace sync stuff so it works with ssh-enabled windows14:36
tobiashand also add-build-sshkey14:36
tobiashis that something that would be welcomed or shall I just create private windows versions of those roles?14:38
pabelangermy only comment is how best to test14:39
mordredtobiash: I'm not opposed to it - but yeah, I'm also not sure how to ensure we don't break it if there's no testing14:39
mordredso I think it's a question of risk on your side that something could accidentally break the windows support14:39
tobiashgood point14:40
pabelangertobiash: you could do 3pci on the role14:40
pabelangersf.io is trying to do that14:40
pabelangerbut, that is hard to do since trusted context usage14:40
*** mattw4 has joined #zuul14:41
tobiashthat would be an option, but I doubt we have the time at the moment to setup a 3pci14:42
tobiashok, I think I'll fork the roles now and may upload them as a review in case someone is interested14:43
tobiashwe still can think about integrating them at a later point14:43
pabelangertobiash: at some point, I will see ansible.z.c wanting windows, so I can see myself helping with that in the future14:43
pabelangererr, zuul.a.c14:44
tobiashcool14:44
tobiashso you'll be interested in those roles probably14:44
pabelangeryah14:44
pabelangerHA14:48
pabelangerI just figured out why ara still wasn't working on zuul-executor14:48
pabelangerit is now missing in my zuul-executor virtualenv14:48
pabelangereg: it needs to be installed both in zuul-ansible venv and zuul-executor14:49
*** pwhalen has joined #zuul14:49
tobiashvenv because of callback plugin and host because of executable?14:50
pabelangeryah14:50
pabelangerI am testing it out now14:50
*** mattw4 has quit IRC14:50
pabelangertobiash: http://git.zuul-ci.org/cgit/zuul/tree/zuul/executor/server.py#n40 ara_callbacks will always be none, since zuul-executor venv is now missing ara. I suspect we can rework that to try and load it directly from zuul-ansible venv14:56
pabelangerin fact, I think that has to change, because my bwrap doesn't expose path to zuul-executor virtualenv14:56
tobiashwhy does zuul need ara?14:57
*** weshay is now known as weshay|rover14:57
pabelangerit doesn,t but we load it by zuul-executor process to see if installed14:57
pabelangerI believe that needs to change14:57
tobiashhttp://git.zuul-ci.org/cgit/zuul/tree/zuul/executor/server.py#n175314:57
tobiashthat needs to change14:57
tobiashI think we can add them unconditionally now as ara is part of any ansible venv14:57
tobiashthe AnsibleManager could return the ara callbacks dir14:58
pabelangerhttp://paste.openstack.org/show/749432/14:58
pabelangerthat is my zuul-executor virutalenv14:58
pabelangerand zuul-ansible: http://paste.openstack.org/show/749433/14:59
corvusit would be great if we could generalize that15:00
pabelanger+115:01
corvuszuul isn't supposed to require ara, and ara isn't supposed to be the only callback plugin15:01
pabelangerI'll start working on a patch this afternoon15:02
corvuspabelanger, tobiash: do i understand correctly that currently we are using the system-installed ara callbacks and ignoring the virtualenv ara?15:03
tobiashcorvus: yes, seems so15:03
pabelangeryes, it looks like that15:03
tobiashas we install ara anyway into every ansible-venv it would make sense to use the AnsibleManager to get the path15:03
corvusi have mixed feelings about that.  on the one hand, that's cool because it easily gives operators control.  on the other hand, i can easily imagine a situation where different versions are needed for different venvs.15:04
tobiashthat can be individual easily as every venv has its own requirements15:05
tobiashhttps://opendev.org/openstack-infra/zuul/src/branch/master/zuul/lib/ansible-config.conf15:05
tobiashwe can easily move ara from common to specific ansible versions and require different versions if needed15:05
tobiashso if we'd use the ansible-manager to get the ara-path from the venv we'd get automatically the right version if they differ15:06
pabelangerI like that idea, because if if I installed ara into /opt/venv/zuul I _think_ I'd also need to to brwap trusted / untrusted paths in zuul.conf to bwrapped ansible-playbook to access iyt15:08
pabelangerit*15:08
pabelangers/need to to/ need to add15:08
pabelangerI have to step away for 30mins, something just came up15:09
*** hashar has quit IRC15:21
*** hashar has joined #zuul15:21
*** hashar has quit IRC15:32
*** hashar has joined #zuul16:00
pabelangersorry, took a little longer then I planned16:02
openstackgerritFabien Boucher proposed openstack-infra/zuul master: WIP - Pagure driver - https://pagure.io/pagure/  https://review.openstack.org/60440416:12
*** gtema has joined #zuul16:12
*** manjeets__ has joined #zuul16:26
*** mattw4 has joined #zuul16:27
*** manjeets_ has quit IRC16:27
SpamapScorvus:ACK, I'll look in a bit.16:32
pabelangerokay, cool, ara-report working again: https://logs.zuul.ansible.com/58/58/10668b99dec43237fed195ae7d4769ab8ec392a4/check/vyos-test/fa70c20/ara-report/16:44
pabelangernow that I understand the issue, I'll starting work on a patch16:44
sshnaidmI have an issue, one job uses secrets (cloud credentials) in specific zuul system, how can I to inherit from this job in different zuul system while "overriding" these secrets? Now when I try to run inherited job in other zuul system I get error "Unable to use secret cloud_secrets.  Secrets must be defined in the same project in which they are used"16:49
pabelangerI guess you could try to create cloud_secrets secret in your downstream zuul, in the project where you are running the job16:56
pabelangerbut, I'm unsure if anybody has tried that before16:57
clarkbyou may be able to use pass to parent secrets to override the valeus in the upstream repo16:59
*** mattw4 has quit IRC17:06
sshnaidmpabelanger, that's what I did and got this error17:11
sshnaidmclarkb, yeah, but I need just different secrets in "child" job, not sure how it can help17:11
*** badboy has joined #zuul17:11
clarkbsshnaidm: the secret applies to the playbook in the parent job. Pass to parent allows you to define a secret in the child that the parent will use17:12
badboyhi guys17:12
badboyis it possible to handle/process a draft created in the gerrit gui?17:12
sshnaidmclarkb, hmm.. will try now17:12
badboydoes zuul support this event?17:12
clarkbbadboy: I'm not actually sure. We disable pushing drafts in our gerrit because the feature always confused people (they thought it was properly secret when it wasn't and you'd not be able to see a current patchset if newer patchset is a draft)17:13
clarkbbadboy: are drafts a distinct event or does gerrit still send a patchset created event? if it still sends a patchset created event then probably you have to make sure the zuul user in gerrit can see those events17:14
badboyclarkb: I understand and agree with you but I don't have enough muscle to force 2k devs to change their habits17:15
*** gtema has quit IRC17:16
badboyclarkb: my pipeline didn't work with this draft so I guess gerrit emits some other event17:16
clarkbbadboy: to start debugging this I would stream events using a user that can see the events for sure (like your own user then you use that user to push the draft)17:16
clarkbthen if you see the patchset created event I think the next step is updating acls so that the zuul user can see those events globally17:16
badboyclarkb: roger that17:18
sshnaidmclarkb, is this right config of "pass-to-parent"? http://paste.openstack.org/show/749439/17:23
*** gtema has joined #zuul17:26
*** hashar has quit IRC17:27
openstackgerritPaul Belanger proposed openstack-infra/zuul master: WIP: Use zuul-ansible for ARA callback plugins  https://review.openstack.org/65349717:29
pabelangertobiash: corvus: this is my first thought at getting callback info from ara^, however I suspect there is a better way.17:30
pabelangerdmsimard: ^might also be interested17:30
clarkbsshnaidm: ya I think that is right17:31
sshnaidmclarkb, and again the error :( "Unable to use secret cloud_secrets.  Secrets must be defined in the same project in which they are used"17:32
clarkbhrm ok so maybe pass to parent doesn't cross project boundaries17:32
sshnaidmyeah, seems like that..17:33
Shrews"If a secret with pass-to-parent set in a child job has the same name as a secret available to a parent job’s playbook, the secret in the child job will not override the parent"17:33
Shrewsfrom https://zuul-ci.org/docs/zuul/user/config.html#secret17:33
pabelangeryou likely need to refactor the parent job without a secret, then in upstream zuul have a child job pass the secret to parent, then your downstream zuul can parent directly to upstream parent17:33
pabelangerbut that is just a guess, as I am unsure what the parent jobs does :)17:34
dmsimardpabelanger: you're in python already, is that because it's in a venv ?17:38
pabelangerdmsimard: issue is, we cannot load it directly from zuul-executor, because ara isn't installed into that context. It will only be in zuul-ansible virutalenv17:39
*** jangutter has quit IRC17:39
tobiashpabelanger: this is an interesting approach, suggestion inside17:40
pabelangertobiash: agree, I think we need to optimize where we call that. maybe on startup like --version check17:41
tobiashpabelanger: the lru cache will handle that quite fine17:42
pabelangercool17:42
pabelangerwill try that out17:42
*** manjeets__ is now known as manjeets17:53
*** arxcruz is now known as arxcruz|off|2317:53
*** gtema has quit IRC18:00
*** electrofelix has quit IRC18:00
*** saneax has joined #zuul18:19
*** rfolco has quit IRC18:20
*** rfolco has joined #zuul18:21
openstackgerritPaul Belanger proposed openstack-infra/zuul master: Use zuul-ansible for ARA callback plugin detection  https://review.openstack.org/65349718:28
pabelangertobiash: corvus: dmsimard: feedback most wanted^. that isn't the generic callback method, but think I can build a top of that if humans help guide me in the right direction18:28
SpamapScorvus: mordred regarding stdin/stderr .. Sorry but I have to raise some questions on https://review.openstack.org/650276 ... see comments18:32
*** mattw4 has joined #zuul18:40
tobiashSpamapS: hrm, that was not what I wanted to head, but I have to admit that your point is totally valid, our discussions so far were focused around the buildlog but separating the streams in ansible of course is backwards incompatible18:40
tobiashs/head/hear18:40
tobiashhowever I still think we should try to transition somehow to split streams as this is the way ansible works and the way of least surprise for users (except the users that rely on the current behavior today)18:45
pabelangertobiash: I've recently started using stdout_callback = yaml for ansible-playbook, what if we allowed a zuul operator to pick the plugin for streaming?18:51
pabelangerthen the user has access to both stdout / stderr on tasks: for example: https://logs.zuul.ansible.com/periodic-1hr/github.com/ansible-network/windmill-config/master/windmill-config-deploy/cf0c37e/job-output.html#l255118:55
pabelangerhowever, that would still present the same issue if we tried to stream shell tasks live18:56
*** saneax has quit IRC18:58
corvustobiash, SpamapS: i think SpamapS suggestion is workable -- feature flag, flip the default (or, perhaps, eliminate the option) in 4.x19:01
tobiashcorvus: makes sense19:01
tobiashI'll talk to swest19:01
tobiashcorvus: how would you inject the feature flag to ansible?19:02
tobiashvia an env var?19:02
tobiashlike ZUUL_ANSIBLE_SPLIT_STREAMS?19:03
corvustobiash: yeah, i think we do that today?19:03
corvustobiash: like the zuul_log_id variable?19:05
tobiashI thought the zuul_log_id variable is generated inside ansible by the callback, but maybe I'm wrong19:05
tobiashbut we already inject others like ZUUL_JOBDIR19:07
tobiashso that's fine19:07
tobiashthanks19:07
corvustobiash: we may need both things -- we may need to pass it from zuul to ansible, then from ansible to command plugin19:08
tobiashyeah, that's right19:08
Shrewstobiash: corvus: i have a script running on one of our launchers that records nodepool-launcher memory usage every 30m. Going to watch that to see how that usage grows.19:10
Shrewsmaybe we can correlate it to some event in the logs19:11
tobiashShrews: does nodepool log the objects in memory on sigusr2 too like zuul?19:11
clarkbtobiash: I think nodepool only does the thread stacktrace dump to the logs file and starts the yappi profiler if installed19:11
clarkbsecond sigusr2 will stop the yappi profiler and print its data19:11
tobiashyes, that's what I meant19:12
Shrewsclarkb: it does?19:12
clarkbpretty sure it does19:13
clarkbI see the stacktrace dumping but the yappi stuff might not actually exist19:13
clarkbthe docs say that yappi should work but it doesn't appear to be in the code19:14
Shrewswe should change nodepool to match the docs.  :)  i can work on adding that19:18
tobiashcorvus: re streams, should the feature flag on deployment, tenant or job level?19:26
openstackgerritDavid Shrewsbury proposed openstack-infra/nodepool master: Add support for yappi and objgraph output  https://review.openstack.org/65354119:30
*** rlandy|ruck is now known as rlandy|afk19:46
openstackgerritFabien Boucher proposed openstack-infra/zuul master: WIP - Pagure driver - https://pagure.io/pagure/  https://review.openstack.org/60440419:55
Shrewshrm, the yappi output could stand to be a bit wider19:59
Shrewsi see no way to control that though19:59
SpamapSMM, TIL about darkreader.org:  https://screenshots.firefox.com/EbCNqlCvKGpQVYey/review.openstack.org20:03
SpamapSMakes Gerrit look a lot like Gertty ;)20:03
openstackgerritDavid Shrewsbury proposed openstack-infra/nodepool master: Add support for yappi and objgraph output  https://review.openstack.org/65354120:15
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul master: Fix for yappi output  https://review.openstack.org/65354920:17
SpamapSYou know.. one thing that's kind of a bummer about the Dockerfile zuul has...20:32
SpamapSIf you want to take advantage of all the named targets, it rebuilds the entire base up to that target every time you call `docker build --target foo -t foo .`20:32
SpamapSI wonder if we'd be better served by a Dockerfile.builder that can be tagged and referenced once, and then the current multi-target one.20:33
clarkbthe builder is what pulls all the deps in right?20:33
SpamapS(this isn't just a speed-of-build thing, they all end up with their own virtual copies of the base)20:33
SpamapSright20:33
SpamapSOr, maybe a different way to say it.. I think there should be a base image that has all of the software in it, and then the targets should use `FROM builder\nFROM that-base-image\nCOPY--from=builder ...`20:35
SpamapSWhat I currently do is just make the --target zuul-executor ... and then use that for everything, so I only have to have one copy of it everywhere.20:36
SpamapS(customizing CMD in my kubernetes config)20:37
clarkbcan you build all of the targets in one go to avoid that?20:37
SpamapSNo20:37
SpamapSthat's a deficiency in the multi-target build IMO20:37
SpamapSa build has only one image that it can tag at the end20:38
corvustobiash: i'd say deployment; i'm not thrilled about adding a job-level switch for this20:38
SpamapSAll those intermediates just get left as hashes.20:38
tobiashcorvus: ++20:39
SpamapScorvus:the only reason I think job-level is that it lets people make exceptions at a granular level.20:39
SpamapSSince you really have to audit all of your existing command/shell calls with registers to be sure the output isn't being parsed.20:39
SpamapSAnd then once you do audit a job, how do you make sure it doesn't add somethign like that while you're doing it for the rest of your jobs?20:40
SpamapSSo I was thinking the process for users would be to audit, patch, and flip all in one go20:40
SpamapSper job20:40
SpamapSIf you have to audit and flip as a site.. well.. if nothing else you need to expose to the job what the current default is so patchers can build in conditional logic.20:41
*** pcaruana has quit IRC20:43
corvusgood point.  i'm hoping this is a mostly theoretical issue and it's not going to be a big deal for folks, but that is a more conservative approach.20:43
SpamapSMe too20:44
SpamapSanother idea, we could actually scan for command tasks that register a variable, and just start warning.20:45
*** hashar has joined #zuul20:45
SpamapSSo maybe a first step is make the site-wide flag available, defaulted to current behavior, and offer a tool in the release notes "Run this against all of your roles and playbooks and it will tell you if you can flip the setting."20:45
SpamapSI suspect we have at least a role or two in zuul-jobs that would break.20:46
SpamapSActually, if we use an environment variable to communicate from zuul -> ansible.. we could also just make that envvar known and provide instructions on how to set it for the problematic tasks.20:47
SpamapSThat kind of skips the job-level setting.20:47
corvusi'm not sure that env variable will be accessible or visible to tasks in an ansible playbook, i think it would only be visible to the ansible plugin itself20:58
SpamapSkk, well just throwing these things out there.21:05
*** logan- has quit IRC21:34
*** logan- has joined #zuul21:38
*** fdegir has quit IRC21:55
openstackgerritPaul Belanger proposed openstack-infra/zuul master: WIP: Support Ansible 2.8  https://review.openstack.org/63193322:03
pabelangertobiash: ^should fix up our failing tests, but I'm not sure if there is an ansible bug in 2.8 or change in functionality.  A failing task in 2.5, 2.6, 2.7 now reports success in 2.822:03
pabelangerI'm going to dig more into it and ask in #ansible22:04
openstackgerritPaul Belanger proposed openstack-infra/zuul master: WIP: Support Ansible 2.8  https://review.openstack.org/63193322:06
pabelangeralso bumpted to 2.8.0b122:08
SpamapSInteresting... Looking at reducing the zuul-executor image size.. I found this22:10
SpamapShttp://paste.openstack.org/show/749455/22:10
SpamapSSaves 247MB out of 750 .. pretty nice.22:10
*** rlandy|afk is now known as rlandy|ruck23:03
*** jamesmcarthur has joined #zuul23:07
*** hashar has quit IRC23:16
*** jamesmcarthur has quit IRC23:23
openstackgerritPaul Belanger proposed openstack-infra/zuul master: WIP: Support Ansible 2.8  https://review.openstack.org/63193323:44
*** mattw4 has quit IRC23:49

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!