module with flatten function

This commit is contained in:
Edward Viaene
2020-12-05 14:14:28 +01:00
parent 1aa03eeba5
commit ee39b3e84c
4 changed files with 63 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
locals {
my_parameters = [
{
"prefix" = "/myprefix"
"parameters" = [
{
"name" = "myparameter"
"value" = "myvalue"
},
{
"name" = "environment"
"value" = "dev"
}
]
},
{
"prefix" = "/myapp"
"parameters" = [
{
"name" = "environment"
"value" = "prod"
}
]
}
]
}
module "parameters" {
source = "./ssm-parameter"
parameters = local.my_parameters
}
+4
View File
@@ -0,0 +1,4 @@
provider "aws" {
region = "eu-west-1"
}
@@ -0,0 +1,18 @@
locals {
parameters = flatten([
for parameters in var.parameters: [
for keyvalues in parameters.parameters:
{
"name" = "${parameters.prefix}/${keyvalues.name}"
"value" = keyvalues.value
}
]
])
}
resource "aws_ssm_parameter" "parameter" {
for_each = { for keyvalue in local.parameters: keyvalue.name => keyvalue.value }
name = each.key
type = "String"
value = each.value
}
+10
View File
@@ -0,0 +1,10 @@
variable "parameters" {
type = list(object({
prefix = string
parameters = list(object({
name = string
value = string
}))
}))
default = []
}