Open kgawda opened 3 years ago
Adding @cwilkes for more insight on vmware.
Hi @kgawda I'll shepherd your VMware provider through the process of getting into PKB. Since you already have a PoC can you share a link to that and we can talk about a design doc?
Hi! I know it's been a long time time, but finally I had the space to move this forward. This is a branch with some usable prototype implementation of VMware provider (for Cloud Director): https://github.com/kgawda/PerfKitBenchmarker/tree/vmware-provider Most importantly, there is a brief description of decisions (to be discussed), questions and problems: https://github.com/kgawda/PerfKitBenchmarker/blob/vmware-provider/tutorials/vmware/README.md
Looking forward for any comments and hints!
@s-deitz, I heard from @cwilkes that you could step in and lead me. I would be grateful for any comments or suggestions.
Thanks Konrad. I'm trying to find someone on the team who can help review.
Hi, Konrad, thank you for this contribution! We really appreciate the addition of coverage to VMWare. This is a very big change, and before I review the actual code, I'd like to discuss some of the design decisions you took. Disclaimer: I personally have not used VMware before, and do not have access to it right now. Therefore I am relying heavily on your expertise/insight here. The more details/explanations you can offer, the better. Thank you! 1) Single provider for different VMware products I want to make sure that if we were to add other VMware products in future, we have a way to do so. Does VMware have VMs/Disks for different products? i.e. I see you added vmware_vcd_virtual_machine.py, which I am assuming is Cloud Director virtual machine. So in future, we perhaps can add vmware_vcenter_virtual_machine.py? 2) Regarding pyvcloud, it does concern me a little that we are deviating from the common pattern in pkb, I need to sync up with my team on why CLI was picked originally, and get back to you. 3) credentials in ENV seems reasonable too. But we have to keep in mind that when there are more users, others may prefer a different way. So I think offering lots of different options encourage usability. If users want to update a bashrc file or supply a flag, they should be able to as well. 4) If we go ahead with pyvcloud, I would say we should pull from the default package in the long run. Unfortunately, pyvcloud does not look very active. It might be fine now but I worry that your branch and the main branch may diverge in future. What is your thoughts on that? 5) Public IP shared between multiple VMs - How does VMware knows which VM a public ip is referring to? If you ssh to one such public ip address, does VMware act as a loadbalancer and pick on VM at random or does it deterministically know which VM? Could we disable the public ips in this case and allow usage of private ips? 6&7) Unfortunately, since everything else in pkb thus far has been cli clients and using credential files, there is likely no mechanism to persist token / test different env for the same provider. It is definitely a challenge to adopting a python client. 8&9) you will need to add a BENCHMARK_CONFIG and corresponding parser, and we currently have a data_disk_type flag (defined in pkb.py) that let's one choose the disk type (for example on GCP it is --data_disk_type=pd-ssd to use a pd-ssd disk).
I would like to implement a provider module for VMware vCloud Director based clouds. I already have some PoC code.
Where should I document taken design decisions? Any other hints beside ones form wiki and
CONTRIBUTING.md
?I am aware of Issue #1260, but it quite old and does not specify kind of VMware product. So I decided to create a new one.