Skip to content

Commit 1b2cdeb

Browse files
deny-7bryantbiggs
andauthored
feat: Add availability_zone output (#347)
Co-authored-by: Bryant Biggs <[email protected]>
1 parent 4de24dc commit 1b2cdeb

File tree

7 files changed

+42
-1
lines changed

7 files changed

+42
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ No modules.
265265
|------|-------------|
266266
| <a name="output_ami"></a> [ami](#output\_ami) | AMI ID that was used to create the instance |
267267
| <a name="output_arn"></a> [arn](#output\_arn) | The ARN of the instance |
268+
| <a name="output_availability_zone"></a> [availability\_zone](#output\_availability\_zone) | The availability zone of the created instance |
268269
| <a name="output_capacity_reservation_specification"></a> [capacity\_reservation\_specification](#output\_capacity\_reservation\_specification) | Capacity reservation specification of the instance |
269270
| <a name="output_ebs_block_device"></a> [ebs\_block\_device](#output\_ebs\_block\_device) | EBS block device information |
270271
| <a name="output_ephemeral_block_device"></a> [ephemeral\_block\_device](#output\_ephemeral\_block\_device) | Ephemeral block device information |

examples/complete/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ No inputs.
6969
| Name | Description |
7070
|------|-------------|
7171
| <a name="output_ec2_complete_arn"></a> [ec2\_complete\_arn](#output\_ec2\_complete\_arn) | The ARN of the instance |
72+
| <a name="output_ec2_complete_availability_zone"></a> [ec2\_complete\_availability\_zone](#output\_ec2\_complete\_availability\_zone) | The availability zone of the created instance |
7273
| <a name="output_ec2_complete_capacity_reservation_specification"></a> [ec2\_complete\_capacity\_reservation\_specification](#output\_ec2\_complete\_capacity\_reservation\_specification) | Capacity reservation specification of the instance |
7374
| <a name="output_ec2_complete_ebs_block_device"></a> [ec2\_complete\_ebs\_block\_device](#output\_ec2\_complete\_ebs\_block\_device) | EBS block device information |
7475
| <a name="output_ec2_complete_ephemeral_block_device"></a> [ec2\_complete\_ephemeral\_block\_device](#output\_ec2\_complete\_ephemeral\_block\_device) | Ephemeral block device information |
@@ -98,6 +99,7 @@ No inputs.
9899
| <a name="output_ec2_spot_instance_public_ip"></a> [ec2\_spot\_instance\_public\_ip](#output\_ec2\_spot\_instance\_public\_ip) | The public IP address assigned to the instance, if applicable. NOTE: If you are using an aws\_eip with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached |
99100
| <a name="output_ec2_spot_instance_tags_all"></a> [ec2\_spot\_instance\_tags\_all](#output\_ec2\_spot\_instance\_tags\_all) | A map of tags assigned to the resource, including those inherited from the provider default\_tags configuration block |
100101
| <a name="output_ec2_t2_unlimited_arn"></a> [ec2\_t2\_unlimited\_arn](#output\_ec2\_t2\_unlimited\_arn) | The ARN of the instance |
102+
| <a name="output_ec2_t2_unlimited_availability_zone"></a> [ec2\_t2\_unlimited\_availability\_zone](#output\_ec2\_t2\_unlimited\_availability\_zone) | The availability zone of the created instance |
101103
| <a name="output_ec2_t2_unlimited_capacity_reservation_specification"></a> [ec2\_t2\_unlimited\_capacity\_reservation\_specification](#output\_ec2\_t2\_unlimited\_capacity\_reservation\_specification) | Capacity reservation specification of the instance |
102104
| <a name="output_ec2_t2_unlimited_id"></a> [ec2\_t2\_unlimited\_id](#output\_ec2\_t2\_unlimited\_id) | The ID of the instance |
103105
| <a name="output_ec2_t2_unlimited_instance_state"></a> [ec2\_t2\_unlimited\_instance\_state](#output\_ec2\_t2\_unlimited\_instance\_state) | The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped` |
@@ -107,6 +109,7 @@ No inputs.
107109
| <a name="output_ec2_t2_unlimited_public_ip"></a> [ec2\_t2\_unlimited\_public\_ip](#output\_ec2\_t2\_unlimited\_public\_ip) | The public IP address assigned to the instance, if applicable. NOTE: If you are using an aws\_eip with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached |
108110
| <a name="output_ec2_t2_unlimited_tags_all"></a> [ec2\_t2\_unlimited\_tags\_all](#output\_ec2\_t2\_unlimited\_tags\_all) | A map of tags assigned to the resource, including those inherited from the provider default\_tags configuration block |
109111
| <a name="output_ec2_t3_unlimited_arn"></a> [ec2\_t3\_unlimited\_arn](#output\_ec2\_t3\_unlimited\_arn) | The ARN of the instance |
112+
| <a name="output_ec2_t3_unlimited_availability_zone"></a> [ec2\_t3\_unlimited\_availability\_zone](#output\_ec2\_t3\_unlimited\_availability\_zone) | The availability zone of the created instance |
110113
| <a name="output_ec2_t3_unlimited_capacity_reservation_specification"></a> [ec2\_t3\_unlimited\_capacity\_reservation\_specification](#output\_ec2\_t3\_unlimited\_capacity\_reservation\_specification) | Capacity reservation specification of the instance |
111114
| <a name="output_ec2_t3_unlimited_id"></a> [ec2\_t3\_unlimited\_id](#output\_ec2\_t3\_unlimited\_id) | The ID of the instance |
112115
| <a name="output_ec2_t3_unlimited_instance_state"></a> [ec2\_t3\_unlimited\_instance\_state](#output\_ec2\_t3\_unlimited\_instance\_state) | The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped` |
@@ -116,6 +119,7 @@ No inputs.
116119
| <a name="output_ec2_t3_unlimited_public_ip"></a> [ec2\_t3\_unlimited\_public\_ip](#output\_ec2\_t3\_unlimited\_public\_ip) | The public IP address assigned to the instance, if applicable. NOTE: If you are using an aws\_eip with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached |
117120
| <a name="output_ec2_t3_unlimited_tags_all"></a> [ec2\_t3\_unlimited\_tags\_all](#output\_ec2\_t3\_unlimited\_tags\_all) | A map of tags assigned to the resource, including those inherited from the provider default\_tags configuration block |
118121
| <a name="output_spot_bid_status"></a> [spot\_bid\_status](#output\_spot\_bid\_status) | The current bid status of the Spot Instance Request |
122+
| <a name="output_spot_instance_availability_zone"></a> [spot\_instance\_availability\_zone](#output\_spot\_instance\_availability\_zone) | The availability zone of the created spot instance |
119123
| <a name="output_spot_instance_id"></a> [spot\_instance\_id](#output\_spot\_instance\_id) | The Instance ID (if any) that is currently fulfilling the Spot Instance request |
120124
| <a name="output_spot_request_state"></a> [spot\_request\_state](#output\_spot\_request\_state) | The current request state of the Spot Instance Request |
121125
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->

examples/complete/outputs.tf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ output "ec2_complete_ephemeral_block_device" {
8989
value = module.ec2_complete.ephemeral_block_device
9090
}
9191

92+
output "ec2_complete_availability_zone" {
93+
description = "The availability zone of the created instance"
94+
value = module.ec2_complete.availability_zone
95+
}
96+
9297
# EC2 T2 Unlimited
9398
output "ec2_t2_unlimited_id" {
9499
description = "The ID of the instance"
@@ -135,6 +140,11 @@ output "ec2_t2_unlimited_tags_all" {
135140
value = module.ec2_t2_unlimited.tags_all
136141
}
137142

143+
output "ec2_t2_unlimited_availability_zone" {
144+
description = "The availability zone of the created instance"
145+
value = module.ec2_t2_unlimited.availability_zone
146+
}
147+
138148
# EC2 T3 Unlimited
139149
output "ec2_t3_unlimited_id" {
140150
description = "The ID of the instance"
@@ -181,6 +191,11 @@ output "ec2_t3_unlimited_tags_all" {
181191
value = module.ec2_t3_unlimited.tags_all
182192
}
183193

194+
output "ec2_t3_unlimited_availability_zone" {
195+
description = "The availability zone of the created instance"
196+
value = module.ec2_t3_unlimited.availability_zone
197+
}
198+
184199
# EC2 with ignore AMI changes
185200
output "ec2_ignore_ami_changes_ami" {
186201
description = "The AMI of the instance (ignore_ami_changes = true)"
@@ -253,3 +268,8 @@ output "spot_instance_id" {
253268
description = "The Instance ID (if any) that is currently fulfilling the Spot Instance request"
254269
value = module.ec2_spot_instance.spot_instance_id
255270
}
271+
272+
output "spot_instance_availability_zone" {
273+
description = "The availability zone of the created spot instance"
274+
value = module.ec2_spot_instance.availability_zone
275+
}

examples/volume-attachment/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ No inputs.
5656
| Name | Description |
5757
|------|-------------|
5858
| <a name="output_ec2_arn"></a> [ec2\_arn](#output\_ec2\_arn) | The ARN of the instance |
59+
| <a name="output_ec2_availability_zone"></a> [ec2\_availability\_zone](#output\_ec2\_availability\_zone) | The availability zone of the created spot instance |
5960
| <a name="output_ec2_capacity_reservation_specification"></a> [ec2\_capacity\_reservation\_specification](#output\_ec2\_capacity\_reservation\_specification) | Capacity reservation specification of the instance |
6061
| <a name="output_ec2_id"></a> [ec2\_id](#output\_ec2\_id) | The ID of the instance |
6162
| <a name="output_ec2_instance_state"></a> [ec2\_instance\_state](#output\_ec2\_instance\_state) | The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped` |

examples/volume-attachment/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ resource "aws_volume_attachment" "this" {
4444
}
4545

4646
resource "aws_ebs_volume" "this" {
47-
availability_zone = element(local.azs, 0)
47+
availability_zone = module.ec2.availability_zone
4848
size = 1
4949

5050
tags = local.tags

examples/volume-attachment/outputs.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,8 @@ output "ec2_tags_all" {
4343
description = "A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block"
4444
value = module.ec2.tags_all
4545
}
46+
47+
output "ec2_availability_zone" {
48+
description = "The availability zone of the created spot instance"
49+
value = module.ec2.availability_zone
50+
}

outputs.tf

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,16 @@ output "ami" {
153153
)
154154
}
155155

156+
output "availability_zone" {
157+
description = "The availability zone of the created instance"
158+
value = try(
159+
aws_instance.this[0].availability_zone,
160+
aws_instance.ignore_ami[0].availability_zone,
161+
aws_spot_instance_request.this[0].availability_zone,
162+
null,
163+
)
164+
}
165+
156166
################################################################################
157167
# IAM Role / Instance Profile
158168
################################################################################

0 commit comments

Comments
 (0)