Recently I had been running Tempest on my setup testing a mixed-architecture deployment (x86_64 ans ppc64le compute nodes at the same time).  It seems that some of the migration and affinity tests will check if there's more than one Compute node before they run.  However, it would seem that's as far as they check, without checking if they are in fact compatible or even of the same architecture.  (my test cluster is very small, and normally includes two ppc64le Compute nodes, and sometimes one x86_64 Compute node.  Currently one ppc64le machine is down for repair).

Because the two compute nodes are different architectures, I am getting failures in various migration and affinity tests, maybe more if I tested a larger subset.  Now granted my particular setup is a special case, but it does bring to mind some extensions that may be needed for Tempest in the future.  I could see it being possible to have x86_64 and ARM mixed together in one stack, maybe even tossing in RISC-v someday. 

I'm thinking we need to start adding in extra test images, flavors, etc into the Tempest configurations (as in defining multiple options so that each architecture can have test images, etc assigned to it, rather than the current primary and alt image for just one architecture)  Additionally, there should be testcases taking into account the architectures involved (such as seeing that an instance on one arch cannot be migrated to the other, as an example).  I know this involves a bit of refactoring, I didn't know if it had even been considered yet.


--

James LaBarre

Software Engineer, OpenStack MultiArch