VM Autoscaling Group
vm_autoscaling_group
This is a module that supports creating, updating or destroying VM Autoscaling Groups
Example Syntax
name: Create VM Autoscaling Group
ionoscloudsdk.ionoscloud.vm_autoscaling_group:
datacenter: 'AnsibleVMAutoscaling'
name: 'AnsibleVMAutoscalingGroup'
max_replica_count: '5'
min_replica_count: '1'
metric: 'INSTANCE_CPU_UTILIZATION_AVERAGE'
range: 'PT24H'
unit: 'PER_HOUR'
scale_in_threshold: '33'
scale_out_threshold: '77'
scale_in_action: '{'amount': 1, 'amount_type': 'ABSOLUTE', 'cooldown_period': 'PT5M', 'termination_policy': 'RANDOM', 'delete_volumes': True}'
scale_out_action: '{'amount': 1, 'amount_type': 'ABSOLUTE', 'cooldown_period': 'PT5M'}'
availability_zone: 'AUTO'
cores: '2'
cpu_family: 'INTEL_XEON'
ram: '1024'
nics: '[{'lan': 1, 'name': 'SDK_TEST_NIC1', 'dhcp': True}, {'lan': 1, 'name': 'SDK_TEST_NIC2', 'dhcp': False}]'
volumes: '[{'image': 'b6d8c6f2-febc-11ed-86e8-2e7f0689c849', 'image_password': 'test12345', 'name': 'SDK_TEST_VOLUME', 'size': 50, 'type': 'HDD', 'bus': 'IDE', 'boot_order': 'AUTO'}]'
register: vm_autoscaling_group_response
name: Update VM Ausocaling Group
ionoscloudsdk.ionoscloud.vm_autoscaling_group:
vm_autoscaling_group: ''
datacenter: 'AnsibleVMAutoscalingUpdate'
name: 'AnsibleVMAutoscalingGroupUPDATED'
max_replica_count: '1'
min_replica_count: '0'
metric: 'INSTANCE_NETWORK_IN_BYTES'
range: 'PT12H'
unit: 'PER_MINUTE'
scale_in_threshold: '30'
scale_out_threshold: '86'
scale_in_action: '{'amount': 50, 'amount_type': 'PERCENTAGE', 'cooldown_period': 'PT10M', 'termination_policy': 'RANDOM', 'delete_volumes': False}'
scale_out_action: '{'amount': 2, 'amount_type': 'ABSOLUTE', 'cooldown_period': 'PT15M'}'
availability_zone: 'AUTO'
cores: '1'
cpu_family: 'INTEL_SKYLAKE'
ram: '2048'
nics: '[{'lan': 1, 'name': 'SDK_TEST_NIC1', 'dhcp': True, 'firewall_active': True, 'firewall_rules': [{'name': 'test2', 'protocol': 'TCP', 'port_range_end': 12}]}]'
volumes: '[{'image': 'e84aed99-feba-11ed-86e8-2e7f0689c849', 'image_password': 'test12345', 'name': 'SDK_TEST_VOLUME_UPDATE', 'size': 75, 'type': 'SSD', 'bus': 'IDE', 'boot_order': 'AUTO'}]'
do_not_replace: false
state: update
register: vm_autoscaling_group_response
name: Remove VM Ausocaling Group
ionoscloudsdk.ionoscloud.vm_autoscaling_group:
vm_autoscaling_group: 'AnsibleVMAutoscalingGroup'
state: absent
register: vm_autoscaling_group_response
Returned object
{
"changed": true,
"failed": false,
"action": "create",
"vm_autoscaling_group": {
"id": "cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66",
"type": "autoscaling-group",
"href": "https://api.ionos.com/autoscaling/groups/cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66",
"metadata": {
"created_by": "<USER_EMAIL>",
"created_by_user_id": "<USER_ID>",
"created_date": "2023-10-30T13:53:50.863223+00:00",
"etag": "UqNMEcSKAhvN4GK+OeBxlYlLs0TS6SBCGvk5HgWgdJk=",
"last_modified_by": "<USER_EMAIL>",
"last_modified_by_user_id": "<USER_ID>",
"last_modified_date": "2023-10-30T13:53:54.378143+00:00",
"state": "AVAILABLE"
},
"properties": {
"datacenter": {
"id": "8b8b9122-b8ef-4966-a36a-2e9cf8609121",
"type": "datacenter",
"href": "https://api.public.production.k8s.fra2.profitbricks.net/cloudapi/v6/datacenters/8b8b9122-b8ef-4966-a36a-2e9cf8609121"
},
"location": "us/las",
"max_replica_count": 5,
"min_replica_count": 1,
"name": "AnsibleVMAutoscalingGroup",
"policy": {
"metric": "INSTANCE_CPU_UTILIZATION_AVERAGE",
"range": "PT24H",
"scale_in_action": {
"amount": 1.0,
"amount_type": "ABSOLUTE",
"cooldown_period": "PT5M",
"termination_policy": "RANDOM",
"delete_volumes": true
},
"scale_in_threshold": 33.0,
"scale_out_action": {
"amount": 1.0,
"amount_type": "ABSOLUTE",
"cooldown_period": "PT5M"
},
"scale_out_threshold": 77.0,
"unit": "PER_HOUR"
},
"replica_configuration": {
"availability_zone": "AUTO",
"cores": 2,
"cpu_family": "INTEL_XEON",
"nics": [
{
"lan": 1,
"name": "SDK_TEST_NIC1",
"dhcp": true,
"firewall_active": null,
"firewall_type": null,
"flow_logs": [],
"firewall_rules": [],
"target_group": null
},
{
"lan": 1,
"name": "SDK_TEST_NIC2",
"dhcp": false,
"firewall_active": null,
"firewall_type": null,
"flow_logs": [],
"firewall_rules": [],
"target_group": null
}
],
"ram": 1024,
"volumes": [
{
"image": "b6d8c6f2-febc-11ed-86e8-2e7f0689c849",
"image_alias": null,
"name": "SDK_TEST_VOLUME",
"size": 50,
"ssh_keys": [],
"type": "HDD",
"user_data": null,
"bus": "IDE",
"backupunit_id": null,
"boot_order": "AUTO",
"image_password": null
}
]
}
},
"entities": {
"actions": {
"id": "cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66/actions",
"type": "collection",
"href": "https://api.ionos.com/autoscaling/groups/cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66/actions"
},
"servers": {
"id": "cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66/servers",
"type": "collection",
"href": "https://api.ionos.com/autoscaling/groups/cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66/servers"
}
},
"started_actions": [
{
"id": "4293fe77-1fc5-42e9-aff4-2ed8341c1b0e",
"type": "autoscaling-action",
"href": "https://api.ionos.com/autoscaling/groups/cd7407bc-54ff-4dcb-bf0e-6c2f7fa45c66/actions/4293fe77-1fc5-42e9-aff4-2ed8341c1b0e"
}
]
}
}
For more examples please check out the tests here.
NOTE: If you are using a versions 7.0.0 and up: modules can replace resources if certain set parameters differ from the results found in the API!
Parameters that can trigger a resource replacement:
datacenter
state: present
name: Create VM Autoscaling Group
ionoscloudsdk.ionoscloud.vm_autoscaling_group:
datacenter: 'AnsibleVMAutoscaling'
name: 'AnsibleVMAutoscalingGroup'
max_replica_count: '5'
min_replica_count: '1'
metric: 'INSTANCE_CPU_UTILIZATION_AVERAGE'
range: 'PT24H'
unit: 'PER_HOUR'
scale_in_threshold: '33'
scale_out_threshold: '77'
scale_in_action: '{'amount': 1, 'amount_type': 'ABSOLUTE', 'cooldown_period': 'PT5M', 'termination_policy': 'RANDOM', 'delete_volumes': True}'
scale_out_action: '{'amount': 1, 'amount_type': 'ABSOLUTE', 'cooldown_period': 'PT5M'}'
availability_zone: 'AUTO'
cores: '2'
cpu_family: 'INTEL_XEON'
ram: '1024'
nics: '[{'lan': 1, 'name': 'SDK_TEST_NIC1', 'dhcp': True}, {'lan': 1, 'name': 'SDK_TEST_NIC2', 'dhcp': False}]'
volumes: '[{'image': 'b6d8c6f2-febc-11ed-86e8-2e7f0689c849', 'image_password': 'test12345', 'name': 'SDK_TEST_VOLUME', 'size': 50, 'type': 'HDD', 'bus': 'IDE', 'boot_order': 'AUTO'}]'
register: vm_autoscaling_group_response
Available parameters for state present:
state: absent
name: Remove VM Ausocaling Group
ionoscloudsdk.ionoscloud.vm_autoscaling_group:
vm_autoscaling_group: 'AnsibleVMAutoscalingGroup'
state: absent
register: vm_autoscaling_group_response
Available parameters for state absent:
state: update
name: Update VM Ausocaling Group
ionoscloudsdk.ionoscloud.vm_autoscaling_group:
vm_autoscaling_group: ''
datacenter: 'AnsibleVMAutoscalingUpdate'
name: 'AnsibleVMAutoscalingGroupUPDATED'
max_replica_count: '1'
min_replica_count: '0'
metric: 'INSTANCE_NETWORK_IN_BYTES'
range: 'PT12H'
unit: 'PER_MINUTE'
scale_in_threshold: '30'
scale_out_threshold: '86'
scale_in_action: '{'amount': 50, 'amount_type': 'PERCENTAGE', 'cooldown_period': 'PT10M', 'termination_policy': 'RANDOM', 'delete_volumes': False}'
scale_out_action: '{'amount': 2, 'amount_type': 'ABSOLUTE', 'cooldown_period': 'PT15M'}'
availability_zone: 'AUTO'
cores: '1'
cpu_family: 'INTEL_SKYLAKE'
ram: '2048'
nics: '[{'lan': 1, 'name': 'SDK_TEST_NIC1', 'dhcp': True, 'firewall_active': True, 'firewall_rules': [{'name': 'test2', 'protocol': 'TCP', 'port_range_end': 12}]}]'
volumes: '[{'image': 'e84aed99-feba-11ed-86e8-2e7f0689c849', 'image_password': 'test12345', 'name': 'SDK_TEST_VOLUME_UPDATE', 'size': 75, 'type': 'SSD', 'bus': 'IDE', 'boot_order': 'AUTO'}]'
do_not_replace: false
state: update
register: vm_autoscaling_group_response
Available parameters for state update:
Last updated