diff --git a/eks_console_access.tf b/eks_console_access.tf index 0f69b91..5abcd85 100644 --- a/eks_console_access.tf +++ b/eks_console_access.tf @@ -44,10 +44,24 @@ data "http" "cluster_roles" { # } # # Apply the Kubernetes manifests to the cluster +# resource "kubernetes_manifest" "deploy_cluster_roles" { +# # depends_on = [null_resource.cluster_roles] +# for_each = { for k, v in local.cluster_roles_map : k => v if v.enabled } +# manifest = [yamldecode(data.http.cluster_roles[each.key].body)] +# } + resource "kubernetes_manifest" "deploy_cluster_roles" { - # depends_on = [null_resource.cluster_roles] - for_each = { for k, v in local.cluster_roles_map : k => v if v.enabled } - manifest = [yamldecode(data.http.cluster_roles[each.key].body)] + for_each = { + for value in [ + for yaml in split( + "\n---\n", + "\n${replace(data.http.cluster_roles[each.key].body, "/(?m)^---[[:blank:]]*(#.*)?$/", "---")}\n" + ) : + yamldecode(yaml) + if trimspace(replace(yaml, "/(?m)(^[[:blank:]]*(#.*)?$)+/", "")) != "" + ] : "${value["kind"]}--${value["metadata"]["name"]}" => value + } + manifest = each.value } # resource "null_resource" "apply_cluster_roles" {