<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 20, 2017 at 8:40 PM, Jeremy Stanley <span dir="ltr"><<a href="mailto:fungi@yuggoth.org" target="_blank">fungi@yuggoth.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A couple weeks ago during our June 6 Infra team meeting,<br>
discussion[1] about the state of our Ansible Puppet Apply spec[2]<br>
morphed into concerns over the languishing state of our Beaker-based<br>
Puppet module integration test jobs, work needed to prepare for<br>
Puppet 4 now that Puppet 3 is EOL upstream[3] for the past 6 months,<br>
and the emergence of several possibly competing/conflicting approved<br>
and proposed Infra specs:<br>
<br>
  * Puppet Module Functional Testing[4]<br>
  * Puppet 4 Preliminary Testing[5]<br>
  * Rename and expand Puppet 4 Preliminary Testing[6]<br>
  * Ansiblify control plane[7]<br>
<br>
As the discussion evolved, unanswered questions were raised:<br>
<br>
  1. What are we going to do to restore public reporting?<br>
<br>
  2. Should we push forward with the changes needed to address<br>
     bitrot on the nonvoting Beaker-based integration jobs so we can<br>
     start enforcing them on new changes to all our modules?<br></blockquote><div>For what it's worth, good progress was made here recently. I was pleased with how quickly the team was willing to review and merge fixes for this accumulated bitrot. If anyone wants to help finish up the rest of them and make these jobs voting I'd be happy to lend guidance.</div><div><br></div><div>To provide some context on these jobs, I recall one of the primary reasons we chose to use beaker-rspec as our functional testing tool was that it was consistent with what the rest of the puppet community and Puppet-OpenStack was doing. It is definitely true that both teams have benefited from being able to solve common problems together. But I don't think it has helped attract other puppet contributors, and our existing team is less than enthusiastic about diving into ruby and rspec when these tests are broken. Luckily, these tests all have fixture manifests ready to go so it would be reasonably easy to rip out beaker and replace it with something else.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
  3. Is the effort involved in upfitting our existing modules to<br>
     Puppet 4 worth the effort compared to trying to replace Puppet<br>
     with Ansible (a likely contentious debate lurking here) which<br>
     might attract more developer/reviewer focus and interest?<br></blockquote><div>A total rewrite is a very costly shot in the dark. We have no way to measure the potential benefits and detriments until after the work is done, and it will certainly be a significant amount of work.</div><div><br></div><div>In this case, though, we have a lot of ansible experts on the team, and the rising popularity of ansible in OpenStack and in the rest of the devops world makes it likely to attract new contributors. Contrarily, while the whole team is competent with puppet, the general attitude toward it has been fairly negative, and very few people have any interest in the ruby/rspec-based functional testing. The puppet experts who have so far pushed the team from puppet 2 to 3 and to functional testing with beaker-rspec are no longer dedicated full-time to the Infra team. If sufficient personpower and enthusiasm can be focused toward a rewrite, that is probably a good indication that it will be healthier and more sustainable in the long run than our languishing puppet infrastructure.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The meeting was neither long enough nor an appropriate venue for<br>
deciding these things, so I agreed to start a thread here on the ML<br>
where we might be able to hash out our position on them a little<br>
more effectively and inclusive of the wider community involved.<br>
Everyone with a vested interest is welcome to weigh in, of course.<br></blockquote><div>It is really important to remember that the stakeholders here include not only the upstream Infra team but also 3rd party CI operators and downstream infrastructure-as-code consumers. If we move away from puppet, we must provide these stakeholders with a migration plan. If that, on top of migrating ourselves, proves to be too difficult, then we shouldn't do it.</div><div><br></div><div>I plan to keep putting work into the puppet modules and moving toward puppet 4. I do honestly believe it is within reach and easier in the short term than a rewrite. But as this is not part of my day job description, it's not sustainable in the long term unless more volunteers step up. If we get more momentum toward an ansible rewrite then I will completely support it.</div><div><br></div><div>Colleen</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
[1] <a href="http://eavesdrop.openstack.org/meetings/infra/2017/infra.2017-06-06-19.03.log.html#l-24" rel="noreferrer" target="_blank">http://eavesdrop.openstack.<wbr>org/meetings/infra/2017/infra.<wbr>2017-06-06-19.03.log.html#l-24</a><br>
[2] <a href="http://specs.openstack.org/openstack-infra/infra-specs/specs/ansible_puppet_apply.html" rel="noreferrer" target="_blank">http://specs.openstack.org/<wbr>openstack-infra/infra-specs/<wbr>specs/ansible_puppet_apply.<wbr>html</a><br>
[3] <a href="https://voxpupuli.org/blog/2016/12/22/putting-down-puppet-3/" rel="noreferrer" target="_blank">https://voxpupuli.org/blog/<wbr>2016/12/22/putting-down-<wbr>puppet-3/</a><br>
[4] <a href="http://specs.openstack.org/openstack-infra/infra-specs/specs/puppet-module-functional-testing.html" rel="noreferrer" target="_blank">http://specs.openstack.org/<wbr>openstack-infra/infra-specs/<wbr>specs/puppet-module-<wbr>functional-testing.html</a><br>
[5] <a href="http://specs.openstack.org/openstack-infra/infra-specs/specs/puppet_4_prelim_testing.html" rel="noreferrer" target="_blank">http://specs.openstack.org/<wbr>openstack-infra/infra-specs/<wbr>specs/puppet_4_prelim_testing.<wbr>html</a><br>
[6] <a href="https://review.openstack.org/449933" rel="noreferrer" target="_blank">https://review.openstack.org/<wbr>449933</a><br>
[7] <a href="https://review.openstack.org/469983" rel="noreferrer" target="_blank">https://review.openstack.org/<wbr>469983</a><br>
<span class="HOEnZb"><font color="#888888">--<br>
Jeremy Stanley<br>
</font></span><br>______________________________<wbr>_________________<br>
OpenStack-Infra mailing list<br>
<a href="mailto:OpenStack-Infra@lists.openstack.org">OpenStack-Infra@lists.<wbr>openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-infra</a><br></blockquote></div><br></div></div>