shamefully used AI and now it's working
This commit is contained in:
@@ -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
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user