From 776d96c16765ec3c05dc1856ed5551af79214980 Mon Sep 17 00:00:00 2001 From: pierre Date: Mon, 16 Dec 2024 17:08:33 +0000 Subject: [PATCH] shamefully used AI and now it's working --- module.tf | 54 +++++++++++++++---------------------------- variables.auto.tfvars | 21 +++++++++-------- 2 files changed, 31 insertions(+), 44 deletions(-) diff --git a/module.tf b/module.tf index 0b5c200..e28970f 100644 --- a/module.tf +++ b/module.tf @@ -43,6 +43,7 @@ variable "kubernetes" { enabled = optional(bool, true) secret_ref = optional(list(string)) config_map_ref = optional(list(string)) + extra_manifest = optional(list(string)) requirements = optional(map(string), { limits-cpu = "800m" limits-memory = "500Mi" @@ -80,20 +81,11 @@ locals { ]) } -#output "pvc_test" { -# value = { for key, value in local.pvc_details : key => value } -#} - -#output "env_test" { -# value = { for key, value in local.env_details : key => value } - -#} data "kubernetes_all_namespaces" "allns" {} resource "kubernetes_namespace" "automatic" { for_each = { for key, value in var.kubernetes : key => value if value.enabled == true } - # for_each = { for key, value in var.kubernetes : key => value if value.enabled == true && !contains(data.kubernetes_all_namespaces.allns.namespaces, key) } metadata { annotations = { name = coalesce(each.value.namespace, each.key) @@ -106,38 +98,30 @@ resource "kubernetes_namespace" "automatic" { depends_on = [data.kubernetes_all_namespaces.allns] } -#resource "kubernetes_secret" "automatic-secret" { -# for_each = { for key, value in var.kubernetes : key => value if value.enabled == true && value.secret != null } -# metadata { -# #name = "secret-next" -# name = "${coalesce(each.value.name, each.key)}-secret" -# namespace = "next" -# } - -# data = { - -# #each.value.secret - -# POSTGRES_DB = "nextcloud" -# # POSTGRES_PASSWORD = "nextcloud" -# # POSTGRES_USER = "nextcloud" -# # PI_USER_USERNAME = "pi" -# # PI_USER_PASSWORD = "test"# -# # POSTGRES_HOST = "next-db-svc" - -# } - -#} - +locals { + kubernetes_manifests = flatten([ + for k, obj in var.kubernetes : [ + for index, manifest in(obj.extra_manifest != null ? obj.extra_manifest : []) : + { + key = "${k}_${index}" + name = obj.name + manifest = manifest + enabled = obj.enabled + } + if obj.enabled == true + ] + ]) +} resource "kubernetes_manifest" "service" { - provider = kubernetes + for_each = { for item in local.kubernetes_manifests : item.key => item } - manifest = yamldecode(file("/opt/kubernetes/Terraform_kube/onitama_secret2.yaml")) -# manifest = yamldecode(interpolate(file("/opt/kubernetes/Terraform_kube/onitama_secret.yaml"))) + manifest = yamldecode(file(each.value.manifest)) + provider = kubernetes } + resource "kubernetes_persistent_volume_claim" "automatic-pvc" { for_each = { for key, value in local.pvc_details : "${value.index}" => merge(value, { mew_key = value.index }) if value.pvc } metadata { diff --git a/variables.auto.tfvars b/variables.auto.tfvars index d26eaee..cf5ab67 100644 --- a/variables.auto.tfvars +++ b/variables.auto.tfvars @@ -1,12 +1,14 @@ kubernetes = { bookstack = { namespace = "bookstack-terraform" - enabled = true - image = "lscr.io/linuxserver/bookstack" + enabled = false + replicas = 01 + image = "linuxserver/bookstack:24.10.3" service_port = 80 database = { - "image" = "lscr.io/linuxserver/mariadb" - "port" = 3306 + "image" = "lscr.io/linuxserver/mariadb" + "port" = 3306 + "mountPath" = "/config" } requirements = { limits-cpu = "500m" @@ -44,7 +46,7 @@ kubernetes = { value_from = { secret_key_ref = { name = "bookstack-credentials" - key = "DB_USER" + key = "DB_USERNAME" } } } @@ -92,10 +94,11 @@ kubernetes = { } onitama = { - enabled = true - namespace = "onitama" - image = "ghcr.io/jackadamson/onitama:latest" - service_port = 8080 + enabled = true + namespace = "onitama" + image = "ghcr.io/jackadamson/onitama:latest" + extra_manifest = ["nextcloud.secret.yaml","/opt/kubernetes/Terraform_kube/onitama_secret2.yaml"] + service_port = 8080 requirements = { limits-cpu = "50m" limits-memory = "50Mi"