@@ -148,33 +148,34 @@ data "aws_iam_policy_document" "kms" {
148
148
# tfsec:ignore:aws-ec2-enforce-http-token-imds
149
149
resource "aws_instance" "default" {
150
150
count = var. enable && var. default_instance_enabled ? var. instance_count : 0
151
- ami = var. ami == " " ? data. aws_ami . ubuntu . id : var. ami
152
- ebs_optimized = var. ebs_optimized
153
- instance_type = var. instance_type
151
+ ami = var. instance_configuration . ami == " " ? data. aws_ami . ubuntu . id : var. instance_configuration . ami
152
+ ebs_optimized = var. instance_configuration . ebs_optimized
153
+ instance_type = var. instance_configuration . instance_type
154
154
key_name = var. key_name == " " ? join (" " , aws_key_pair. default [* ]. key_name ) : var. key_name
155
- monitoring = var. monitoring
155
+ monitoring = var. instance_configuration . monitoring
156
156
vpc_security_group_ids = length (var. sg_ids ) < 1 ? aws_security_group. default [* ]. id : var. sg_ids
157
157
subnet_id = element (distinct (compact (concat (var. subnet_ids ))), count. index )
158
- associate_public_ip_address = var. associate_public_ip_address
159
- disable_api_termination = var. disable_api_termination
160
- instance_initiated_shutdown_behavior = var. instance_initiated_shutdown_behavior
161
- placement_group = var. placement_group
162
- tenancy = var. tenancy
163
- host_id = var. host_id
164
- cpu_core_count = var. cpu_core_count
165
- cpu_threads_per_core = var. cpu_threads_per_core
166
- user_data = var. user_data
167
- user_data_base64 = var. user_data_base64
168
- user_data_replace_on_change = var. user_data_replace_on_change
169
- availability_zone = var. availability_zone
170
- get_password_data = var. get_password_data
171
- private_ip = var. private_ip
172
- secondary_private_ips = var. secondary_private_ips
158
+ associate_public_ip_address = var. instance_configuration . associate_public_ip_address
159
+ disable_api_termination = var. instance_configuration . disable_api_termination
160
+ instance_initiated_shutdown_behavior = var. instance_configuration . instance_initiated_shutdown_behavior
161
+ placement_group = var. instance_configuration . placement_group
162
+ tenancy = var. instance_configuration . tenancy
163
+ host_id = var. instance_configuration . host_id
164
+ cpu_core_count = var. instance_configuration . cpu_core_count
165
+ cpu_threads_per_core = var. instance_configuration . cpu_threads_per_core
166
+ user_data = var. instance_configuration . user_data
167
+ user_data_base64 = var. instance_configuration . user_data_base64
168
+ user_data_replace_on_change = var. instance_configuration . user_data_replace_on_change
169
+ availability_zone = var. instance_configuration . availability_zone
170
+ get_password_data = var. instance_configuration . get_password_data
171
+ private_ip = var. instance_configuration . private_ip
172
+ secondary_private_ips = var. instance_configuration . secondary_private_ips
173
173
iam_instance_profile = join (" " , aws_iam_instance_profile. default [* ]. name )
174
- source_dest_check = var. source_dest_check
175
- ipv6_address_count = var. ipv6_address_count
176
- ipv6_addresses = var. ipv6_addresses
177
- hibernation = var. hibernation
174
+ source_dest_check = var. instance_configuration . source_dest_check
175
+ ipv6_address_count = var. instance_configuration . ipv6_address_count
176
+ ipv6_addresses = var. instance_configuration . ipv6_addresses
177
+ hibernation = var. instance_configuration . hibernation
178
+
178
179
dynamic "cpu_options" {
179
180
for_each = length (var. cpu_options ) > 0 ? [var . cpu_options ] : []
180
181
content {
@@ -199,7 +200,7 @@ resource "aws_instance" "default" {
199
200
}
200
201
201
202
dynamic "root_block_device" {
202
- for_each = var. root_block_device
203
+ for_each = var. instance_configuration . root_block_device
203
204
content {
204
205
delete_on_termination = lookup (root_block_device. value , " delete_on_termination" , null )
205
206
encrypted = true
@@ -238,7 +239,7 @@ resource "aws_instance" "default" {
238
239
}
239
240
240
241
dynamic "ephemeral_block_device" {
241
- for_each = var. ephemeral_block_device
242
+ for_each = var. instance_configuration . ephemeral_block_device
242
243
content {
243
244
device_name = ephemeral_block_device. value . device_name
244
245
no_device = lookup (ephemeral_block_device. value , " no_device" , null )
@@ -372,42 +373,44 @@ resource "aws_route53_record" "default" {
372
373
# # Below Provides an EC2 Spot Instance Request resource. This allows instances to be requested on the spot market..
373
374
# #----------------------------------------------------------------------------------
374
375
resource "aws_spot_instance_request" "default" {
375
- count = var. enable && var. spot_instance_enabled ? var. spot_instance_count : 0
376
- spot_price = var. spot_price
377
- wait_for_fulfillment = var. spot_wait_for_fulfillment
378
- spot_type = var. spot_type
379
- launch_group = var. spot_launch_group
380
- block_duration_minutes = var. spot_block_duration_minutes
381
- instance_interruption_behavior = var. spot_instance_interruption_behavior
382
- valid_until = var. spot_valid_until
383
- valid_from = var. spot_valid_from
384
- ami = var. ami == " " ? data. aws_ami . ubuntu . id : var. ami
385
- ebs_optimized = var. ebs_optimized
386
- instance_type = var. instance_type
376
+ count = var. enable && var. spot_instance_enabled ? var. spot_instance_count : 0
377
+ spot_price = var. spot_configuration . spot_price
378
+ wait_for_fulfillment = var. spot_configuration . wait_for_fulfillment
379
+ spot_type = var. spot_configuration . spot_type
380
+ launch_group = var. spot_configuration . launch_group
381
+ block_duration_minutes = var. spot_configuration . block_duration_minutes
382
+ instance_interruption_behavior = var. spot_configuration . instance_interruption_behavior
383
+ valid_until = var. spot_configuration . valid_until
384
+ valid_from = var. spot_configuration . valid_from
385
+
386
+ # Instance configuration
387
+ ami = var. instance_configuration . ami == " " ? data. aws_ami . ubuntu . id : var. instance_configuration . ami
388
+ ebs_optimized = var. instance_configuration . ebs_optimized
389
+ instance_type = var. instance_configuration . instance_type
387
390
key_name = var. key_name == " " ? join (" " , aws_key_pair. default [* ]. key_name ) : var. key_name
388
- monitoring = var. monitoring
391
+ monitoring = var. instance_configuration . monitoring
389
392
vpc_security_group_ids = length (var. sg_ids ) < 1 ? aws_security_group. default [* ]. id : var. sg_ids
390
393
subnet_id = element (distinct (compact (concat (var. subnet_ids ))), count. index )
391
- associate_public_ip_address = var. associate_public_ip_address
392
- disable_api_termination = var. disable_api_termination
393
- instance_initiated_shutdown_behavior = var. instance_initiated_shutdown_behavior
394
- placement_group = var. placement_group
395
- tenancy = var. tenancy
396
- host_id = var. host_id
397
- cpu_core_count = var. cpu_core_count
398
- cpu_threads_per_core = var. cpu_threads_per_core
399
- user_data = var. user_data
400
- user_data_base64 = var. user_data_base64
401
- user_data_replace_on_change = var. user_data_replace_on_change
402
- availability_zone = var. availability_zone
403
- get_password_data = var. get_password_data
404
- private_ip = var. private_ip
405
- secondary_private_ips = var. secondary_private_ips
394
+ associate_public_ip_address = var. instance_configuration . associate_public_ip_address
395
+ disable_api_termination = var. instance_configuration . disable_api_termination
396
+ instance_initiated_shutdown_behavior = var. instance_configuration . instance_initiated_shutdown_behavior
397
+ placement_group = var. instance_configuration . placement_group
398
+ tenancy = var. instance_configuration . tenancy
399
+ host_id = var. instance_configuration . host_id
400
+ cpu_core_count = var. instance_configuration . cpu_core_count
401
+ cpu_threads_per_core = var. instance_configuration . cpu_threads_per_core
402
+ user_data = var. instance_configuration . user_data
403
+ user_data_base64 = var. instance_configuration . user_data_base64
404
+ user_data_replace_on_change = var. instance_configuration . user_data_replace_on_change
405
+ availability_zone = var. instance_configuration . availability_zone
406
+ get_password_data = var. instance_configuration . get_password_data
407
+ private_ip = var. instance_configuration . private_ip
408
+ secondary_private_ips = var. instance_configuration . secondary_private_ips
406
409
iam_instance_profile = join (" " , aws_iam_instance_profile. default [* ]. name )
407
- source_dest_check = var. source_dest_check
408
- ipv6_address_count = var. ipv6_address_count
409
- ipv6_addresses = var. ipv6_addresses
410
- hibernation = var. hibernation
410
+ source_dest_check = var. instance_configuration . source_dest_check
411
+ ipv6_address_count = var. instance_configuration . ipv6_address_count
412
+ ipv6_addresses = var. instance_configuration . ipv6_addresses
413
+ hibernation = var. instance_configuration . hibernation
411
414
412
415
dynamic "cpu_options" {
413
416
for_each = length (var. cpu_options ) > 0 ? [var . cpu_options ] : []
@@ -433,7 +436,7 @@ resource "aws_spot_instance_request" "default" {
433
436
}
434
437
435
438
dynamic "root_block_device" {
436
- for_each = var. root_block_device
439
+ for_each = var. instance_configuration . root_block_device
437
440
content {
438
441
delete_on_termination = lookup (root_block_device. value , " delete_on_termination" , null )
439
442
encrypted = true
@@ -472,7 +475,7 @@ resource "aws_spot_instance_request" "default" {
472
475
}
473
476
474
477
dynamic "ephemeral_block_device" {
475
- for_each = var. ephemeral_block_device
478
+ for_each = var. instance_configuration . ephemeral_block_device
476
479
content {
477
480
device_name = ephemeral_block_device. value . device_name
478
481
no_device = lookup (ephemeral_block_device. value , " no_device" , null )
0 commit comments