-
Notifications
You must be signed in to change notification settings - Fork 337
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add ec2_instance_placement_options target back
- Loading branch information
1 parent
732744b
commit 79b9f3d
Showing
5 changed files
with
147 additions
and
0 deletions.
There are no files selected for viewing
6 changes: 6 additions & 0 deletions
6
tests/integration/targets/ec2_instance_placement_options/aliases
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
time=10m | ||
|
||
cloud/aws | ||
|
||
ec2_instance_info | ||
ec2_instance |
6 changes: 6 additions & 0 deletions
6
tests/integration/targets/ec2_instance_placement_options/defaults/main.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
# defaults file for ec2_instance_block_devices | ||
ec2_instance_type: t3.micro | ||
ec2_instance_tag_TestId: "{{ resource_prefix }}-placement-group" | ||
ec2_tenancy: dedicated | ||
ec2_placement_group_name: "{{ resource_prefix}}-placement-group" |
7 changes: 7 additions & 0 deletions
7
tests/integration/targets/ec2_instance_placement_options/meta/main.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
# this just makes sure they're in the right place | ||
dependencies: | ||
- role: setup_ec2_facts | ||
- role: setup_ec2_instance_env | ||
vars: | ||
ec2_instance_test_name: placement_options |
105 changes: 105 additions & 0 deletions
105
tests/integration/targets/ec2_instance_placement_options/tasks/main.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
--- | ||
- module_defaults: | ||
group/aws: | ||
access_key: "{{ aws_access_key }}" | ||
secret_key: "{{ aws_secret_key }}" | ||
session_token: "{{ security_token | default(omit) }}" | ||
region: "{{ aws_region }}" | ||
block: | ||
- name: New placement group | ||
amazon.aws.ec2_placement_group: | ||
name: "{{ ec2_placement_group_name }}" | ||
strategy: partition | ||
partition_count: 1 | ||
state: present | ||
|
||
- name: New instance with placement group name | ||
amazon.aws.ec2_instance: | ||
state: running | ||
name: "{{ resource_prefix }}-test-placement-group-name" | ||
image_id: "{{ ec2_ami_id }}" | ||
placement: | ||
group_name: "{{ ec2_placement_group_name }}" | ||
tags: | ||
Name: "{{ resource_prefix }}-test-placement-group-name" | ||
TestId: "{{ ec2_instance_tag_TestId }}" | ||
security_group: default | ||
instance_type: "{{ ec2_instance_type }}" | ||
wait: true | ||
ignore_errors: true | ||
register: instance_creation_group_name | ||
|
||
- name: Gather ec2 facts to check placement group options | ||
amazon.aws.ec2_instance_info: | ||
filters: | ||
tag:Name: "{{ resource_prefix }}-test-placement-group-name" | ||
tag:TestId: "{{ ec2_instance_tag_TestId }}" | ||
instance-state-name: running | ||
ignore_errors: true | ||
register: instance_facts | ||
|
||
- name: Validate instance with placement group name | ||
ansible.builtin.assert: | ||
that: | ||
- instance_creation_group_name is success | ||
- instance_creation_group_name is changed | ||
- instance_facts.instances[0].placement.group_name == ec2_placement_group_name | ||
|
||
- ansible.builtin.include_tasks: select_availability_zone.yml | ||
|
||
- name: New instance with dedicated tenancy | ||
amazon.aws.ec2_instance: | ||
state: running | ||
name: "{{ resource_prefix }}-test-dedicated-tenancy" | ||
image_id: "{{ ec2_ami_id }}" | ||
placement: | ||
tenancy: "{{ ec2_tenancy }}" | ||
tags: | ||
TestId: "{{ ec2_instance_tag_TestId }}" | ||
security_group: default | ||
instance_type: "{{ ec2_instance_type }}" | ||
availability_zone: "{{ ec2_availability_zone }}" | ||
wait: true | ||
ignore_errors: true | ||
register: instance_creation_tenancy | ||
|
||
- name: Gather ec2 facts to check placement tenancy | ||
amazon.aws.ec2_instance_info: | ||
filters: | ||
tag:Name: "{{ resource_prefix }}-test-dedicated-tenancy" | ||
tag:TestId: "{{ ec2_instance_tag_TestId }}" | ||
instance-state-name: running | ||
ignore_errors: true | ||
register: instance_facts | ||
|
||
- name: Validate instance with dedicated tenancy | ||
ansible.builtin.assert: | ||
that: | ||
- instance_creation_tenancy is success | ||
- instance_creation_tenancy is changed | ||
- instance_facts.instances[0].placement.tenancy == ec2_tenancy | ||
# - instance_creation is failed | ||
# - '"You are not authorized to perform this operation." in instance_creation.msg' | ||
|
||
always: | ||
- name: Delete instances created with placement group name | ||
amazon.aws.ec2_instance: | ||
state: absent | ||
instance_ids: "{{ instance_creation_group_name.instance_ids }}" | ||
wait: false | ||
ignore_errors: true | ||
when: instance_creation_group_name is defined | ||
|
||
- name: Delete instances created with placement tenancy | ||
amazon.aws.ec2_instance: | ||
state: absent | ||
instance_ids: "{{ instance_creation_tenancy.instance_ids }}" | ||
wait: false | ||
ignore_errors: true | ||
when: instance_creation_tenancy is defined | ||
|
||
- name: Delete placement group. | ||
amazon.aws.ec2_placement_group: | ||
name: "{{ ec2_placement_group_name }}" | ||
state: absent | ||
ignore_errors: true |
23 changes: 23 additions & 0 deletions
23
tests/integration/targets/ec2_instance_placement_options/tasks/select_availability_zone.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# aws regions supporting 't3.micro' instance type | ||
- ansible.builtin.set_fact: | ||
av_zones: | ||
- us-east-1a | ||
- us-east-1b | ||
- us-east-1c | ||
- us-east-1d | ||
- us-east-1f | ||
|
||
- name: List t3.micro instances | ||
amazon.aws.ec2_instance_info: | ||
filters: | ||
instance-type: t3.micro | ||
instance-state-name: | ||
- pending | ||
- running | ||
register: _instances | ||
|
||
- ansible.builtin.set_fact: | ||
instances_zones: "{{ _instances.instances | map(attribute='placement.availability_zone') | list | ansible.builtin.unique }}" | ||
|
||
- ansible.builtin.set_fact: | ||
ec2_availability_zone: "{{ av_zones | ansible.builtin.difference(instances_zones) | list | ansible.builtin.random }}" |