diff --git a/main.tf b/main.tf index 643cf11..5048aed 100644 --- a/main.tf +++ b/main.tf @@ -251,11 +251,16 @@ resource "kubernetes_config_map" "homepage_config" { data = { "services.yaml" = yamlencode(var.services_config) "widgets.yaml" = yamlencode(var.widgets_config) - "settings.yaml" = yamlencode( - merge(var.settings, { base = var.settings.base == null ? "https://${var.host}" : var.host }) - ) - "bookmarks.yaml" = yamlencode(var.bookmarks) - "docker.yaml" = yamlencode(var.docker_config) - "kubernetes.yaml" = yamlencode(var.kubernetes_config) + "settings.yaml" = <<-EOT + ${yamlencode( + merge({ for k, v in var.settings : k => v if k != "layout" }, { + base = var.settings.base == null ? "https://${var.host}" : var.settings.base + }))} + layout: + ${join("\n", [for layout in var.settings.layout : " \"${layout.name}\": ${jsonencode(layout)}"])} + EOT + "bookmarks.yaml" = yamlencode(var.bookmarks) + "docker.yaml" = yamlencode(var.docker_config) + "kubernetes.yaml" = yamlencode(var.kubernetes_config) } } diff --git a/variables.tf b/variables.tf index 533fdfa..ad2284b 100644 --- a/variables.tf +++ b/variables.tf @@ -83,13 +83,14 @@ variable "settings" { background = optional(string) backgroundOpacity = optional(string) theme = optional(string) - layout = optional(map( + layout = list( object({ + name = string icon = optional(string) style = optional(string) columns = optional(number) }) - )) + ) }) }