GoogleCloudPlatform / GoogleCloudPlatform/PerfKitBenchmarker

openstack: Clarify zone vs. availability zone vs. region

Open
#776 7 comments 0 reactions 1 assignee Claimed by @meteorfox View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.