Add the singlePlacementGroup in the virtual machine scale set module (#58320)
This commit is contained in:
parent
0c992d5ae4
commit
8ff97edd1a
2 changed files with 36 additions and 2 deletions
|
@ -209,6 +209,12 @@ options:
|
|||
type: bool
|
||||
default: True
|
||||
version_added: "2.8"
|
||||
single_placement_group:
|
||||
description:
|
||||
- When true this limits the scale set to a single placement group, of max size 100 virtual machines.
|
||||
type: bool
|
||||
default: True
|
||||
version_added: "2.9"
|
||||
zones:
|
||||
description:
|
||||
- A list of Availability Zones for your virtual machine scale set.
|
||||
|
@ -273,6 +279,21 @@ EXAMPLES = '''
|
|||
managed_disk_type: Standard_LRS
|
||||
image: customimage001
|
||||
|
||||
- name: Create a VMSS with over 100 instances
|
||||
azure_rm_virtualmachinescaleset:
|
||||
resource_group: myResourceGroup
|
||||
name: testvmss
|
||||
vm_size: Standard_DS1_v2
|
||||
capacity: 120
|
||||
single_placement_group: False
|
||||
virtual_network_name: testvnet
|
||||
upgrade_policy: Manual
|
||||
subnet_name: testsubnet
|
||||
admin_username: adminUser
|
||||
admin_password: password01
|
||||
managed_disk_type: Standard_LRS
|
||||
image: customimage001
|
||||
|
||||
- name: Create a VMSS with a custom image from a particular resource group
|
||||
azure_rm_virtualmachinescaleset:
|
||||
resource_group: myResourceGroup
|
||||
|
@ -436,6 +457,7 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
|
|||
enable_accelerated_networking=dict(type='bool'),
|
||||
security_group=dict(type='raw', aliases=['security_group_name']),
|
||||
overprovision=dict(type='bool', default=True),
|
||||
single_placement_group=dict(type='bool', default=True),
|
||||
zones=dict(type='list'),
|
||||
custom_data=dict(type='str')
|
||||
)
|
||||
|
@ -468,6 +490,7 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
|
|||
self.enable_accelerated_networking = None
|
||||
self.security_group = None
|
||||
self.overprovision = None
|
||||
self.single_placement_group = None
|
||||
self.zones = None
|
||||
self.custom_data = None
|
||||
|
||||
|
@ -571,8 +594,13 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
|
|||
image_reference = self.get_custom_image_reference(
|
||||
self.image.get('name'),
|
||||
self.image.get('resource_group'))
|
||||
elif self.image.get('id'):
|
||||
try:
|
||||
image_reference = self.compute_models.ImageReference(id=self.image['id'])
|
||||
except Exception as exc:
|
||||
self.fail("id Error: Cannot get image from the reference id - {0}".format(self.image['id']))
|
||||
else:
|
||||
self.fail("parameter error: expecting image to contain [publisher, offer, sku, version] or [name, resource_group]")
|
||||
self.fail("parameter error: expecting image to contain [publisher, offer, sku, version], [name, resource_group] or [id]")
|
||||
elif self.image and isinstance(self.image, str):
|
||||
custom_image = True
|
||||
image_reference = self.get_custom_image_reference(self.image)
|
||||
|
@ -649,6 +677,10 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
|
|||
differences.append('overprovision')
|
||||
changed = True
|
||||
|
||||
if bool(self.single_placement_group) != bool(vmss_dict['properties']['singlePlacementGroup']):
|
||||
differences.append('single_placement_group')
|
||||
changed = True
|
||||
|
||||
vmss_dict['zones'] = [int(i) for i in vmss_dict['zones']] if 'zones' in vmss_dict and vmss_dict['zones'] else None
|
||||
if self.zones != vmss_dict['zones']:
|
||||
self.log("CHANGED: virtual machine scale sets {0} zones".format(self.name))
|
||||
|
@ -739,6 +771,7 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
|
|||
vmss_resource = self.compute_models.VirtualMachineScaleSet(
|
||||
location=self.location,
|
||||
overprovision=self.overprovision,
|
||||
single_placement_group=self.single_placement_group,
|
||||
tags=self.tags,
|
||||
upgrade_policy=self.compute_models.UpgradePolicy(
|
||||
mode=self.upgrade_policy
|
||||
|
@ -836,6 +869,7 @@ class AzureRMVirtualMachineScaleSet(AzureRMModuleBase):
|
|||
vmss_resource.virtual_machine_profile.storage_profile.os_disk.caching = self.os_disk_caching
|
||||
vmss_resource.sku.capacity = self.capacity
|
||||
vmss_resource.overprovision = self.overprovision
|
||||
vmss_resource.single_placement_group = self.single_placement_group
|
||||
|
||||
if support_lb_change:
|
||||
if self.load_balancer:
|
||||
|
|
|
@ -584,7 +584,7 @@
|
|||
image:
|
||||
offer: UbuntuServer
|
||||
register: fail_invalid_image_dict
|
||||
failed_when: 'fail_invalid_image_dict.msg != "parameter error: expecting image to contain [publisher, offer, sku, version] or [name, resource_group]"'
|
||||
failed_when: 'fail_invalid_image_dict.msg != "parameter error: expecting image to contain [publisher, offer, sku, version], [name, resource_group] or [id]"'
|
||||
|
||||
- name: assert error thrown with invalid image type
|
||||
azure_rm_virtualmachinescaleset:
|
||||
|
|
Loading…
Reference in a new issue