GoogleCloudPlatform / GoogleCloudPlatform/PerfKitBenchmarker
openstack: Clarify zone vs. availability zone vs. region
- Dominant language
- Python
- Stars
- 2k
- Forks
- 562
- Avg merge
- 4h 55m
- Merged PRs (30d)
- 69
Description
There's seems to be confusion on terminology in the OpenStack provider implementation for what a zone stands for in PKB, and what a zone means for OpenStack.
The following issues/PRs have been opened due to this confusion and trying to address it.
#734 Expose availability zone for VM
#769 Multi-region support
#770 Expose region name (All services) *workaround
#773 Expose availability zone for Volumes services
The root of the problem is that `--zones` flag value is being used as an OpenStack availability zone, where PKB actually intended the flag to mean what in OpenStack terms is called a `region`.
As of now, OpenStack provider implementation uses the `--zones` flags as an availability zone for all services (Nova, Cinder, Swift, etc). PRs #734 and #770 tried to work around some of the problems caused by this but is not directly solving the problem.
I want to use this issue to track the work to fix this properly.
Here's what I have in mind as of now:
Tasks
- \- ~~Use `--zones` flag's value only to represent an OpenStack region~~
- \+ Introduce `--region` flag for specifying OpenStack region to use
- \+ Use `--zones` flag for specifying default availability zone
- Use optional OpenStack provider-specific flags to override which availability zones will be used for each core service that supports it (e.g. Nova, Cinder, Swift, Neutron, etc)
In summary, after this issue is properly solved one should be able to use something like the following:
``` bash
./pkb.py --cloud=OpenStack --region=RegionOne \ # Addresses PR #770
--machine_type=m1.medium --image=Ubuntu \
--openstack_public_network=public --openstack_private_network=service \
--openstack_nova_zone=myzone1:711465-compute007 \ # Addresses PR #734
--openstack_neutron_zone=myzone1 \
--openstack_cinder_zone=myzone2 \ # Addresses PR #773
--openstack_swift_zone=myzone2 \
--benchmarks=ping
```
Contributor guide
Assessment
This issue has not been assessed yet.