Skip to content

Commit d67865f

Browse files
fixing issue w/ bastion EIP provisioning. Updated the ASG to provision the first instance properly. (#5)
1 parent 53a8b45 commit d67865f

File tree

7 files changed

+21
-18
lines changed

7 files changed

+21
-18
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module "asg_lambda_role" {
1515
source = "github.com/corelight/terraform-aws-sensor//modules/iam/lambda"
1616
1717
lambda_cloudwatch_log_group_arn = module.sensor.cloudwatch_log_group_arn
18-
sensor_autoscaling_group_name = module.sensor.autoscaling_group_name
18+
sensor_autoscaling_group_arn = module.sensor.autoscaling_group_arn
1919
security_group_arn = module.sensor.management_security_group_arn
2020
subnet_arn = data.aws_subnet.management.arn
2121
}

auto_scale_group.tf

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,20 @@ resource "aws_autoscaling_group" "sensor_asg" {
1515
health_check_grace_period = 300
1616
termination_policies = ["OldestInstance"]
1717
protect_from_scale_in = false
18-
}
18+
wait_for_capacity_timeout = 0
1919

20-
resource "aws_autoscaling_lifecycle_hook" "asg_scale_up_hook" {
21-
autoscaling_group_name = aws_autoscaling_group.sensor_asg.name
22-
lifecycle_transition = "autoscaling:EC2_INSTANCE_LAUNCHING"
23-
name = var.asg_lifecycle_hook_name
24-
default_result = "ABANDON"
25-
heartbeat_timeout = 300
20+
initial_lifecycle_hook {
21+
lifecycle_transition = "autoscaling:EC2_INSTANCE_LAUNCHING"
22+
name = var.asg_lifecycle_hook_name
23+
default_result = "ABANDON"
24+
heartbeat_timeout = 300
25+
}
26+
27+
depends_on = [
28+
aws_lambda_function.auto_scaling_lambda,
29+
aws_cloudwatch_event_rule.asg_lifecycle_rule,
30+
aws_cloudwatch_log_group.log_group,
31+
]
2632
}
2733

2834
resource "aws_autoscaling_policy" "sensor_autoscale_policy" {

lambda.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ resource "aws_cloudwatch_event_rule" "asg_lifecycle_rule" {
3838
"source" : ["aws.autoscaling"],
3939
"detail-type" : ["EC2 Instance-launch Lifecycle Action"],
4040
"detail" : {
41-
"AutoScalingGroupName" : [aws_autoscaling_group.sensor_asg.name],
42-
"LifecycleHookName" : [aws_autoscaling_lifecycle_hook.asg_scale_up_hook.name]
41+
"AutoScalingGroupName" : [var.sensor_asg_name],
42+
"LifecycleHookName" : [var.asg_lifecycle_hook_name]
4343
}
4444
})
4545

modules/bastion/instance.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ resource "aws_network_interface" "bastion_nic" {
2929
}
3030

3131
resource "aws_eip" "bastion_public_ip" {
32+
instance = aws_instance.bastion.id
3233
network_interface = aws_network_interface.bastion_nic.id
3334

3435
tags = merge({ Name : "${var.bastion_instance_name}-public-ip" }, var.tags)

modules/iam/lambda/main.tf

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
data "aws_autoscaling_group" "asg" {
2-
name = var.sensor_autoscaling_group_name
3-
}
4-
51
data "aws_iam_policy_document" "lambda_nic_manager_policy" {
62
statement {
73
effect = "Allow"
@@ -31,7 +27,7 @@ data "aws_iam_policy_document" "lambda_nic_manager_policy" {
3127
"autoscaling:CompleteLifecycleAction"
3228
]
3329
resources = [
34-
data.aws_autoscaling_group.asg.arn
30+
var.sensor_autoscaling_group_arn
3531
]
3632
}
3733

@@ -46,7 +42,7 @@ data "aws_iam_policy_document" "lambda_nic_manager_policy" {
4642
]
4743
condition {
4844
test = "StringEquals"
49-
values = [data.aws_autoscaling_group.asg.name]
45+
values = [split("/", var.sensor_autoscaling_group_arn)[1]]
5046
variable = "aws:ResourceTag/aws:autoscaling:groupName"
5147
}
5248
}

modules/iam/lambda/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ variable "lambda_cloudwatch_log_group_arn" {
33
type = string
44
}
55

6-
variable "sensor_autoscaling_group_name" {
6+
variable "sensor_autoscaling_group_arn" {
77
description = "ARN of the sensor EC2 autoscaling group of Corelight sensors"
88
type = string
99
}

outputs.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
output "auto_scale_group_arn" {
1+
output "autoscaling_group_arn" {
22
value = aws_autoscaling_group.sensor_asg.arn
33
}
44

0 commit comments

Comments
 (0)