We had a talk at the OpenStack Summit about how we do OpenStack on Kubernetes, if you're interested: https://www.openstack.org/videos/video/cisco-containerizatio...
Edit: You can find Helm charts here: https://github.com/kubernetes/charts/tree/master/incubator
For instance, would a complete Windows Server instance fit the Pet Set concept in the scheduler?
PetSets are simply ordinally ordered container collections instead of randomly ordered.
The usual concept in Kubernetes is that a container has a name like 'thing-randomsuffix4242'. It is pushing you towards making your pods stateless and not precious so the failure handing logic is simple. If it is blown away for whatever reason can easily be replaced by the scheduler and 'thing-randomsuffix242b' is never far away.
With a predictable ordering you can actually make assumptions you otherwise couldn't. For example, perhaps you want the convention that 'thing-predictable1' is the master and 'thing-rpredictable{2,3}' are the slaves.
so rather than 'kubectl -v', you will run 'hyperkube kubectl -v'
Some virtualization use cases can be solved with kubernetes, but many things an enterprise runs do not work at all in the kube paradigm. The majority of applications are pets (i.e. stateful) and many applications run on Windows or have some other kernel requirements that mismatch the baremetal kubelet.
If you think Kubernetes 'absolutely takes over the more complex cloud installations', you're living in an echo chamber of 12 factor apps that doesn't line up with the majority of what I've seen in big enterprise cloud workloads.
Case in point: Walmart has one of the largest openstack deployments in the world.