<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 31, 2023 at 11:26 AM Ghanshyam Mann <<a href="mailto:gmann@ghanshyammann.com">gmann@ghanshyammann.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> ---- On Wed, 29 Mar 2023 19:20:43 -0700 Takashi Kajinami wrote --- <br>
> Hello,<br>
> <br>
> I have had some local discussions with gmann, but I'd really like to move this discussion forwardto fix the broken stable/xena gate in heat so I will start this thread, hoping the thread can providemore context behind my proposal.<br>
> Historically stable branches of heat have been frequently affected by any change in requirementsof tempest. This is mainly because in our CI we install our own in-tree integration tests[1] intotempest venv where tempest and heat-tempest-plugin are installed. Because in-tree integration testsare tied to that specific stable branch, this has been often causing conflicts in requirements(master constraint vs stable/X constraint).<br>
<br>
Let me explain the issue here. It is not because of using tempest from upper constraints or branchless things,<br>
it is because we are not setting the tempest venv constraints correctly for the target tempest run in the grenade job.<br>
<br>
We fixed the tempest venv constraints setting for the tempest test run on the base branch[1] but forgot to do the same<br>
for the target branch test run. As we do not have any grenade job except heat which is running tempest on the target branch<br>
in the grenade job, we could not face this issue and heat testing unhide it. I then reproduce it on a normal grenade job by<br>
running the tempest on target and the same issue[2][3].<br>
<br>
The issue is when base and target branches have different Tempest and constraints to use (for example, stable/wallaby uses old tempest<br>
and stable/wallaby constraints, but stable/xena use tempest master and master constraints); in such cases, we need to set proper constraints<br>
defined in devstack and then run tempest. It will happen in the grenade job running on the immediately supported branch of the latest EM.<br></blockquote><div>This is the core problem in heat, which is conflicting what has been done in heat testing.</div><div>During tests after upgrade we run not only tempest + heat-tempest-plugin tests but also in-tree heat integration tests</div><div>which test more actual resources. However in-tree integration tests are dependent on a specific stable/requirement.</div><div>So when we run tests in stable/xena then we need stable/xena constraints installed in venv, which means we need to</div><div>install tempest which is compatible with stable/xena uc, rather than master tempest. For this sake, I'm asking for</div><div>adding requirements so that we can install tempest with stable/xena u-c. (Currently we do not explicitly install tempest</div><div>but it is installed as a dependency of heat-tempest-plugin. I tried to set an explicit tempest version but it has been failing</div><div>for some reason.)<br></div><div><br></div><div><a href="https://review.opendev.org/c/openstack/heat/+/878610">https://review.opendev.org/c/openstack/heat/+/878610</a></div><div><br></div><div>If running tempest tests after upgrade is not commonly done then we probably can replace tempest by more simple</div><div>ones as is done for the core services such as keystone, or at least we can get rid of integration tests. Though we still</div><div>likely face an issue with our normal integration tests which run the same set of tests.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I have pushed the grenade fix[4] and testing it by applying the same in heat[5]. If it work then I will push heat change<br>
form master itself and backported till stable/xena, so we fix it for all future EM/stable branches.<br>
<br>
[1] <a href="https://review.opendev.org/q/topic:bug%252F2003993" rel="noreferrer" target="_blank">https://review.opendev.org/q/topic:bug%252F2003993</a><br>
[2] <a href="https://review.opendev.org/c/openstack/grenade/+/878247/1" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/grenade/+/878247/1</a><br>
[3] <a href="https://zuul.opendev.org/t/openstack/build/1b503d359717459c9c77010608068e27/log/controller/logs/grenade.sh_log.txt#17184" rel="noreferrer" target="_blank">https://zuul.opendev.org/t/openstack/build/1b503d359717459c9c77010608068e27/log/controller/logs/grenade.sh_log.txt#17184</a><br>
[4] <a href="https://review.opendev.org/c/openstack/grenade/+/879113" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/grenade/+/879113</a><br>
[5] <a href="https://review.opendev.org/c/openstack/heat/+/872055" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/heat/+/872055</a><br>
<br>
<br>
-gmann<br>
<br>
> <br>
> [1]<a href="https://github.com/openstack/heat/tree/master/heat_integrationtests" rel="noreferrer" target="_blank">https://github.com/openstack/heat/tree/master/heat_integrationtests</a><br>
> In the past we changed our test installation[2] to use stable constraint to avoid this conflicts,but this approach does no longer work since stable/xena because<br>
> 1. stable/xena u-c no longer includes tempest<br>
> 2. latest tempest CAN'T be installed with stable/xena u-c because current tempest requires fasteners>=0.16.0 which conflicts with 0.14.1 in stable/xena u-c.<br>
> [2]<a href="https://review.opendev.org/c/openstack/heat/+/803890https://review.opendev.org/c/openstack/heat/+/848215" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/heat/+/803890https://review.opendev.org/c/openstack/heat/+/848215</a><br>
> I've proposed the change to pin tempest[3] in stable/xena u-c so that people can install tempestwith stable/xena u-c.<br>
> [3] <a href="https://review.opendev.org/c/openstack/requirements/+/878228" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/requirements/+/878228</a><br>
> I understand the reason tempest was removed from u-c was that we should use the latest tempestto test recent stable releases.I agree we can keep tempest excluded for stable/yoga and onwardsbecause tempest is installable with their u-c, but stable/xena u-c is no longer compatible with master.Adding pin to xena u-c does not mainly affect the policy to test stable branches with latest tempestbecause for that we anyway need to use more recent u-c.<br>
> I'm still trying to find out the workaround within heat but IMO adding tempest pin to stable/xena u-cis harmless but beneficial in case anyone is trying to use tempest with stable/xena u-c.<br>
> <br>
> Thank you,<br>
> Takashi Kajinami<br>
> <br>
<br>
</blockquote></div></div>