Commit 00ee191f authored by Anton Babenko's avatar Anton Babenko

Make module idempotent by requiring subnet_id and ignore changes in several arguments (fixes #10)

parent 0a9253a5
...@@ -51,6 +51,7 @@ module "ec2" { ...@@ -51,6 +51,7 @@ module "ec2" {
name = "example" name = "example"
ami = "${data.aws_ami.amazon_linux.id}" ami = "${data.aws_ami.amazon_linux.id}"
instance_type = "t2.micro" instance_type = "t2.micro"
subnet_id = "${element(data.aws_subnet_ids.all.ids, 0)}"
vpc_security_group_ids = ["${module.security_group.this_security_group_id}"] vpc_security_group_ids = ["${module.security_group.this_security_group_id}"]
associate_public_ip_address = true associate_public_ip_address = true
} }
...@@ -27,7 +27,6 @@ resource "aws_instance" "this" { ...@@ -27,7 +27,6 @@ resource "aws_instance" "this" {
source_dest_check = "${var.source_dest_check}" source_dest_check = "${var.source_dest_check}"
disable_api_termination = "${var.disable_api_termination}" disable_api_termination = "${var.disable_api_termination}"
instance_initiated_shutdown_behavior = "${var.instance_initiated_shutdown_behavior}" instance_initiated_shutdown_behavior = "${var.instance_initiated_shutdown_behavior}"
availability_zone = "${var.availability_zone}"
placement_group = "${var.placement_group}" placement_group = "${var.placement_group}"
tenancy = "${var.tenancy}" tenancy = "${var.tenancy}"
...@@ -35,4 +34,10 @@ resource "aws_instance" "this" { ...@@ -35,4 +34,10 @@ resource "aws_instance" "this" {
# network_interface = "${var.network_interface}" # network_interface = "${var.network_interface}"
tags = "${merge(var.tags, map("Name", format("%s-%d", var.name, count.index+1)))}" tags = "${merge(var.tags, map("Name", format("%s-%d", var.name, count.index+1)))}"
lifecycle {
# Due to several known issues in Terraform AWS provider related to arguments of aws_instance:
# (eg, https://github.com/terraform-providers/terraform-provider-aws/issues/2036)
# we have to ignore changes in the following arguments
ignore_changes = ["private_ip", "vpc_security_group_ids", "root_block_device"]
}
} }
...@@ -11,11 +11,6 @@ variable "ami" { ...@@ -11,11 +11,6 @@ variable "ami" {
description = "ID of AMI to use for the instance" description = "ID of AMI to use for the instance"
} }
variable "availability_zone" {
description = "The AZ to start the instance in"
default = ""
}
variable "placement_group" { variable "placement_group" {
description = "The Placement Group to start the instance in" description = "The Placement Group to start the instance in"
default = "" default = ""
...@@ -62,7 +57,6 @@ variable "vpc_security_group_ids" { ...@@ -62,7 +57,6 @@ variable "vpc_security_group_ids" {
variable "subnet_id" { variable "subnet_id" {
description = "The VPC Subnet ID to launch in" description = "The VPC Subnet ID to launch in"
default = ""
} }
variable "associate_public_ip_address" { variable "associate_public_ip_address" {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment