shamefully used AI and now it's working
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
+12
-9
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -92,10 +94,11 @@ kubernetes = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onitama = {
|
onitama = {
|
||||||
enabled = true
|
enabled = true
|
||||||
namespace = "onitama"
|
namespace = "onitama"
|
||||||
image = "ghcr.io/jackadamson/onitama:latest"
|
image = "ghcr.io/jackadamson/onitama:latest"
|
||||||
service_port = 8080
|
extra_manifest = ["nextcloud.secret.yaml","/opt/kubernetes/Terraform_kube/onitama_secret2.yaml"]
|
||||||
|
service_port = 8080
|
||||||
requirements = {
|
requirements = {
|
||||||
limits-cpu = "50m"
|
limits-cpu = "50m"
|
||||||
limits-memory = "50Mi"
|
limits-memory = "50Mi"
|
||||||
|
|||||||
Reference in New Issue
Block a user