enable the option to select service type

This commit is contained in:
2025-03-18 21:32:08 +00:00
parent a8be503624
commit 6af77be624
2 changed files with 43 additions and 113 deletions
+5 -3
View File
@@ -32,6 +32,7 @@ variable "kubernetes" {
replicas = optional(number, 1)
namespace = optional(string)
service_port = optional(number)
service_type = optional(string, "ClusterIP")
service_name = optional(string)
liveness_tcp_socket = optional(number)
liveness_http_get = optional(string)
@@ -62,7 +63,7 @@ locals {
name = pvc.name
pvc_size = pvc.pvc_size
mount_path = pvc.mount_path
namespace = coalesce(value.namespace, key)
namespace = coalesce(value.namespace, key)
}] if value.enabled == true && value.pvc != null
])
}
@@ -112,13 +113,14 @@ locals {
resource "kubernetes_manifest" "service" {
for_each = { for item in local.kubernetes_manifests : item.key => item }
manifest = yamldecode(file(each.value.manifest))
manifest = yamldecode(file(each.value.manifest))
provider = kubernetes
}
resource "kubernetes_persistent_volume_claim" "automatic-pvc" {
# for_each = { for key, value in var.kubernetes : key => value if value.enabled == true }
for_each = { for key, value in local.pvc_details : "${value.index}" => merge(value, { mew_key = value.index }) if value.pvc }
metadata {
namespace = each.value.namespace
@@ -194,6 +196,7 @@ resource "kubernetes_service" "automatic_service" {
port = each.value.service_port
target_port = each.value.service_port
}
type = each.value.service_type
}
@@ -219,7 +222,6 @@ resource "kubernetes_service" "automatic_service_database" {
target_port = try(each.value.database.port, 5432)
}
}
+38 -110
View File
@@ -1,11 +1,11 @@
kubernetes = {
bookstack = {
namespace = "bookstack"
enabled = true
replicas = 01
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml","/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
image = "linuxserver/bookstack:24.10.3"
service_port = 80
namespace = "bookstack"
enabled = true
replicas = 01
extra_manifest = ["/opt/kubernetes/Bookstack_kube/Bookstack.configmap.yaml", "/opt/kubernetes/Bookstack_kube/Bookstack.secret.yaml"]
image = "linuxserver/bookstack:24.10.3"
service_port = 80
database = {
"image" = "lscr.io/linuxserver/mariadb"
"port" = 3306
@@ -13,9 +13,9 @@ kubernetes = {
}
requirements = {
limits-cpu = "500m"
limits-memory = "400Mi"
limits-memory = "200Mi"
requests-cpu = "300m"
requests-memory = "300Mi"
requests-memory = "100Mi"
}
secret_ref = ["bookstack-credentials"]
config_map_ref = ["config"]
@@ -73,12 +73,13 @@ kubernetes = {
screeps = {
enabled = false
# enabled = false
name = "screeps-server"
pvc_size = "1Gi"
mount_path = "/screeps"
image = "screepers/screeps-launcher"
service_port = 21025
service_type = "LoadBalancer"
environment_variables = { t1est = "tset" }
requirements = {
limits-cpu = "900m"
@@ -89,10 +90,10 @@ 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"
service_port = 8080
requirements = {
limits-cpu = "50m"
limits-memory = "50Mi"
@@ -111,7 +112,7 @@ kubernetes = {
nginx = {
enabled = false
namespace = "testnginx"
image = "nginx:latest"
image = "nginx:latest"
#pvc_size = "10Mi"
# mount_path = "/code"
# service_port = 80
@@ -234,89 +235,9 @@ kubernetes = {
service_port = 80
}
nextcloud-web = {
namespace = "nextcloud-terraform"
enabled = false
image = "nextcloud:29.0.3-apache"
service_port = 80
requirements = {
limits-cpu = "1000m"
limits-memory = "500Mi"
requests-cpu = "500m"
requests-memory = "25Mi"
}
environment = {
POSTGRES_HOST = {
value = "db"
}
}
pvc = {
nextcloud-webserver = {
name = "nextcloud-webserver"
pvc_size = "2Mi"
mount_path = "/var/www/html"
}
}
}
nextcloud-db = {
namespace = "nextcloud-terraform"
enabled = false
image = "docker.io/library/postgres:14"
service_port = 5432
requirements = {
limits-cpu = "1000m"
limits-memory = "500Mi"
requests-cpu = "500m"
requests-memory = "25Mi"
}
environment = {
POSTGRES_HOST = {
value = "db"
}
}
environment = {
POSTGRES_DB = {
value_from = {
secret_key_ref = {
name = "nextcloud-credentials"
key = "POSTGRES_DB"
}
}
}
POSTGRES_USER = {
value_from = {
secret_key_ref = {
name = "nextcloud-credentials"
key = "POSTGRES_USER"
}
}
}
POSTGRES_PASSWORD = {
value_from = {
secret_key_ref = {
name = "nextcloud-credentials"
key = "POSTGRES_PASSWORD"
}
}
}
PORT = {
value = "80"
}
}
pvc = {
nextcloud-database = {
name = "nextcloud-database"
pvc_size = "2Mi"
mount_path = "/var/lib/postgresql/data"
}
}
}
paper = {
enabled = true
enabled = false
namespace = "paper"
image = "ghcr.io/paperless-ngx/paperless-ngx:latest"
service_port = 8000
@@ -438,19 +359,12 @@ kubernetes = {
next = {
enabled = false
namespace = "next"
image = "nextcloud:29.0.3-apache"
service_port = 80
secret = {
POSTGRES_DB = "nextcloud"
POSTGRES_PASSWORD = "nextcloud"
POSTGRES_USER = "nextcloud"
PI_USER_USERNAME = "pi"
PI_USER_PASSWORD = "test"
POSTGRES_HOST = "next-db-svc"
}
# enabled = false
namespace = "next"
replicas = 01
image = "nextcloud:29.0.3-apache"
service_port = 80
extra_manifest = ["/opt/kubernetes/Nextcloud_kube/next.secret.yaml"]
database = {
image = "docker.io/library/postgres:14" }
redis = {
@@ -495,8 +409,21 @@ kubernetes = {
}
}
REDIS_HOST = {
value = "redis://next-redis-svc:6379"
# REDIS_HOST = {
# value = "redis://next-redis-svc:6379"
# }
TRUSTED_PROXIES = {
value = "192.168.88.50 192.168.88.52"
}
OVERWRITECLIURL = {
value = "https://nextcloud.tryton.geeraert.eu"
}
OVERWRITEPROTOCOL = {
value = "https"
}
NEXTCLOUD_TRUSTED_DOMAINS = {
value = "nextcloud.tryton.geeraert.eu 192.168.88.52"
}
NEXTCLOUD_ADMIN_USER = {
value = "admin"
@@ -514,6 +441,7 @@ kubernetes = {
nextcloud-webserver = {
name = "nextcloud-webserver"
pvc_size = "2Mi"
pvc = true
mount_path = "/var/www/html"
}
}