shamefully used AI and now it's working

This commit is contained in:
2024-12-16 17:08:33 +00:00
parent c107eb2fcf
commit 776d96c167
2 changed files with 31 additions and 44 deletions
+19 -35
View File
@@ -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 {
+12 -9
View File
@@ -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"