diff --git a/for-demo-2/ebs.tf b/for-demo-2/ebs.tf new file mode 100644 index 0000000..7f497ad --- /dev/null +++ b/for-demo-2/ebs.tf @@ -0,0 +1,7 @@ + +resource "aws_ebs_volume" "example" { + availability_zone = "eu-west-1a" + size = 8 + + tags = {for k, v in merge({ Name = "Myvolume" }, var.project_tags): k => lower(v)} +} diff --git a/for-demo-2/provider.tf b/for-demo-2/provider.tf new file mode 100644 index 0000000..7925c73 --- /dev/null +++ b/for-demo-2/provider.tf @@ -0,0 +1,4 @@ +provider "aws" { + region = var.AWS_REGION +} + diff --git a/for-demo-2/vars.tf b/for-demo-2/vars.tf new file mode 100644 index 0000000..6e0a134 --- /dev/null +++ b/for-demo-2/vars.tf @@ -0,0 +1,12 @@ +variable "AWS_REGION" { + type = string + default = "eu-west-1" +} +variable "project_tags" { + type = map(string) + default = { + Component = "Frontend" + Environment = "Production" + } +} + diff --git a/for-demo/vars.tf b/for-demo/vars.tf new file mode 100644 index 0000000..665a1ed --- /dev/null +++ b/for-demo/vars.tf @@ -0,0 +1,17 @@ +variable "list1" { + type = list(string) + default = [1, 10, 9, 101, 3] +} +variable "list2" { + type = list(string) + default = ["apple", "pear", "banana", "mango"] +} +variable "map1" { + type = map(number) + default = { + "apple" = 5 + "pear" = 3 + "banana" = 10 + "mango" = 0 + } +} diff --git a/foreach-demo-2/provider.tf b/foreach-demo-2/provider.tf new file mode 100644 index 0000000..7925c73 --- /dev/null +++ b/foreach-demo-2/provider.tf @@ -0,0 +1,4 @@ +provider "aws" { + region = var.AWS_REGION +} + diff --git a/foreach-demo-2/securitygroup.tf b/foreach-demo-2/securitygroup.tf new file mode 100644 index 0000000..59e61f6 --- /dev/null +++ b/foreach-demo-2/securitygroup.tf @@ -0,0 +1,13 @@ +resource "aws_security_group" "example" { + name = "example" # can use expressions here + + dynamic "ingress" { + for_each = var.ports + content { + from_port = ingress.key + to_port = ingress.key + cidr_blocks = ingress.value + protocol = "tcp" + } + } +} diff --git a/foreach-demo-2/vars.tf b/foreach-demo-2/vars.tf new file mode 100644 index 0000000..8fb3d79 --- /dev/null +++ b/foreach-demo-2/vars.tf @@ -0,0 +1,12 @@ +variable "AWS_REGION" { + type = string + default = "eu-west-1" +} + +variable "ports" { + type = map(list(string)) + default = { + "22" = [ "127.0.0.1/32", "192.168.0.0/24" ] + "443" = [ "0.0.0.0/0" ] + } +} diff --git a/foreach-demo/provider.tf b/foreach-demo/provider.tf new file mode 100644 index 0000000..7925c73 --- /dev/null +++ b/foreach-demo/provider.tf @@ -0,0 +1,4 @@ +provider "aws" { + region = var.AWS_REGION +} + diff --git a/foreach-demo/securitygroup.tf b/foreach-demo/securitygroup.tf new file mode 100644 index 0000000..4536454 --- /dev/null +++ b/foreach-demo/securitygroup.tf @@ -0,0 +1,12 @@ +resource "aws_security_group" "example" { + name = "example" # can use expressions here + + dynamic "ingress" { + for_each = [22, 443] + content { + from_port = ingress.value + to_port = ingress.value + protocol = "tcp" + } + } +} diff --git a/foreach-demo/vars.tf b/foreach-demo/vars.tf new file mode 100644 index 0000000..4bf4d96 --- /dev/null +++ b/foreach-demo/vars.tf @@ -0,0 +1,4 @@ +variable "AWS_REGION" { + type = string + default = "eu-west-1" +}