<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">It looks like dox(1) is really cool,
      since it will allow us to start using Docker.<br>
      <br>
      I started a very experimenting patch in dox to support Puppet unit
      tests: <a class="moz-txt-link-freetext" href="https://review.openstack.org/#/c/119943">https://review.openstack.org/#/c/119943</a> (very early stage)<br>
      <br>
      The idea would be:<br>
      * patch dox to support Puppet unit testing (as we did in virtual
      env with bundle) within containers<br>
      * change Puppet jobs (for one module to try) to use dox as
      non-voting (to ensure we don't have regression somewhere)<br>
      * When it's alright, patch puppet jobs to use dox with voting for
      all modules.<br>
      * integrate new scenarios for functional testing by using beaker
      & dox.<br>
      <br>
      Any thoughts?<br>
      <br>
      (1) <a class="moz-txt-link-freetext" href="https://github.com/stackforge/dox">https://github.com/stackforge/dox</a> +
      <a class="moz-txt-link-freetext" href="http://article.gmane.org/gmane.comp.cloud.openstack.devel/34675">http://article.gmane.org/gmane.comp.cloud.openstack.devel/34675</a><br>
      <pre class="moz-signature" cols="72">Emilien Macchi</pre>
      On 09/08/2014 01:21 PM, Emilien Macchi wrote:<br>
    </div>
    <blockquote cite="mid:540DE583.8020600@enovance.com" type="cite">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      Hello Openstack Infra Team,<br>
      <br>
      <br>
      Background<br>
      =======<br>
      <br>
      It has been 3 years that we have been developing Puppet modules to
      install OpenStack, and we know these modules are largely adopted
      by many users.<br>
      All modules are located on StackForge (1) and some of them are
      distributed on Puppet Forge.<br>
      Some statistics (2) show us the important adoption, which
      represent ~ 42% of current deployments (Source: OpenStack
      Foundation).<br>
      We've reached a point where we can't continue without real
      integration testing if we want to stabilize & bring more
      dev/users to our modules.<br>
      <br>
      <br>
      Current situation<br>
      ==========<br>
      <br>
      OpenStack Puppet modules support rspec & unit tests which is
      not enough since there is no functional testing.<br>
      Currently, only puppet-ceph (3) is doing integration testing (4)
      by using Vagrant, puppet-rspec-system and gerritexec (5).<br>
      A discussion has been started on the Puppet OpenStack mailing list
      (6).<br>
      As you can see, there has already been some initial proof of
      concept work done by Spencer to make beaker-rspec work with the
      puppet-openstack modules:
      <div><a moz-do-not-send="true"
          href="https://review.openstack.org/#/c/102020" target="_blank"
          onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Freview.openstack.org%2F%23%2Fc%2F102020\46sa\75D\46sntz\0751\46usg\75AFQjCNHRznILGZdMIF_Y36YKQGrDgnf7xA';return

          true;"
          onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Freview.openstack.org%2F%23%2Fc%2F102020\46sa\75D\46sntz\0751\46usg\75AFQjCNHRznILGZdMIF_Y36YKQGrDgnf7xA';return

          true;">https://review.openstack.org/#<wbr>/c/102020</a>  #
        puppet-nova<br>
      </div>
      <a moz-do-not-send="true"
        href="https://review.openstack.org/#/c/102071" target="_blank"
        onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Freview.openstack.org%2F%23%2Fc%2F102071\46sa\75D\46sntz\0751\46usg\75AFQjCNFtgihslLBBfnYQ5JX7H-5bpCgF6g';return

        true;"
        onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Freview.openstack.org%2F%23%2Fc%2F102071\46sa\75D\46sntz\0751\46usg\75AFQjCNFtgihslLBBfnYQ5JX7H-5bpCgF6g';return

        true;">https://review.openstack.org/#<wbr>/c/102071</a>  #
      openstack-infra/config (patch already in discussion with -infra
      team)<br>
      <br>
      <br>
      Design proposal<br>
      ==========<br>
      <br>
      Since puppet-rspec-system is going to be retired (8), it's
      suggested to use beaker-rspec.<br>
      A new bot would be created "Puppet OpenStack CI" which would put
      +1 or -1 depending if the integration pass or not. For starting,
      the bot won't be part of voting process.<br>
      The goal would be of course to bootstrap basic tests for all
      modules and then call to contributors wanting to support most of
      deployments use-cases by using puppet classes.<br>
      <br>
      <br>
      Blockers<br>
      =====<br>
      <br>
      We need resources to handle the CI bot system. puppet-ceph only
      uses a single server + vagrant, but in the case of OpenStack
      modules, I'm not sure that would be sufficient regarding to the
      number of patches per day.<br>
      I would like to ensure that OpenStack Infra could handle vagrant
      on CI nodes.<br>
      <br>
      <br>
      Steps & goals<br>
      =========<br>
      <br>
      * First, we need to agree with -infra team at how we handle CI
      resources (vagrant ?).<br>
      * Patch Jenkins jobs (already WIP) for non-voting jobs in some
      Puppet modules (core projects to start: nova, neutron, ...).<br>
      * Push some patches in puppet-* modules with basic tests. The goal
      here is to get feedback from this design.<br>
      * Continue with more modules (non-core) and more testing
      scenarios.<br>
      * After stabilization, make the CI bot voting.<br>
      <br>
      <br>
      We really need to make progress on this topic if we want more
      adoption of Puppet modules in OpenStack community. I'm thinking
      about Puppet elements in TripleO (some work has already been done,
      but not yet in TripleO though) (8).<br>
      Having this CI would help people to stop forking the modules and
      improve the trust at the work done.<br>
      By the way, this topic will be one of main topics at the next
      OpenStack summit (9).<br>
      <br>
      <br>
      On behalf of Puppet OpenStack team, we are waiting for your
      insights,<br>
      Thanks.<br>
      <br>
      (1) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://github.com/stackforge?page=1&query=puppet">https://github.com/stackforge?page=1&query=puppet</a><br>
      (2) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="http://getcloudify.org/2014/05/19/openstack-statistics.html">http://getcloudify.org/2014/05/19/openstack-statistics.html</a><br>
      (3) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://github.com/stackforge/puppet-ceph">https://github.com/stackforge/puppet-ceph</a><br>
      (4)
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/stackforge/puppet-ceph/blob/master/README.md#integration-tests">https://github.com/stackforge/puppet-ceph/blob/master/README.md#integration-tests</a><br>
      (5) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://pypi.python.org/pypi/gerritexec">https://pypi.python.org/pypi/gerritexec</a><br>
      (6)
htt6s://groups.google.com/a/puppetlabs.com/forum/#!topic/puppet-openstack/Mr2wNC4HuZU<br>
      (7) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://github.com/puppetlabs/rspec-system-puppet#retired">https://github.com/puppetlabs/rspec-system-puppet#retired</a><br>
      (8) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://github.com/agroup/tripleo-puppet-elements">https://github.com/agroup/tripleo-puppet-elements</a><br>
      (9) <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://etherpad.openstack.org/p/puppet-paris-summit-proposal">https://etherpad.openstack.org/p/puppet-paris-summit-proposal</a><br>
      <br>
      <pre class="moz-signature" cols="72">-- 
Emilien Macchi</pre>
    </blockquote>
    <br>
  </body>
</html>