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) enabled = optional(bool, true)
secret_ref = optional(list(string)) secret_ref = optional(list(string))
config_map_ref = optional(list(string)) config_map_ref = optional(list(string))
extra_manifest = optional(list(string))
requirements = optional(map(string), { requirements = optional(map(string), {
limits-cpu = "800m" limits-cpu = "800m"
limits-memory = "500Mi" 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" {} data "kubernetes_all_namespaces" "allns" {}
resource "kubernetes_namespace" "automatic" { 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 }
# for_each = { for key, value in var.kubernetes : key => value if value.enabled == true && !contains(data.kubernetes_all_namespaces.allns.namespaces, key) }
metadata { metadata {
annotations = { annotations = {
name = coalesce(each.value.namespace, each.key) name = coalesce(each.value.namespace, each.key)
@@ -106,38 +98,30 @@ resource "kubernetes_namespace" "automatic" {
depends_on = [data.kubernetes_all_namespaces.allns] depends_on = [data.kubernetes_all_namespaces.allns]
} }
#resource "kubernetes_secret" "automatic-secret" { locals {
# for_each = { for key, value in var.kubernetes : key => value if value.enabled == true && value.secret != null } kubernetes_manifests = flatten([
# metadata { for k, obj in var.kubernetes : [
# #name = "secret-next" for index, manifest in(obj.extra_manifest != null ? obj.extra_manifest : []) :
# name = "${coalesce(each.value.name, each.key)}-secret" {
# namespace = "next" key = "${k}_${index}"
# } name = obj.name
manifest = manifest
# data = { enabled = obj.enabled
}
# #each.value.secret if obj.enabled == true
]
# POSTGRES_DB = "nextcloud" ])
# # POSTGRES_PASSWORD = "nextcloud" }
# # POSTGRES_USER = "nextcloud"
# # PI_USER_USERNAME = "pi"
# # PI_USER_PASSWORD = "test"#
# # POSTGRES_HOST = "next-db-svc"
# }
#}
resource "kubernetes_manifest" "service" { 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(file(each.value.manifest))
# manifest = yamldecode(interpolate(file("/opt/kubernetes/Terraform_kube/onitama_secret.yaml"))) provider = kubernetes
} }
resource "kubernetes_persistent_volume_claim" "automatic-pvc" { 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 } for_each = { for key, value in local.pvc_details : "${value.index}" => merge(value, { mew_key = value.index }) if value.pvc }
metadata { metadata {
+6 -3
View File
@@ -1,12 +1,14 @@
kubernetes = { kubernetes = {
bookstack = { bookstack = {
namespace = "bookstack-terraform" namespace = "bookstack-terraform"
enabled = true enabled = false
image = "lscr.io/linuxserver/bookstack" replicas = 01
image = "linuxserver/bookstack:24.10.3"
service_port = 80 service_port = 80
database = { database = {
"image" = "lscr.io/linuxserver/mariadb" "image" = "lscr.io/linuxserver/mariadb"
"port" = 3306 "port" = 3306
"mountPath" = "/config"
} }
requirements = { requirements = {
limits-cpu = "500m" limits-cpu = "500m"
@@ -44,7 +46,7 @@ kubernetes = {
value_from = { value_from = {
secret_key_ref = { secret_key_ref = {
name = "bookstack-credentials" name = "bookstack-credentials"
key = "DB_USER" key = "DB_USERNAME"
} }
} }
} }
@@ -95,6 +97,7 @@ kubernetes = {
enabled = true enabled = true
namespace = "onitama" namespace = "onitama"
image = "ghcr.io/jackadamson/onitama:latest" image = "ghcr.io/jackadamson/onitama:latest"
extra_manifest = ["nextcloud.secret.yaml","/opt/kubernetes/Terraform_kube/onitama_secret2.yaml"]
service_port = 8080 service_port = 8080
requirements = { requirements = {
limits-cpu = "50m" limits-cpu = "50m"