My company uses Apache cloud stack, but we are planing on upgrading our on premise cluster, and change our IAAS from Cloud-Stack to Open-stack my question is, can we use different servers generations, CPUs. I found services online that offer heterogeneous support as a sale point while they are based on Open-Stack. Note: Open-Stack NOVA / Magnum solutions
The whole basis of OpenStack is that you can run it on any hardware you have available, it doesn't have to be homogeneous. That being said, it is helpful for some components to be identical.
Regarding Nova instances, for example, if you want to do live migrations of virtual machines from host to host the CPU has to be identical. If you don't need that, or you emulate the same CPU on all hosts regardless of what CPU is built into them, you should have no problems.
Regarding containers controlled with Magnum: Live migrations are not done here, you just start and stop the containers on any host available. As long as no specific CPU flags are needed by your application there is no problem here either with differing hosts.