variable "managed_addons" {
description = "EKS manged addons"
type = map(string)
}
resource "aws_eks_addon" "this" {
for_each = var.managed_addons
cluster_name = aws_eks_cluster.this.name
addon_name = each.key
addon_version = each.value
resolve_conflicts_on_update = "OVERWRITE"
}
managed_addons = {
vpc-cni = "v1.19.2-eksbuild.1"
coredns = "v1.11.4-eksbuild.2"
kube-proxy = "v1.29.11-eksbuild.2"
}
I want the output as
key = addon_name
value = addon_version.
example output
vpc-cni = "v1.19.2-eksbuild.1"
coredns = "v1.11.4-eksbuild.2"
kube-proxy = "v1.29.11-eksbuild.2"
I tried many things but its gives different error
output "managed_addons" {
# value = { aws_eks_addon.this[*].addon_name = values(aws_eks_addon.this).*.addon_version }
value = {
for k, v in aws_eks_addon.this : k.addon_name => v.addon_version
}
For loop throws below error
Can't access attributes on a primitive-typed value (string).