<div dir="ltr">Hello Dmitry,<div><br></div><div><span id="gmail-docs-internal-guid-866e27ab-b8fb-1b5a-02cf-2c662a2102be"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Thanks for raising this question. I think the problem is deeper. There are a lot of use-cases that are not covered by our CI like cleaning, adoption etc...</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">The main problem is that we need to change ironic configuration to apply specific use-case. Unfortunately tempest doesn't allow to change cloud configuration during tests run.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Recently I've started working on PoC that should solve this problem [0]. The main idea is to have ability to change ironic configuration during single gate job run, and launch the same tempest tests after each configuration change.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">We can't change other components configuration as it will require reinstalling whole devstack, so launching flat network and multitenant network scenarios is not possible in single job.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">For example:</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">1. Setup devstack with agent_ssh wholedisk ipxe configuration</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">2. Run tempest tests</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">3. Update localrc to use agent_ssh localboot image</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">4. Unstack ironic component only. Not whole devstack.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">5. Install/configure ironic component only</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">6. Run tempest tests</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">7. Repeat steps 3-6 with other Ironic-only configuration change.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Running step 4,5 takes near 2-3 minutes.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Below is an non-exhaustive list of configuration choices we could try to mix-and-match in single tempest run to have a maximal overall code coverage in a sibl:</span></p><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;font-family:arial;vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">cleaning enabled / disabled</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;font-family:arial;vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">using pxe_* drivers / agent_* drivers</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;font-family:arial;vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">using netboot / localboot</span></p></li><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;font-family:arial;vertical-align:baseline;background-color:transparent"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">using partitioned / wholedisk images</span></li></ul></span></div><div><br></div><div><br></div><div>[0] <a href="https://review.openstack.org/#/c/369021/">https://review.openstack.org/#/c/369021/</a></div><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 12, 2016 at 3:01 PM, Dmitry Tantsur <span dir="ltr"><<a href="mailto:dtantsur@redhat.com" target="_blank">dtantsur@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi folks!<br>
<br>
I'd like to propose a plan on how to simultaneously extend the coverage of our jobs and reduce their number.<br>
<br>
Currently, we're running one instance per job. This was reasonable when the coreos-based IPA image was the default, but now with tinyipa we can run up to 7 instances (and actually do it in the grenade job). I suggest we use 6 fake bm nodes to make a single CI job cover many scenarios.<br>
<br>
The jobs will be grouped based on driver (pxe_ipmitool and agent_ipmitool) to be more in sync with how 3rd party CI does it. A special configuration option will be used to enable multi-instance testing to avoid breaking 3rd party CI systems that are not ready for it.<br>
<br>
To ensure coverage, we'll only leave a required number of nodes "available", and deploy all instances in parallel.<br>
<br>
In the end, we'll have these jobs on ironic:<br>
gate-tempest-ironic-pxe_ipmito<wbr>ol-tinyipa<br>
gate-tempest-ironic-agent_ipmi<wbr>tool-tinyipa<br>
<br>
Each job will cover the following scenarious:<br>
* partition images:<br>
** with local boot:<br>
** 1. msdos partition table and BIOS boot<br>
** 2. GPT partition table and BIOS boot<br>
** 3. GPT partition table and UEFI boot  <*><br>
** with netboot:<br>
** 4. msdos partition table and BIOS boot <**><br>
* whole disk images:<br>
* 5. with msdos partition table embedded and BIOS boot<br>
* 6. with GPT partition table embedded and UEFI boot  <*><br>
<br>
 <*> - in the future, when we figure our UEFI testing<br>
 <**> - we're moving away from defaulting to netboot, hence only one scenario<br>
<br>
I suggest creating the jobs for Newton and Ocata, and starting with Xenial right away.<br>
<br>
Any comments, ideas and suggestions are welcome.<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</blockquote></div><br></div></div>