I have gone through this LINK which explains how to setup Affinity controls so that nova takes care of placing the nodes on different hypervisors based on the Server Group
.
The problem I am facing is - I intend to do the approach through python code to have a better control through automation.
While exploring the novaclient 1.1
python module doc, I only see availability_zones
as a parameter to the create()
method. Does this relate to Affinity Server Group
? By reading a little more about that - it doesnt appear that way.
create(name, image, flavor, meta=None, files=None, reservation_id=None, min_count=None, max_count=None, security_groups=None, userdata=None, key_name=None, availability_zone=None, block_device_mapping=None, block_device_mapping_v2=None, nics=None, scheduler_hints=None, config_drive=None, disk_config=None, **kwargs)
Create (boot) a new server.
Parameters:
name – Something to name the server.
image – The Image to boot with.
flavor – The Flavor to boot onto.
meta – A dict of arbitrary key/value metadata to store for this server. A maximum of five entries is allowed, and both keys and values must be 255 characters or less.
files – A dict of files to overrwrite on the server upon boot. Keys are file names (i.e. /etc/passwd) and values are the file contents (either as a string or as a file-like object). A maximum of five entries is allowed, and each file must be 10k or less.
userdata – user data to pass to be exposed by the metadata server this can be a file type object as well or a string.
reservation_id – a UUID for the set of servers being requested.
key_name – (optional extension) name of previously created keypair to inject into the instance.
availability_zone – Name of the availability zone for instance placement.
block_device_mapping – (optional extension) A dict of block device mappings for this server.
block_device_mapping_v2 – (optional extension) A dict of block device mappings for this server.
nics – (optional extension) an ordered list of nics to be added to this server, with information about connected networks, fixed ips, port etc.
scheduler_hints – (optional extension) arbitrary key-value pairs specified by the client to help boot an instance
config_drive – (optional extension) value for config drive either boolean, or volume-id
disk_config – (optional extension) control how the disk is partitioned when the server is created. possible values are ‘AUTO’ or ‘MANUAL’.
I am having a hard time with the documentation and setting up affinity on invoking create()
.
I would like to understand :
- How to create
Server Groups
for affinity? There is no documentation for this anywhere. - How to tie that into the
create()
method for controlling affinity?