Infra: AWS self termination 48/33448/1
authorpmikus <pmikus@cisco.com>
Wed, 11 Aug 2021 09:55:22 +0000 (09:55 +0000)
committerpmikus <pmikus@cisco.com>
Wed, 11 Aug 2021 09:55:22 +0000 (09:55 +0000)
Signed-off-by: pmikus <pmikus@cisco.com>
Change-Id: I9ecd85d1086f6be1bbaf6a6925da362cc4c1a9ad

fdio.infra.ansible/roles/aws/tasks/main.yaml
fdio.infra.terraform/2n_aws_c5n/deploy/main.tf
fdio.infra.terraform/2n_aws_c5n/deploy/variables.tf
fdio.infra.terraform/3n_aws_c5n/deploy/main.tf
fdio.infra.terraform/3n_aws_c5n/deploy/variables.tf
fdio.infra.terraform/3n_aws_c5n/variables.tf

index 2d20976..2b8c22c 100644 (file)
@@ -82,7 +82,7 @@
   tags:
     - aws-reload-systemd-modules
 
   tags:
     - aws-reload-systemd-modules
 
-- name: Performance Tuning - Adjust nr_hugepages
+- name: Adjust nr_hugepages
   sysctl:
     name: "vm.nr_hugepages"
     value: "8192"
   sysctl:
     name: "vm.nr_hugepages"
     value: "8192"
@@ -91,3 +91,8 @@
     reload: "yes"
   tags:
     - aws-set-hugepages
     reload: "yes"
   tags:
     - aws-set-hugepages
+
+- name: Shutdown host with delay
+  command: "/sbin/shutdown -P +720"
+  tags:
+    - aws-set-self-terminate
index 95464fa..8ab8311 100644 (file)
@@ -219,18 +219,19 @@ data "aws_network_interface" "tg_if2" {
 
 # Instances
 resource "aws_instance" "tg" {
 
 # Instances
 resource "aws_instance" "tg" {
-  depends_on                  = [aws_vpc.CSITVPC, aws_placement_group.CSITPG]
-  ami                         = var.ami_image
-  availability_zone           = var.avail_zone
-  instance_type               = var.instance_type
-  key_name                    = aws_key_pair.CSITKP.key_name
-  associate_public_ip_address = true
-  subnet_id                   = aws_subnet.mgmt.id
-  private_ip                  = var.tg_mgmt_ip
-  vpc_security_group_ids      = [aws_security_group.CSITSG.id]
-  placement_group             = aws_placement_group.CSITPG.id
-  source_dest_check           = false
-  # host_id                   = "1"
+  depends_on                           = [aws_vpc.CSITVPC, aws_placement_group.CSITPG]
+  ami                                  = var.ami_image
+  availability_zone                    = var.avail_zone
+  instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior
+  instance_type                        = var.instance_type
+  key_name                             = aws_key_pair.CSITKP.key_name
+  associate_public_ip_address          = true
+  subnet_id                            = aws_subnet.mgmt.id
+  private_ip                           = var.tg_mgmt_ip
+  vpc_security_group_ids               = [aws_security_group.CSITSG.id]
+  placement_group                      = aws_placement_group.CSITPG.id
+  source_dest_check                    = false
+  # host_id                            = "1"
 
   root_block_device {
     volume_size = 50
 
   root_block_device {
     volume_size = 50
@@ -243,18 +244,19 @@ resource "aws_instance" "tg" {
 }
 
 resource "aws_instance" "dut1" {
 }
 
 resource "aws_instance" "dut1" {
-  depends_on                  = [aws_vpc.CSITVPC, aws_placement_group.CSITPG, aws_instance.tg]
-  ami                         = var.ami_image
-  availability_zone           = var.avail_zone
-  instance_type               = var.instance_type
-  key_name                    = aws_key_pair.CSITKP.key_name
-  associate_public_ip_address = true
-  subnet_id                   = aws_subnet.mgmt.id
-  private_ip                  = var.dut1_mgmt_ip
-  vpc_security_group_ids      = [aws_security_group.CSITSG.id]
-  placement_group             = aws_placement_group.CSITPG.id
-  source_dest_check           = false
-  # host_id                   = "2"
+  depends_on                           = [aws_vpc.CSITVPC, aws_placement_group.CSITPG, aws_instance.tg]
+  ami                                  = var.ami_image
+  availability_zone                    = var.avail_zone
+  instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior
+  instance_type                        = var.instance_type
+  key_name                             = aws_key_pair.CSITKP.key_name
+  associate_public_ip_address          = true
+  subnet_id                            = aws_subnet.mgmt.id
+  private_ip                           = var.dut1_mgmt_ip
+  vpc_security_group_ids               = [aws_security_group.CSITSG.id]
+  placement_group                      = aws_placement_group.CSITPG.id
+  source_dest_check                    = false
+  # host_id                            = "2"
 
   root_block_device {
     volume_size = 50
 
   root_block_device {
     volume_size = 50
index 429c504..9fa5a4d 100644 (file)
@@ -17,6 +17,12 @@ variable "testbed_name" {
   type = string
 }
 
   type = string
 }
 
+variable "instance_initiated_shutdown_behavior" {
+  description = "Shutdown behavior for the instance"
+  type        = string
+  default     = "terminate"
+}
+
 variable "instance_type" {
   description = "AWS instance type"
   type = string
 variable "instance_type" {
   description = "AWS instance type"
   type = string
index 3ca8758..769aa59 100644 (file)
@@ -263,17 +263,18 @@ data "aws_network_interface" "tg_if2" {
 
 # Instances
 resource "aws_instance" "tg" {
 
 # Instances
 resource "aws_instance" "tg" {
-  ami                         = var.ami_image
-  availability_zone           = var.avail_zone
-  instance_type               = var.instance_type
-  key_name                    = aws_key_pair.CSITKP.key_name
-  associate_public_ip_address = true
-  subnet_id                   = aws_subnet.mgmt.id
-  private_ip                  = var.tg_mgmt_ip
-  vpc_security_group_ids      = [aws_security_group.CSITSG.id]
-  placement_group             = aws_placement_group.CSITPG.id
-  source_dest_check           = false
-  # host_id                   = "1"
+  ami                                  = var.ami_image
+  availability_zone                    = var.avail_zone
+  instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior
+  instance_type                        = var.instance_type
+  key_name                             = aws_key_pair.CSITKP.key_name
+  associate_public_ip_address          = true
+  subnet_id                            = aws_subnet.mgmt.id
+  private_ip                           = var.tg_mgmt_ip
+  vpc_security_group_ids               = [aws_security_group.CSITSG.id]
+  placement_group                      = aws_placement_group.CSITPG.id
+  source_dest_check                    = false
+  # host_id                            = "1"
 
   depends_on = [
     aws_vpc.CSITVPC,
 
   depends_on = [
     aws_vpc.CSITVPC,
@@ -291,17 +292,18 @@ resource "aws_instance" "tg" {
 }
 
 resource "aws_instance" "dut1" {
 }
 
 resource "aws_instance" "dut1" {
-  ami                         = var.ami_image
-  availability_zone           = var.avail_zone
-  instance_type               = var.instance_type
-  key_name                    = aws_key_pair.CSITKP.key_name
-  associate_public_ip_address = true
-  subnet_id                   = aws_subnet.mgmt.id
-  private_ip                  = var.dut1_mgmt_ip
-  vpc_security_group_ids      = [aws_security_group.CSITSG.id]
-  placement_group             = aws_placement_group.CSITPG.id
-  source_dest_check           = false
-  # host_id                   = "2"
+  ami                                  = var.ami_image
+  availability_zone                    = var.avail_zone
+  instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior
+  instance_type                        = var.instance_type
+  key_name                             = aws_key_pair.CSITKP.key_name
+  associate_public_ip_address          = true
+  subnet_id                            = aws_subnet.mgmt.id
+  private_ip                           = var.dut1_mgmt_ip
+  vpc_security_group_ids               = [aws_security_group.CSITSG.id]
+  placement_group                      = aws_placement_group.CSITPG.id
+  source_dest_check                    = false
+  # host_id                            = "2"
 
   depends_on = [
     aws_vpc.CSITVPC,
 
   depends_on = [
     aws_vpc.CSITVPC,
index 97e986b..f7f3e61 100644 (file)
@@ -17,6 +17,12 @@ variable "testbed_name" {
   type = string
 }
 
   type = string
 }
 
+variable "instance_initiated_shutdown_behavior" {
+  description = "Shutdown behavior for the instance"
+  type        = string
+  default     = "terminate"
+}
+
 variable "instance_type" {
   description = "AWS instance type"
   type = string
 variable "instance_type" {
   description = "AWS instance type"
   type = string
index c5c74f6..0d11014 100644 (file)
@@ -18,6 +18,12 @@ variable "ami_image" {
   default = "ami-0a875db8a031a9efb"
 }
 
   default = "ami-0a875db8a031a9efb"
 }
 
+variable "instance_initiated_shutdown_behavior" {
+  description = "Shutdown behavior for the instance"
+  type        = string
+  default     = "terminate"
+}
+
 variable "instance_type" {
   description = "AWS instance type"
   type = string
 variable "instance_type" {
   description = "AWS instance type"
   type = string