find a way to connect to another namespace without conflict found yet

This commit is contained in:
2025-05-06 12:00:37 +01:00
parent 2b168e5e34
commit fcdcb0102d
2 changed files with 69 additions and 31 deletions
+41 -25
View File
@@ -30,27 +30,30 @@ variable "kubernetes" {
}) })
})) }))
}))) })))
replicas = optional(number, 1) replicas = optional(number, 1)
namespace = optional(string) namespace = optional(string)
block_namespace_creation = optional(bool, false) connected_namespace = optional(string, "")
service_port = optional(number) # namespace = optional(string,coalesce(connected_namespace,""))
service_type = optional(string, "ClusterIP") #block_namespace_creation = optional(bool, false)
service_name = optional(string) service_port = optional(number)
liveness_tcp_socket = optional(number) service_type = optional(string, "ClusterIP")
liveness_http_get = optional(string) service_name = optional(string)
liveness_http_get_path = optional(string) liveness_tcp_socket = optional(number)
database = optional(map(string)) liveness_http_get = optional(string)
redis = optional(map(string)) liveness_http_get_path = optional(string)
enabled = optional(bool, true) database = optional(map(string))
secret_ref = optional(list(string)) redis = optional(map(string))
config_map_ref = optional(list(string)) enabled = optional(bool, true)
extra_manifest = optional(list(string)) secret_ref = optional(list(string))
requirements = optional(map(string), { config_map_ref = optional(list(string))
limits-cpu = "800m" extra_manifest = optional(list(string))
limits-memory = "500Mi" requirements = optional(map(string))
requests-cpu = "200m" # requirements = optional(map(string), {
requests-memory = "200Mi" # limits-cpu = "800m"
}) # limits-memory = "500Mi"
# requests-cpu = "200m"
# requests-memory = "200Mi"
# })
environment_variables = optional(map(string), { name = "value" }) environment_variables = optional(map(string), { name = "value" })
})) }))
@@ -85,8 +88,8 @@ locals {
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 && !(value.block_namespace_creation) } # for_each = { for key, value in var.kubernetes : key => value if value.enabled == true && !(value.block_namespace_creation) }
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 && value.connected_namespace == "" }
metadata { metadata {
annotations = { annotations = {
name = coalesce(each.value.namespace, each.key) name = coalesce(each.value.namespace, each.key)
@@ -187,7 +190,7 @@ resource "kubernetes_service" "automatic_service" {
for_each = { for key, value in var.kubernetes : key => value if value.service_port != null && value.enabled == true } for_each = { for key, value in var.kubernetes : key => value if value.service_port != null && value.enabled == true }
metadata { metadata {
name = "${each.key}-svc" name = "${each.key}-svc"
namespace = coalesce(each.value.namespace, each.key) namespace = coalesce(each.value.namespace,each.value.connected_namespace, each.key)
labels = { labels = {
deployment_method = "Terraform" deployment_method = "Terraform"
} }
@@ -264,7 +267,7 @@ resource "kubernetes_service" "automatic_service_redis" {
resource "kubernetes_deployment_v1" "automatic" { resource "kubernetes_deployment_v1" "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 }
metadata { metadata {
namespace = coalesce(each.value.namespace, each.key) namespace = coalesce(each.value.namespace,each.value.connected_namespace, each.key)
name = coalesce(each.value.name, each.key) name = coalesce(each.value.name, each.key)
labels = { labels = {
@@ -357,7 +360,20 @@ resource "kubernetes_deployment_v1" "automatic" {
} }
} }
dynamic "resources" {
for_each = each.value.requirements != null ? [1] : []
content {
limits = {
cpu = each.value.requirements.limits-cpu
memory = each.value.requirements.limits-memory
}
requests = {
cpu = each.value.requirements.requests-cpu
memory = each.value.requirements.requests-memory
}
}
}
# resources { # resources {
# limits = { # limits = {
+28 -6
View File
@@ -86,9 +86,9 @@ kubernetes = {
} }
} }
requirements = { requirements = {
limits-cpu = "900m" limits-cpu = "1000m"
limits-memory = "600Mi" limits-memory = "1Gi"
requests-cpu = "300m" requests-cpu = "500m"
requests-memory = "400Mi" requests-memory = "400Mi"
} }
pvc = { pvc = {
@@ -134,7 +134,7 @@ kubernetes = {
stash = { stash = {
enabled = false # enabled = false
replicas = 0 replicas = 0
name = "stash" name = "stash"
image = "stashapp/stash:latest" image = "stashapp/stash:latest"
@@ -349,7 +349,7 @@ kubernetes = {
paper = { paper = {
# enabled = false enabled = false
namespace = "paper" namespace = "paper"
image = "ghcr.io/paperless-ngx/paperless-ngx:latest" image = "ghcr.io/paperless-ngx/paperless-ngx:latest"
service_port = 8000 service_port = 8000
@@ -468,7 +468,7 @@ kubernetes = {
} }
} }
gotenberg = { gotenberg = {
# enabled = false enabled = false
name = "gotenberg" name = "gotenberg"
namespace = "paper" namespace = "paper"
block_namespace_creation = true block_namespace_creation = true
@@ -761,4 +761,26 @@ kubernetes = {
} }
} }
jobspy = {
enabled = false
connected_namespace = "stash"
image = "rainmanjam/jobspy-api:latest"
service_port = 8000
environment = {
ENABLE_API_KEY_AUTH = {
value = "true"
}
API_KEYS = {
value = "true"
}
}
requirements = {
limits-cpu = "900m"
limits-memory = "600Mi"
requests-cpu = "300m"
requests-memory = "400Mi"
}
}
} }